CADsite forum

AutoCAD => AutoCAD probleem => Topic gestart door: JMD op di 25 01 2011, 09:55:57

Titel: Selectie maken op meerdere layout's (OPGELOST)
Bericht door: JMD op di 25 01 2011, 09:55:57
Weet iemand of het mogelijk is om een selectie te maken op meerdere layout's.
Achterliggende gedacht: onze dymanisch stempel in één keer aanpassen op meerdere layout's; betreft visibility state.

Groet JMD
Titel: Re:Selectie maken op meerdere layout's
Bericht door: HofCAD op di 25 01 2011, 16:32:48
Beste JMD,

Kijk eens naar http://www.cadforum.cz/cadforum_en/select-dynamic-blocks-by-dynamic-properties-tip7583 en daar naar het programma SELDB.

Met vriendelijke groet, HofCAD CSI.

PS Download the application from www.cadstudio.cz/download and load it with APPLOAD.
Start the block selection with the command SelDB  or during another command
(on the "Select objects" prompt) by entering (SelDB).
Titel: Re:Selectie maken op meerdere layout's
Bericht door: EddyBeerke op wo 26 01 2011, 08:21:09
Ik heb het geprobeerd en HET WERKT!!!
Als je met het filter iets geselecteerd hebt, ook al bevindt het zich op een andere layout, dan kun je via de propperties alles aanpassen ook de visibility state.

Top HofCAD!!!
Titel: Re:Selectie maken op meerdere layout's
Bericht door: HofCAD op wo 26 01 2011, 11:33:12
Beste Eddy en JMD,

Probeer met de bijgevoegde Lisp van Darren J. Young http://www.theswamp.org/index.php?topic=15160.0 ook
(ssget "_x" (append '((0 . "INSERT"))(csgc:dyn-ssfilter "MY-DYN-BLOCK-NAME")(list (cons 410 (getvar "ctab")))))
(ssget "_x" (append '((0 . "INSERT"))(csgc:dyn-ssfilter "MY-DYN-BLOCK-NAME")))

Met vriendelijke groet, HofCAD CSI.

PS Ctab is current (model or layout) tab in the drawing
Titel: Re:Selectie maken op meerdere layout's
Bericht door: HofCAD op wo 26 01 2011, 11:49:44
Beste Eddy en JMD,

Probeer

(defun GetBlockSelectionSet (name / ss )
(vl-load-com)
(if (setq ss (ssget "_X" (list (cons 0 "INSERT") (cons 2 (strcat name ",`*U*")))))
   (
     (lambda ( i / e )
       (while (setq e (ssname ss (setq i (1+ i))))
         (if (not (eq name (vla-get-EffectiveName (vlax-ename->vla-object e))))
           (ssdel e ss)
         )
       )
       ss
     )
     -1
   )
 )
)


Probeer inplaats van bovenstaande de onderstaande:
(defun GetBlocksByName (bname / obj ss ss2)
  (vl-load-com)
  (setq ss2 (ssadd))
  (if (setq ss (ssget "_X" (list (cons 0 "INSERT") (cons 2 (strcat bname ",`*U*")))))
    (foreach blk (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
      (setq obj (vlax-ename->vla-object blk))
      (and (eq (strcase bname) (strcase (vla-get-effectivename obj))) (ssadd blk ss2))
    )
  )
  ss2
)

Met vriendelijke groet, HofCAD CSI.

PS Deze sub GetBlockSelectionSet is niet goed, daarom niet gebruiken.
Titel: Re:Selectie maken op meerdere layout's
Bericht door: EddyBeerke op do 27 01 2011, 07:36:00
Citaat van: HofCAD op wo 26 01 2011, 11:49:44
Beste Eddy en JMD,

Probeer

(defun GetBlockSelectionSet (name / ss )
(vl-load-com)
(if (setq ss (ssget "_X" (list (cons 0 "INSERT") (cons 2 (strcat name ",`*U*")))))
   (
     (lambda ( i / e )
       (while (setq e (ssname ss (setq i (1+ i))))
         (if (not (eq name (vla-get-EffectiveName (vlax-ename->vla-object e))))
           (ssdel e ss)
         )
       )
       ss
     )
     -1
   )
 )
)



Met vriendelijke groet, HofCAD CSI.

Heb het nog niet geprobeert maar zoals ik de code nu zie is het volgens mij een goede aanvulling voor GATTE.lsp!!!
Titel: Re:Selectie maken op meerdere layout's
Bericht door: JMD op di 01 02 2011, 19:33:20
L.S.

ik krijg het programmaatje niet 'gestart' in 2011, krijg steeds melding van unknow commando.
enig idee??
Titel: Re:Selectie maken op meerdere layout's
Bericht door: HofCAD op di 01 02 2011, 19:38:33
Citaat van: JMD op di 01 02 2011, 19:33:20
L.S.

ik krijg het programmaatje niet 'gestart' in 2011, krijg steeds melding van unknow commando.
enig idee??
Beste JMD,

Dat is duidelijk! :mrgreen:
En welk programmaatje van de drie is dat dan wel?
Bedoel je het programma SELDB?
Doe je het programma wel eerst laden met bijv. het commando APPLOAD of bijv.
slepen vanuit de Windows verkenner naar het grafisch schern van AutoCAD?
Het programma SELDB krijg ik namelijk wel gestart in AutoCAD 2011! :lachen:

Met vriendelijke groet, HofCAD CSI.
Titel: Re:Selectie maken op meerdere layout's
Bericht door: JMD op wo 02 02 2011, 09:29:28
Dag HofCAD,

Het betreft programma GetBlockSelectionSet
Deze heb ik via Kladblok in LISP-bestand gezet, vervolgens in geladen via Appload.
Echter unknow commando.
Titel: Re:Selectie maken op meerdere layout's
Bericht door: HofCAD op wo 02 02 2011, 09:57:45
Citeerauthor=JMD link=topic=4600.msg24284#msg24284 date=1296635368]
Dag HofCAD,

Het betreft programma GetBlockSelectionSet
Deze heb ik via Kladblok in LISP-bestand gezet, vervolgens in geladen via Appload.
Echter unknow commando.

Beste JMD,

Ook bij dit programma heb ik in AutoCAD 2011 geen problemen.
Stel ik heb in mijn tekening een aantal block referenties staan van het
dynamische block "MijnDynBlk".
Dan typ ik na het laden van GetBlockSelectionSet het volgende in op
de commando regel:
(GetBlockSelectionSet  "MijnDynBlk")
AutoCAD zal dan antwoorden met:
<Selection set: ##>
Maar GetBlockSelectionSet is niet te vertrouwen.

Stel ik heb in mijn tekening een aantal block referenties staan van het
dynamische block "MijnDynBlk".
Dan typ ik na het laden van GetBlocksByName het volgende in op
de commando regel:
(GetBlocksByName "MijnDynBlk")
AutoCAD zal dan antwoorden met:
<Selection set: ##>

Deze selectieset kan je o.a. benaderen met het commando: SELECT P
(met de P via Previous selection set)
Je kan ook op de commandoregel invoeren:
(setq S (GetBlocksByName "MijnDynBlk"))
Dan kun je via !S de selectieset benaderen.
Bijvoorbeeld: SELECT !S of PSELECT !S

Met vriendelijke groet, HofCAD C SI.

PS Zie het bijgevoegde programma SelDynBlk.lsp in de attachment.
Titel: Re:Selectie maken op meerdere layout's
Bericht door: JMD op wo 02 02 2011, 10:31:50
Waarschijnlijk ligt het aan het programma, enkele vragen:
- de naam van het block maakt toch niets uit?
- kunnen er verschillende block's in de tekening zijn?
- maakt het insertionpoint nog iets uit?
Titel: Re:Selectie maken op meerdere layout's
Bericht door: HofCAD op wo 02 02 2011, 10:48:05
Citaat van: JMD op wo 02 02 2011, 10:31:50
Waarschijnlijk ligt het aan het programma, enkele vragen:
- de naam van het block maakt toch niets uit?
- kunnen er verschillende block's in de tekening zijn?
- maakt het insertionpoint nog iets uit?
Beste JMD,

Kijk eens naar het bijgevoegde Lisp programma SelDynBlk.lsp.

De naam van het block maak wel iets uit, want het moet de
naam zijn een 'Dynamisch Block'.
Citaat van: JMD op di 25 01 2011, 09:55:57
Weet iemand of het mogelijk is om een selectie te maken op meerdere layout's.
Achterliggende gedacht: onze dymanisch stempel in één keer aanpassen op meerdere layout's; betreft visibility state.

Groet JMD
Van dat dynamisch block mogen er verschillende verschijningsvormen zijn.

Binnen een tekening mogen er meerdere gewone en dynamische blocks bestaan.
Alleen de block referenties met de gespecificeerde naam in (getblocksbyname "...")
worden geselecteerd.

Het insertionpoint(invoegpunt) van de block referenties maakt niets uit, want het
een selectieset op de eigenschap 'Name' en 'Dynamic'.

Met vriendelijke groet, HofCAD CSI.

PS Waarschijnlijk is het programma SELDB van http://www.cadstudio.cz/download voor U
iets gebruiksvriendelijker.
Titel: Re:Selectie maken op meerdere layout's
Bericht door: HofCAD op do 03 02 2011, 14:18:22
Beste JMD en Eddy,

Ik heb het programma in SelDynBlk.lsp veranderd, omdat GetBlockSelectionSet
niet goed werkt.
Nu wordt daarvoor inplaats GetBlocksByName gebruikt.

Met vriendelijke groet, HofCAD CSI.

PS Laat eerst het programma SelDynBlk.lsp
1)Start PROPERTIES en typ SDB in, en geef daarop
de naam of selecteer het block.
of
2)In de dialoogbox van PROPERTIES klik op de knop 'Select Objects'
en geef dan op de commandoregel (SDB2) in en geef daarop
de naam of selecteer het block.

Nu kun je in de dialoogbox van PROPERTIES de Visibility State van alle
blocks gelijktijdig naar een bepaalde Visibility State veranderen.
Ook al staan ze op een verschillende space(Layout en Model space).
Titel: Re:Selectie maken op meerdere layout's (OPGELOST)
Bericht door: JMD op vr 04 02 2011, 19:15:52
HofCAD,

Dank voor je inbreng in deze materie.
Ik had er overheen gelezen maar heb het nu opgelost via: (setq S (GetBlocksByName "MijnDynBlk"))
Nogmaals bedankt voor je inbreng.

Groet Jan