FastFiber

Explode met autoLISP

Gestart door Steve, do 08 09 2005, 09:33:53

Vorige topic - Volgende topic

Steve

hallo,

weet er iemand een autoLISP die ervoor zorgt dat een tekening helemaal Explodeerd word?

groetjes

steve

Joop

Met de volgende code, verschillende keren herhaling, moet een gemiddelde tekening lukken.

Wees voorzichtig! Alleen gebruiken op kopie van orginele tekening!(command "explode" "all" "explode" "all" "explode" "all" "explode" "all" )
Er is een nadeel: ook het titelblock wordt geexplodeerd en ook alle polylijnen.
Nog een nadeel: de attributen van blokken verliezen hun waarde.
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

bart

(command "burst" "all" "explode" "all" "burst" "all" "explode" "all" "burst" "all" "explode" "all" "burst" "all" "explode" "all")


op deze manier worden de atributen tekst.
(je moet wel express tools geinstalleerd hebben)
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

Joop

Heb ik geprobeerd maar de attributen worden normaal geexplodeerd. dus niet naar text. :?:
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

bart

handmatig werkt het gewoon dus moet kunnen
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

HofCAD

Citaat van: Stevehallo,

weet er iemand een autoLISP die ervoor zorgt dat een tekening helemaal Explodeerd word?

groetjes

steve

Beste Steve,

Je kunt met AutoLISP toch af checken, wat je eventueel wel en wat je niet
geexplodeerd wilt hebben.
Door dit in een loop te zetten, kun je precies bepalen hoever je wilt  gaan
met het exploderen.

Groetjes HofCAD CSI
ACADcadabra

Steve

hallo allemaal,

de bovenstaande codes werken niet als we ze in onze LISP-file zetten. Als we gewoon in het command-window typen :explode all dan doet hij het wel. Maar vanaf dat we de code in de LISP zetten werkt het niet meer. Doe ik iets verkeerd dan?

groetjes

Steve

HofCAD

Citaat van: HofCAD
Citaat van: Stevehallo,

weet er iemand een autoLISP die ervoor zorgt dat een tekening helemaal Explodeerd word?

groetjes

steve

Beste Steve,

Je kunt met AutoLISP toch af checken, wat je eventueel wel en wat je niet
geexplodeerd wilt hebben.
Door dit in een loop te zetten, kun je precies bepalen hoever je wilt  gaan
met het exploderen.

Groetjes HofCAD CSI


Beste Steve,

Het onderstaand  'niet volledig uitgewerkt' idee had ik mijn gedachten. 8)
Bij dit idee kun je bijv. maken dat je blocks met attributen niet laat
exploderen. :lol:
Sluit dit dan niet aan bij je gedachte, dan wil ik dat graag van je horen. :roll:
Door dat ik blond ben, begrijp ik mensen niet altijd. :oops:

Groetjes HofCAD CSI

PS Als je AutoCAD 2005 gebruikt,  kun je me dan melden of dat daar
bij het commando -EATTEXT de vraag gesteld wordt:
'Do you want to use a template? [Yes/No]


(defun c: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)))))
(if (or (= en "POLYLINE") (= en "LWPOLYLINE") (= en "INSERT")
(= en "MTEXT") (= en "LEADER")(= en "MLINE"))
(command "_EXPLODE" (ssname s1 i)))
(setq i (1+ i))
)
)
ACADcadabra

bart

Command: -EATTEXT
Enter the extraction type, [Objects/Currentdwg/Selectdwg] <Currentdwg>:
Extract data from external reference drawing? [Yes/No] <Y>:
Extract data from nested blocks? [Yes/No] <Y>:
Do you want to use template? [Yes/No] <Y>:
Enter Template file path:
Enter the output filetype[Csv/Txt/Xls/Mdb] <Csv>:
Enter output filepath:
Do you want to write to C:\Documents and Settings\Bart\Mijn documenten.csv ?
[Yes/No] <Y>:

commandline uitvoer versie 2005

ja de vraag wordt gesteld
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

Steve

hallo,

het programma van HofCAD is goed, maar het kan geen dimensies exploderen?

groetjes
en alvast bedankt

steve

HofCAD

#10
Citaat van: Stevehallo,

het programma van HofCAD is goed, maar het kan geen dimensies exploderen?

groetjes
en alvast bedankt

steve

Beste Steve,

Mijn programma was slechts een voorstel, want er zijn meerdere
dingen niet uitgewerkt.
Bijv. als de entiteit of het object een block is (= en "INSERT")
dan moet er eventueel gekeken worden of er attributen in zitten.
Verder moet ook de inhoud van het block eventueel geexplodeerd
worden, en moet ook de inhoud van een leader eventueel geexplodeerd
worden.
Ook kan bijv. de inhoud van een region bij disjuncte gebieden regions
opleveren, en enz. ..........

Dat ik dimensies niet meegenomen had, dat komt omdat ik blond ben. :oops:

Maar dat van dimensies is makkelijk op te lossen, zie onder.

Groetjes HofCAD CSI

(defun c: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 "POLYLINE") (= en "LWPOLYLINE") (= en "INSERT")
(= en "MTEXT") (= en "LEADER")(= en "MLINE") (= en "DIMENSION")
(= en "HATCH") (= en "REGION") (= en "3DSOLID")(= en "BODY")
(= en "IMAGE"))
(command "_EXPLODE" (ssname s1 i)))
(setq i (1+ i))
)
)

PS Zie ook http://www.cadsite.be/smf/index.php/topic,3271.0.html
ACADcadabra

Steve

hallo hofCAD,

merci merci merci:-)

het werkt perfect!!

groetjes en waarschijnlijk tot de volgende vraag ;-)

Steve

FastFiber