FastFiber

Blocks in tekening naar Byblock veranderen en waarde van tekening vast houdt

Gestart door balletje23, di 11 05 2010, 18:49:17

Vorige topic - Volgende topic

balletje23

Wie weet of er een optie is om alle Block in een tekening byblock te laten veranderen.
Acad 2010.

Of door middel van een lisp die alle blocks kleur verandert.


Vb in een tekening zijn er stuk of 100 verschillende blocks deze hebben allemaal een eigen kleur,
Nu wil ik dat alle blocks grijs worden. Ik gebruik blockeditor, en in de Block selecteer ik de lagen en deze verander ik dan naar byblock, maar dat gaat een beetje langduren.

Van Reimer ander forum
Citaat van: balletje23 op di 11 05 2010, 18:49:17

1. Ik heb wel eens een lisproutine gehad die FIXBLOCK heet. Misschien even zoeken op internet? Volgens mij veranderde deze lisp de objecteigenschappen van objecten in alle blocken naar bylayer. Dit is ook wel om te bouwen naar byblock.
Reimer

Heb het advies van Reimer gevolgd, maar hellaas werkt het niet zo goed.
Fixblock.lsp gaat vaak een Block exploderen en daarna maakt hij de Block (Byblock).
De tekening ziet er anders uit na de functie van Fixblock.

Ik zou een lisp willen die de tekening waarde behoudt maar de blocks als Byblock verander.
Dus een soort functie als burst die wel explodeert maar na burst niet van die gekke teksten lijnen naar voren tovert.




EddyBeerke

Met vba is hwt niet zo moeilijk, als voorbeeld:
For each block in thisdrawing...
  For each ent in block
    ent.color = acBlock
  Next
Next
Natuurlijk moet je wel een vangnet maken voor modelspace en paperspace
Maar zo zie de code er een beetje uit.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

balletje23

Heb geen ervaring met code of schrijven van lisp.
ik d8 misschien weet iemand een lisp :vreegoe:

HofCAD

Citaat van: balletje23 op vr 02 07 2010, 10:15:03
Heb geen ervaring met code of schrijven van lisp.
ik d8 misschien weet iemand een lisp :vreegoe:
Beste Balletje23,

Kijk eens bij http://www.cadcorner.ca/lisp.php naar Updblock.zip.
met http://www.cadcorner.ca/Lisp_Routines/updblock.zip
In deze zip zit updblkcl.lsp en updblkly.lsp om resp. de kleur en de laag
van objecten binnen een block te veranderen.
Om de kleur Byblock te zetten, moet je bij updblkcl.lsp het kleurnummer 0
kiezen.
Verder kan het nodig zijn om de attributen te synchroniseren met ATTSYNC of
met de optie Sync van BATTMAN, en bij geneste blocks het programma afzonderlijk
op deze blocks los te laten(bijv. in de BLOCKEDITOR).

Met vriendelijke groet, HofCAD CSI.

PS1 Ik vind het raar dat FIXBLOCK.lsp van http://www.manusoft.com/software/freebies/lisp.html
een explode van het block zou uitvoeren, omdat ik dat niet terug vind in
de broncode.
Een explode gebeurt namelijk niet bij mij.
Er is een verschil tussen FIXBLOCK en UPDBLKCL dat de eerste met entmake
het block opnieuw definieert en de ander het block verandert met entmod.

PS2 Later heb ik op http://www.cadcorner.ca/lisp.php gezien
(evt. ook met http://www.cadcorner.ca/Lisp_Routines/Fixblock.zip )
dat daar ook een Fixblock.zip bestaat met daarin ook een Fixblock.lsp.
Deze versie wijkt sterk af van de eerder genoemde Fixblock omdat deze
het block verandert met entmod, en de attributen automatisch update.
ACADcadabra


FastFiber