重线消除.lsp;;;重线消除 ;;;========================================(defun C:TT (/ SS LST I EN ENL PT10 PT11 A N LST_NEW) (if (setq SS (ssget '((0 . "LINE")))) (progn ;;组织成表 ((en pt10 pt11)...) (setq LST '() I 0 ) (repeat (sslength SS) (setq EN (ssname SS I) ENL (entget EN) PT10 (cdr (assoc 10 ENL)) PT11 (cdr (assoc 11 ENL)) ) (setq LST (cons (list EN PT10 PT11) LST)) (setq I (1+ I)) ) ;;逐个对比 (while LST ;;取首个 (setq A (car LST) LST (cdr LST) ) ;;对比 (setq LST_NEW '()) (foreach N LST (if (or (equal (cdr A) (cdr N) 0.1) (equal (cdr A) (reverse (cdr N)) 0.1) ) (entdel (car N)) ;_删除实体 (setq LST_NEW (cons N LST_NEW)) ) ) ;; (setq LST LST_NEW) ) ) ) (princ)) |