vl-load-com) (Defun ATT-TEXT (AENT / TENT ILIST INUM) (Setq TENT '((0 . "TEXT"))) (ForEach INUM '(8 6 38 39 62 67 210 10 40 1 50 41 51 7 71 72 73 11 74 ) (If (Setq ILIST (Assoc INUM AENT)) (Setq TENT (Cons ILIST TENT)) ) ) (Setq tent (Subst (Cons 73 (item 74 aent)) (Assoc 74 tent) tent ) ) (EntMake (Reverse TENT)) ) (Defun LASTENT (/ E0 EN) (Setq E0 (EntLast)) (While (Setq EN (EntNext E0)) (Setq E0 EN) ) E0 ) (Defun BURST-ONE (BNAME / BENT ANAME ENT ATYPE AENT AGAIN ENAME ENT SS-COLOR SS-LAYER SS-LTYPE mirror ss-mirror mlast) (Setq BENT (EntGet BNAME) BLAYER (ITEM 8 BENT) BCOLOR (ITEM 62 BENT) BCOLOR (Cond ((> BCOLOR 0) BCOLOR) ((= BCOLOR 0) "BYBLOCK") ("BYLAYER") ) BLTYPE (Cond ((ITEM 6 BENT)) ("BYLAYER")) ) (Setq ELAST (LASTENT)) (If (= 1 (ITEM 66 BENT)) (Progn (Setq ANAME BNAME) (While (Setq ANAME (EntNext ANAME) AENT (EntGet ANAME) ATYPE (ITEM 0 AENT) AGAIN (= "ATTRIB" ATYPE) ) (ATT-TEXT AENT) ) ) ) (Progn (acet-explode BNAME) ;(command "_.explode" bname) ) (Setq SS-LAYER (SsAdd) SS-COLOR (SsAdd) SS-LTYPE (SsAdd) ENAME ELAST ) (While (Setq ENAME (EntNext ENAME)) (Setq ENT (EntGet ENAME) ETYPE (ITEM 0 ENT) ) (If (= "ATTDEF" ETYPE) (Progn (If (= (Boole 1 (ITEM 70 ENT) 2) 2) (ATT-TEXT ENT) ) (EntDel ENAME) ) (Progn (If (= "0" (ITEM 8 ENT)) (SsAdd ENAME SS-LAYER) ) (If (= 0 (ITEM 62 ENT)) (SsAdd ENAME SS-COLOR) ) (If (= "BYBLOCK" (ITEM 6 ENT)) (SsAdd ENAME SS-LTYPE) ) ) ) ) (If (> (SsLength SS-LAYER) 0) (Progn (Command "_.chprop" SS-LAYER "" "_LA" BLAYER "" ) ) ) (If (> (SsLength SS-COLOR) 0) (Progn (Command "_.chprop" SS-COLOR "" "_C" BCOLOR "" ) ) ) (If (> (SsLength SS-LTYPE) 0) (Progn (Command "_.chprop" SS-LTYPE "" "_LT" BLTYPE "" ) ) ) ) (defun EXPLODE (/ AUSWAHL OBJEKT VLA-OBJEKT LASTOBJ) (setq AUSWAHL (ssget "X" '((0 . "INSERT,*POLYLINE")))) (while (> (sslength AUSWAHL) 0 ) (setq LASTOBJ (entlast)) (repeat (sslength AUSWAHL) (setq OBJEKT (ssname AUSWAHL 0)) (setq VLA-OBJEKT (vlax-ename->vla-object OBJEKT)) (if (vlax-method-applicable-p VLA-OBJEKT 'explode) (vl-catch-all-error-p (vl-catch-all-apply 'vlax-invoke-method (list VLA-OBJEKT 'explode) ) ) ) (ssdel OBJEKT AUSWAHL) ) (setq AUSWAHL(ssadd)) (setq OBJEKT (entnext OBJEKT)) (while OBJEKT (if (member (cdr(assoc 0 (entget OBJEKT))) '("INSERT" "POLYLINE" "LWPOLYLINE" )) (setq AUSWAHL (ssadd OBJEKT AUSWAHL)) ) (setq OBJEKT (entnext OBJEKT)) ) ) ) (defun burst-neu (/ AUSWAHL OBJEKT LASTOBJ) (setq AUSWAHL (ssget "X" '((0 . "INSERT")))) (while (> (sslength AUSWAHL) 0 ) (setq LASTOBJ (entlast)) (repeat (sslength AUSWAHL) (setq OBJEKT (ssname AUSWAHL 0)) (vl-catch-all-error-p (vl-catch-all-apply 'BURST-ONE (list OBJEKT) ) ) (ssdel OBJEKT AUSWAHL) ) (setq AUSWAHL(ssadd)) (setq OBJEKT (entnext OBJEKT)) (while OBJEKT (if (member (cdr(assoc 0 (entget OBJEKT))) '("INSERT")) (setq AUSWAHL (ssadd OBJEKT AUSWAHL)) ) (setq OBJEKT (entnext OBJEKT)) ) ) ) (defun c:ALL-EXPLODE () (vlax-for ITEM (vla-get-layouts(vla-get-activedocument(vlax-get-acad-object))) (vla-put-ActiveLayout(vla-get-activedocument(vlax-get-acad-object))ITEM) (burst-neu) ) )