本帖最后由 作者 于 2005-9-29 11:37:12 编辑
注: 下面代码未经验证, 如有不足继续讨论啊, 大家多多指教!
controlpoint-2 变量为过滤后的点表
(IF (SETQ Object-name(CAR (ENTSEL "\n请选要清理的对象:"))) (progn (setq controlpoint-1 nil lst1 (entget Object-name)) (while (setq lst1 (member (assoc 10 lst1) lst1)) (SETQ PT1 (CDR(car lst1)) lst1 (cdr lst1) controlpoint-1(append controlpoint-1 (list PT1)))) (setq i 0 controlpoint-2 nil) (repeat (length controlpoint-1) (setq pt1 (nth i controlpoint-1)) (if (= i 0) (setq pt2 pt1) (if (/=(distance pt1 pt2) 0.0) (setq controlpoint-2 (append pt1 controlpoint-2) pt2 pt1)) ) (setq i (1+ i)) ) ) )
也可以参考晓东站的
http://www.xdcad.net/forum/showthread.php?s=&threadid=465204 |