FastFiber

Explode all (OPGELOST)

Gestart door vinnie74, di 26 10 2010, 14:12:17

Vorige topic - Volgende topic

vinnie74

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?

H@rm

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
Acad 10 t/m 2015
Revit 2010 t/m 2015
autodidact lisp

vinnie74

Het werkt, bedankt!!

Alleen nog steeds vreemd dat het niet gewoon werkt op de manier zoals ik gedaan had.....

Reimer

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

bart

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
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

vinnie74

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.