多段线上删除一端点lisp程度(转载)
www.dimcax.com
多段线上删除一端点lisp程度(转载)
(defun c:dfg (/ ent pt ents i n npt item lstnew)
(setq ent (entsel "选择一条多段线:"))
(while (setq point (getpoint "\n选择要删除的端点:"))
(setq ents (entget (car ent)))
(setq i 0
npt 0
n (length ents)
lstnew '()
)
(while (< i n)
(setq item (nth i ents))
(cond
((= npt 0)
(if (= (car item) 10)
(progn
(setq npt (1+ npt))
(setq i (1- i))
)
(setq lstnew (append lstnew (list item)))
)
)
((= npt 1)
(if (equal (cdr item) (list (car point) (cadr point)) 0.00001)
(setq i (+ i 3))
(setq lstnew (append lstnew (list item)))
)
)
)
(setq i (1+ i))
)
(entmod lstnew)
)
(princ)
)
d