 - ;;交点列表[ss-选择集]
- (defun yad_inters(ss / n n1 obj1 n2 obj2 ipt l_pt)
- (setq n (sslength ss)
- n1 0
- )
- (while (< n1 (1- n))
- (setq obj1 (vlax-ename->vla-object (ssname ss n1))
- n2 (1+ n1)
- )
- (while (< n2 n)
- (setq obj2 (vlax-ename->vla-object (ssname ss n2))
- ipt (vlax-variant-value (vla-intersectwith obj1 obj2 0))
- )
- (if (> (vlax-safearray-get-u-bound ipt 1) 0)
- (progn
- (setq ipt (vlax-safearray->list ipt))
- (while (> (length ipt) 0)
- (setq l_pt (cons (list (car ipt) (cadr ipt) (caddr ipt)) l_pt) ipt (cdddr ipt))
- )
- )
- )
- (setq n2 (1+ n2))
- )
- (setq n1 (1+ n1))
- )
- l_pt
- )
|