Ik wil in mijn toolpalette in mijn tekening achtereenvolgens alle aanwezige xref's binden tot een block en vervolgens exploderen volgens de volgende commandoregel:
^C^C-xref;b;*;;explode;all;
Echter wordt er nu maar 1 block geexplodeerd, terwijl als ik dit allemaal handmatig 1 voor 1 invoer, explodeert ACAD wel alle blocks.
Iemand enig idee wat dit kan zijn, of heeft iemand een andere manier gevonden?
Citaat van: vinnie74 op di 26 10 2010, 14:12:17
Ik wil in mijn toolpalette in mijn tekening achtereenvolgens alle aanwezige xref's binden tot een block en vervolgens exploderen volgens de volgende commandoregel:
^C^C-xref;b;*;;explode;all;
Echter wordt er nu maar 1 block geexplodeerd, terwijl als ik dit allemaal handmatig 1 voor 1 invoer, explodeert ACAD wel alle blocks.
Iemand enig idee wat dit kan zijn, of heeft iemand een andere manier gevonden?
Ik heb wel een lisp voor je;
(defun boem( / s1 i en)
(command "select" "ALL" "")
(setq s1 (ssget "P"))
(setq i 0)
(repeat (sslength s1)
(setq en (cdr (cadr (entget (ssname s1 i)))))
;(print en)
(if
(or
(= en "MTEXT")
(= en "DIMENSION")
(= en "POINT")
(= en "HATCH")
)
(command "_ERASE" (ssname s1 i)"")
)
;(print en)
(if
(= en "INSERT")
(progn
(command "_EXPLODE" (ssname s1 i))
(print en)
)
)
(setq i (1+ i))
)
(if (= en nil) (print "KLAAR!"))
(princ)
)
Michel
Het werkt, bedankt!!
Alleen nog steeds vreemd dat het niet gewoon werkt op de manier zoals ik gedaan had.....
Ik weet niet of vinnie74 ook weet dat de lisproutine van H@rm niet alleen alle blocken in een tekening explodeerd, maar ook alle vooraf aanwezige Mtexten, Dimensions, Points en Hatches verwijderd. Het is de vraag of dit voor Vinnie74 nodig is of misschien ongewenst.
Reimer
C^C-xref;b;*; ; explode;all;
er staat een ; te veel in je macro haal er 1 uit achter het sterretje en het zou moeten werken
zoals het nu is wordt door de extra ; het xref commando voor de tweede keer gestart
Dat de Lisp routine niet de juiste dingen deed, had ik wel in de gaten, hij is inmiddels ook aangepast en werkend.
Verder de opmerking van een ; teveel is ook niet geheel juist, ACAD voert het commando EXPLODE wel uit, maar alleen maar bij 1 block, en niet bij alle.