如何删除重复点
我需要一个代码,在绘图中找到的每一行的开始和结束处插入一个点。所以我这样做了:
(defun POINTLINES ( / sel i ini e fin)
;SELECTION ALL THE LINES IN THE DRAWING
(setq sel (ssget "_a" '((0 . "LINE" ))))
(repeat (setq i (sslength sel))
(setq i (1- i))
;EXTRACTION INITIAL COORDINATES OF THE LINE
(setq ini (cdr (assoc 10 (entget (setq e (ssname sel i))))))
;CREATION INITIAL POINT OF THE LINE
(entmakex
(list
(cons 0 "POINT")
(cons 10 ini)
)
)
;EXTRACTION FINAL COORDINATES OF THE LINE
(setq fin (cdr (assoc 11 (entget (setq e (ssname sel i))))))
;CREATION FINAL POINT OF THE LINE
(entmakex
(list
(cons 0 "POINT")
(cons 10 fin)
)
)
)
(princ)
)
但是我想删除坐标相等的点。(两条或多条连续线的情况)。
一点帮助?
谢谢
米勒87
我发现它有效!
再次感谢 以下是一种更有效的方法:
(defun c:linepoints ( / e i l p s )
(if (setq s (ssget "_X" '((0 . "LINE"))))
(repeat (setq i (sslength s))
(setq e (entget (ssname s (setq i (1- i)))))
(foreach x '(10 11)
(setq p (cdr (assoc x e)))
(if (not (vl-some '(lambda ( q ) (equal p q 1e-) l))
(progn
(entmake (list '(0 . "POINT") (cons 10 p)))
(setq l (cons p l))
)
)
)
)
)
(princ)
)
页:
[1]