header image
Nieuws

Ben jij een CADTopper? Welkom en veel plezier op onze site.

Topic: blockreplace --> dynamisch block  (gelezen 1411 keer)

blockreplace --> dynamisch block
« Gepost op: 20 oktober 2017, 13:22:14 »
Beste CADToppers,
Wederom heb ik jullie hulp nodig!
Ik heb een aantal dynamische blocken die ik via blockreplace moet gaan vervangen.
Zowel de bestaande als de nieuwe blocken hebben dynamische eigenschappen en dat maakt het bijna onmogelijk om deze via blockreplace te vervangen.
Als ik de dynamische eigenschappen uit beide blocken haal, dan werkt het wel, maar dat is geen optie.

Ik maak trouwens een macro, want ik moet behoorlijk wat tekeningen aanpassen.

Wie heeft er een goede oplossing?

Mvg. Richard
Re: blockreplace --> dynamisch block
« Reactie #1 Gepost op: 20 oktober 2017, 13:30:46 »
P.s. er komen ook gemixte situaties voor, waarbij het te vervangen block dynamisch is en de nieuwe niet en andersom
Re: blockreplace --> dynamisch block
« Reactie #2 Gepost op: 20 oktober 2017, 16:44:32 »
Inderdaad dat werkt niet.
Heb hier nog geen oplossing voor gevonden, ga dit weekend eens ff zoeken.
Ben ook wel benieuwd, ik liep zojuist tegen het zelfde probleem aan.
Re: blockreplace --> dynamisch block
« Reactie #3 Gepost op: 20 oktober 2017, 23:55:39 »
Zijn bij vervanging dynamisch naar dynamisch alle dyn. eigenschappen gelijk (naam + type)?
Re: blockreplace --> dynamisch block
« Reactie #4 Gepost op: 21 oktober 2017, 11:00:53 »
Zijn bij vervanging dynamisch naar dynamisch alle dyn. eigenschappen gelijk (naam + type)?
Bij mij niet omdat het om een totaal ander product gaat.
Dat maakt het gelijk lastig.
Re: blockreplace --> dynamisch block
« Reactie #5 Gepost op: 21 oktober 2017, 12:56:15 »
Bij mij gaat het er ook niet om, om de dynamische eigenschappen over te nemen.
Ik moet simpel weg gezegd, een block vervangen door een ander block.
Re: blockreplace --> dynamisch block
« Reactie #6 Gepost op: 23 oktober 2017, 07:56:54 »
Ik ben wel benieuwd of iemand hier een mooie oplossing voor weet te vinden.
Mijn vermoeden is, is dat er in mijn geval een combinatie nodig is, van een macro met een stukje LISP.

Wat wel in mijn voordeel werkt, is het feit dat ik een vast setje blocken moet vervangen.
Re: blockreplace --> dynamisch block
« Reactie #7 Gepost op: 23 oktober 2017, 08:02:04 »
Wat ik eens gemaakt heb is in vba.
Dan verving ik de Block.Name door de nieuwe naam.


Als voorbeeld:



For Each returnObj In ssetObj
    Set Block = returnObj
    ...
    Block.Name = NwBlockName
    ...
Next

Re: blockreplace --> dynamisch block
« Reactie #8 Gepost op: 23 oktober 2017, 09:56:25 »
Helaas ben ik geen expert in VBA  :'(

Maar stel ik heb een block dat AED heet en ik wil dat vervangen door ander block dat 09-AED heet, hoe kan ik dat dan het beste doen.
(Er van uitgaande dat 1 of 2 blocken dynamisch is/zijn)
Re: blockreplace --> dynamisch block
« Reactie #9 Gepost op: 23 oktober 2017, 11:24:13 »
Om te kijken of Eddy's suggestie werkt kun je de onderstaande code proberen. Voor statische blocks moet deze i.i.g. werken.
(vla-put-name (vlax-ename->vla-object (car (entsel))) "09-AED")
Re: blockreplace --> dynamisch block
« Reactie #10 Gepost op: 23 oktober 2017, 11:31:09 »
Getest, zie hieronder resultaat: (Waarbij ik de 09-AED even heb vervangen door "it server"

Command: (vla-put-name (vlax-ename->vla-object (car (entsel))) "it server")
Select object: nil
Command:


Dan moet ik nog wel het desbetreffende block aanklikken.......
Re: blockreplace --> dynamisch block
« Reactie #11 Gepost op: 23 oktober 2017, 14:44:07 »
Ik heb mijn vraag ook even op het WWW uitgezet bij AutoDESK, daar kwamen direct wat verrassende oplossingen naar voren.
Zie linkje(s)
https://forums.autodesk.com/t5/autocad-forum/blockreplace-doesn-t-work-on-dynamic-blocks/m-p/7483416/highlight/false#M903790

https://forums.autodesk.com/t5/dynamic-blocks/replace-dynamic-blocks-with-another-dynamic-block/td-p/3300593

Ik denk dat ik maar ga experimenteren met de RENAME optie en dan de nieuwe blocken inserten / redefinen.
(Andere oplossingen worden ook nog steeds gewaardeerd!!!!!! )
Re: blockreplace --> dynamisch block
« Reactie #12 Gepost op: 23 oktober 2017, 14:57:12 »
Re: blockreplace --> dynamisch block
« Reactie #13 Gepost op: 23 oktober 2017, 15:45:52 »
roy_043,

Het lijkt erop, dat deze LISP precies doet wat ik nodig heb.
Dit kan ik in een macro verwerken heb heb al een kleine testronde gedaan!
Bij deze dus  CADTN
Re: blockreplace --> dynamisch block
« Reactie #14 Gepost op: 24 oktober 2017, 10:30:09 »
@CADTopper_ADMIN:
Goed om te horen dat de code in jouw situatie werkt.

Maar wat gebeurt er bij vervanging dyn->dyn?
Worden alle dynamische properties gereset?
Of worden properties met dezelfde naam overgenomen?

Als BricsCAD gebruiker heb ik weinig ervaring met dynamische blocks vandaar deze vragen.