0 Members and 1 Guest are viewing this topic.
Sorry? English is not good!
According to the color formation boundary。
(defun c:zz( / a b e1 lst lst1 mid12 mid13 mid32 pt1 pt2 pt3 ss t1) (vla-startundomark (vla-get-ActiveDocument (vlax-get-acad-object))) (setq ss (ssget(list (cons 0 "3DFACE")))) (setq t1 (getvar "TDUSRTIMER")) (while (setq e1 (ssname ss 0)) (setq ss (ssdel e1 ss) lst (list e1)) (foreach a (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))) (if (= (cdr (assoc 62 (entget e1)))(cdr (assoc 62 (entget a)))) (progn (setq lst (cons a lst)) (ssdel a ss))) ) (if lst (setq lst1 (cons lst lst1))) ) (foreach b lst1 (foreach a b (setq e1 (entget a) pt1 (cdr (assoc 10 e1)) pt2 (cdr (assoc 11 e1)) pt3 (cdr (assoc 12 e1)) mid12 (mapcar (function (lambda ( a b ) (/ (+ a b) 2.0))) pt1 pt2) mid32 (mapcar (function (lambda ( a b ) (/ (+ a b) 2.0))) pt3 pt2) mid13 (mapcar (function (lambda ( a b ) (/ (+ a b) 2.0))) pt1 pt3) ) (if (= 1 (sslength(setq ss (ssget "C" mid12 mid12 '((0 . "3DFACE")))))) (entmakex (list (cons 0 "LINE")(cons 10 pt1)(cons 11 pt2)(cons 8 "boundary"))) (if (/= (cdr (assoc 62 (entget (ssname ss 0))))(cdr (assoc 62 (entget (ssname ss 1))))) (entmakex (list (cons 0 "LINE")(cons 10 pt1)(cons 11 pt2)(cons 8 "boundary"))) ) ) (if (= 1 (sslength(setq ss(ssget "C" mid32 mid32 '((0 . "3DFACE")))))) (entmakex (list (cons 0 "LINE")(cons 10 pt3)(cons 11 pt2)(cons 8 "boundary"))) (if (/= (cdr (assoc 62 (entget (ssname ss 0))))(cdr (assoc 62 (entget (ssname ss 1))))) (entmakex (list (cons 0 "LINE")(cons 10 pt3)(cons 11 pt2)(cons 8 "boundary"))) )) (if (= 1 (sslength(setq ss(ssget "C" mid13 mid13 '((0 . "3DFACE")))))) (entmakex (list (cons 0 "LINE")(cons 10 pt1)(cons 11 pt3)(cons 8 "boundary"))) (if (/= (cdr (assoc 62 (entget (ssname ss 0))))(cdr (assoc 62 (entget (ssname ss 1))))) (entmakex (list (cons 0 "LINE")(cons 10 pt1)(cons 11 pt3)(cons 8 "boundary"))) ) ) ) ) (princ (strcat "\n""耗时:" (rtos (* 86400(-(getvar "TDUSRTIMER")t1)) 2 0) "秒")) (vla-endundomark (vla-get-ActiveDocument (vlax-get-acad-object))) (princ))