18
58
41
初露锋芒
(defun c:IC (/ intlist ptemp sset set0 set1 selset e lay lay0 i k l n y z p1 p2 p3 p4 p5 p6 int1 int2 ) (setvar "CMDECHO" 0) (setq sset (ssget "C" (setq p (getpoint "First pt: ")) (getcorner p "Other pt: ") ) ) (setq n (sslength sset) i 1 lay0 (assoc 8 (entget (ssname sset 0))) set0 (ssadd (ssname sset 0)) set1 (ssadd) ) (repeat (- n 1) (setq lay (assoc 8 (entget (setq e (ssname sset i))))) (if (equal lay lay0) (ssadd e set0) (ssadd e set1) ) (setq i (1+ i)) ) (if (> (sslength set0) (sslength set1)) (setq selset set0) (setq selset set1) ) (setq n (sslength selset) i 0 ) (repeat (- n 1) (setq k (1+ i)) (while (< k n) (if (/= (inters (cdr (assoc 10 (entget (ssname selset i)))) (cdr (assoc 11 (entget (ssname selset i)))) (cdr (assoc 10 (entget (ssname selset k)))) (cdr (assoc 11 (entget (ssname selset k)))) ) nil ) (setq intlist (append intlist (list (strcat (itoa i) (itoa k)))) ) ) (setq k (1+ k)) ) (setq i (1+ i)) ) (setq n (length intlist) i 0 ) (repeat (- n 1) (setq k (1+ i)) (while (< k n) (cond ((= (substr (nth i intlist) 1 1) (substr (nth k intlist) 1 1) ) (setq l (atoi (substr (nth i intlist) 1 1))) ) ((= (substr (nth i intlist) 2 1) (substr (nth k intlist) 1 1) ) (setq l (atoi (substr (nth i intlist) 2 1))) ) ((= (substr (nth i intlist) 1 1) (substr (nth k intlist) 2 1) ) (setq l (atoi (substr (nth k intlist) 1 1))) ) ((= (substr (nth i intlist) 2 1) (substr (nth k intlist) 2 1) ) (setq l (atoi (substr (nth k intlist) 2 1))) ) ) (setq y nil z nil ) (if (/= l nil) (progn (setq ptemp (append (list (nth i intlist)) (list (nth k intlist ) ) ) ) (foreach x ptemp (cond ((= (atoi (substr x 1 1)) l) (setq y (atoi (substr x 2 ) ) ) ) ((= (atoi (substr x 2)) l) (setq y (atoi (substr x 1 1 ) ) ) ) ) (if (and (/= y nil) (= z nil) ) (setq z y y nil