多段线相邻点除重,得到点表,请大神看看,怎么写更好- (defun c:tt()
- (setq en (entget (car (entsel))))
- (setq lst (mapcar 'cdr (vl-remove-if '(lambda (x) (/= 10 (car x))) en)))
- (setq i 0 j 1 pts nil p t)
- (repeat (length lst)
- (setq pt (nth i lst))
- (while p
- (setq pt_1 (nth j lst))
- (if (not (equal pt pt_1))
- (progn
- (setq pts (append pts (list pt)))
- (setq i (1+ i))
- (setq j (1+ j))
- (setq p nil)
- )
- (progn
- (setq i (1+ i))
- (setq j (1+ j))
- (if (> j (length lst))
- (setq p nil)
- )
- )
- )
- )
- (if (= i (- (length lst) 1))
- (setq j 0)
- )
- (setq p t)
- )
- (setq pts (vl-remove-if '(lambda (x) (= x nil)) pts))
-
- )
|