- 积分
- 15346
- 明经币
- 个
- 注册时间
- 2002-2-4
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2003-6-12 08:08:00
|
显示全部楼层
设成局部变量,並去除重覆交點
;;求所有线的交点
(defun C:TT (/ SS M E1 N E2 PTS PL PT1)
(vl-load-com)
(setq SS (ssget '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")))
M 0
)
(while (< M (1- (sslength SS)))
(setq E1 (vlax-ename->vla-object (ssname SS M))
N (1+ M)
)
(while (< N (sslength SS))
(setq E2 (vlax-ename->vla-object (ssname SS N))
PTS (vlax-variant-value (vla-intersectwith E1 E2 0))
)
(if (> (vlax-safearray-get-u-bound PTS 1) 0)
(progn
(setq PTS (vlax-safearray->list PTS))
(while (> (length PTS) 0)
(setq PT1 (list (car PTS) (cadr PTS) (caddr PTS)))
(if (not (member PT1 PL))
(setq PL (cons PT1 PL))
(setq PTS (cdddr PTS))
)
)
)
)
(setq N (1+ N))
)
(setq M (1+ M))
)
PL
) |
|