FastFiber

alle blocks selecteren (opgelost)

Gestart door Sven, di 10 03 2009, 11:02:13

Vorige topic - Volgende topic

HofCAD

#15
Citaat van: Sven op di 17 03 2009, 15:57:06
sorry hoor hofcad, dat ik jouw geduld zo op de proef stel, maar er zijn tientallen bloknamen die WEL geselecteerd moeten worden, enkel de bloknaam "MijnBLK" NIET. Ik denk dat jouw code net het omgekeerde doet.

Bestaat er geen mogelijk om alles te selecteren, behalve een bepaalde voorwaarde (in dit geval een bloknaam)?
Beste Sven,

Zie mijn bijdrage in: http://www.cadsite.be/smf/index.php/topic,2846.msg14598.html#msg14598
Stel je wil alle blocks selecteren maar het block "MijnBlk" niet dan wordt je programma bijv.:

(defun c:Blocks_na_flatten3a (/ i ss)
(command "_-layer" "_T" "BT_blocks_na_flatten" "_M" "BT_blocks_na_flatten" "")
(setq i 0 ss nil ss (ssget "X" (list '(0 . "INSERT") '(-4 . "<NOT") '(2 . "MijnBlk") '(-4 . "NOT>"))))
(if SS (progn
(repeat (sslength ss)
(command "_explode" (ssname ss i))
(setq i (1+ i))
)))
)

of
(defun c:Blocks_na_flatten3b (/ flag ss)
(command "_-layer" "_T" "BT_blocks_na_flatten" "_M" "BT_blocks_na_flatten" "")
(setq ss nil ss (ssget "X" (list '(0 . "INSERT") '(-4 . "<NOT") '(2 . "MijnBlk") '(-4 . "NOT>"))))
(if SS (progn
(setq flag (getvar "qaflags"))
(setvar "qaflags" 5)
(command "_explode" ss "")
(setvar "qaflags" flag)
))
)


Heb je meerdere blocks(bijv. "MijnBlk1", "MijnBlk2" en "MijnBlk3")  die je niet wil selecteren dan wordt de selectieset:
(setq ss nil ss (ssget "X" (list '(0 . "INSERT")
'(-4 . "<NOT") '(-4 . "<OR") '(2 . "MijnBlk1") '(2 . "MijnBlk2") '(2 . "MijnBlk3") '(-4 . "OR>")'(-4 . "NOT>"))))


Met vriendelijke groet, HofCAD CSI.

PS Moet dit topic door Julien niet verplaatst worden naar Autolisp?
Of ben ik diegene die er een een Autolisp topic van maakt.
ACADcadabra

Sven

PERFECT, hartelijk bedankt HofCAD.

PS: je hebt gelijk, deze topic is eigenlijk geëvolueerd naar een LISP-topic

Reimer

Citaat van: Sven op di 10 03 2009, 11:02:13
Is er een mogelijkheid om alle blocks in 1 tekening te selecteren, maar dan puur door met de commandoregel te werken of met lisp of VBA (heb mijn vraag daar ook reeds gesteld maar daar komt geen antwoord op). De bedoeling is om daarna geautomatiseerd bewerkingen uit te voeren met deze blocks.

alvast bedankt, Sven

Volgens mij was dit vanaf het begin al een LISP-topic.  :wink:
Maar ook ik heb weer wat bijgeleerd m.b.t. lisp.

Reimer