(defun c:ec (/ la lt ln n ss s1 s2 s3 ) (setq ss (ssget)) (if (setq s1 (ssget "p" '((0 . "CIRCLE,ELLIPSE,*LINE,ARC") (6 . "CENTER")) )) (command "erase" s1 "")) (setq s3 (ssadd)) (setq la (tblnext "layer" t)) (while la (setq lt (CDR (assoc 6 la)) LN (CDR (assoc 2 la)) s2 (ssadd) n 0 ) (if (= lt "CENTER") (setq s2(ssget "x" (list '(0 . "CIRCLE,ELLIPSE,*LINE,ARC") (cons 8 LN)))))
(if (/= s2 nil) (progn (repeat (sslength s2) (if (setq ent1(ssmemb (ssname s2 n) ss)) (progn (ssadd ent1 s3) (setq n (+ n 1))) ))) ) (setq la (tblnext "layer" nil)) (command "erase" s3 "") ) (prin1) )
另外能不能再加一个error语句以防空选,先谢谢版主了 |