FastFiber

Automatisch uitschakelen van lagen in viewport

Gestart door Rubke10, wo 30 06 2010, 09:12:00

Vorige topic - Volgende topic

Rubke10

Hallo allemaal,

Ik zou graag in paperspace een aantal lagen automatisch uit willen laten schakelen met het commando LAYOFF.

Bijvoorbeeld met het commando ''test'' wil ik automatisch dat in de geselecteerde viewport alle lagen, die de naam test bevatten, onizchtbaar worden met het commando ''layoff''. De laag wordt dan bevroren bij VPFREEZE.

Is er een mogelijkheid om dit voor elkaar te krijgen??

Alvast bedankt voor jullie reacties!

julien

Dat is vrij goed te doen via een macro'tje.
Plaats even alle tekst die je moet invoeren om te doen wat je wil bereiken, dan kan daar waarschijnlijk snel een macro van gemaakt worden.

Rubke10

Citaat van: julien op wo 30 06 2010, 09:49:37
Dat is vrij goed te doen via een macro'tje.
Plaats even alle tekst die je moet invoeren om te doen wat je wil bereiken, dan kan daar waarschijnlijk snel een macro van gemaakt worden.

Ik heb verschillende lagen die ik wil uitzetten met LAYOFF. Als voorbeeld neem ik de laagnaam ''test''.
Helaas heb ik niet veel ergvaring  met het schrijven van een macro. Ik kan wel een macro maken die het commando LAYOFF inschakeld maar verder kom ik niet.
Kan iemand mij misschien helpen bij het maken van een macro welke de laagnaam ''test'' automatisch uitschakeld? Het is hierbij wel de bedoeling dat de laag dan uitstaat in de layer manager bij 'VPFREEZE', want niet in alle viewports moet de laag test uitgeschakeld worden...

H@rm

Citaat van: Rubke10 op wo 30 06 2010, 10:11:40
Ik heb verschillende lagen die ik wil uitzetten met LAYOFF. Als voorbeeld neem ik de laagnaam ''test''.
Helaas heb ik niet veel ergvaring  met het schrijven van een macro. Ik kan wel een macro maken die het commando LAYOFF inschakeld maar verder kom ik niet.
Kan iemand mij misschien helpen bij het maken van een macro welke de laagnaam ''test'' automatisch uitschakeld? Het is hierbij wel de bedoeling dat de laag dan uitstaat in de layer manager bij 'VPFREEZE', want niet in alle viewports moet de laag test uitgeschakeld worden...

zie bijlage. Extentie even wijzigen naar .scr

Michel
Acad 10 t/m 2015
Revit 2010 t/m 2015
autodidact lisp

julien

vanaf nu kunnen bestanden met de extentie scr ook geupload worden.  :wink:

H@rm

Citaat van: julien op wo 30 06 2010, 11:21:27
vanaf nu kunnen bestanden met de extentie scr ook geupload worden.  :wink:

@julien  :vreegoe: :vreegoe: :vreegoe:
Acad 10 t/m 2015
Revit 2010 t/m 2015
autodidact lisp

EddyBeerke

#6
Welkom Rubke,

Ik heb onder een knopje dit staan:
vplayer;f;X05*;;f;X07*;;;

Hierbij is X05* een naam met een 'wildcard match', in mijn geval zijn dit alle lagen die beginnen met "X05".
X07*, idem
De ";" is gelijk aan een enter of spatie.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

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

Rubke10

Dit zijn beide erg goede opties! Precies wat ik zocht! Het commando VPLAYER was bij mij niet bekend.
Dit commando werkt perfect!

Echter nu loop ik tegen een tweede probleem aan. Wanneer ik een laag bij maak waar ook de naam ''test'' in voorkomt dan zou deze ook uit moeten schakelen in alle viewports waar ik het commando VPLAYER --> freeze --> *test* --> current al eens heb uitgevoerd. Helaas gebeurt dit niet automatisch. Is er ook een commando wat er voor zorgt dat, wanneer ik een laag heb bijgemaakt waarin het woordt test voorkomt, deze ook uit automatisch wordt uitgeschakeld in de viewports waar ik het commaondo VPLAYER al heb uitgevoerd. Anders zou ik telkens alle layouts met alle viewports na moeten lopen als men later een laag met de naam ''test'' toevoegt.

EddyBeerke

Citaat van: Rubke10 op wo 30 06 2010, 12:34:03
...
Is er ook een commando wat er voor zorgt dat, wanneer ik een laag heb bijgemaakt waarin het woordt test voorkomt, deze ook uit automatisch wordt uitgeschakeld in de viewports waar ik het commaondo VPLAYER al heb uitgevoerd. Anders zou ik telkens alle layouts met alle viewports na moeten lopen als men later een laag met de naam ''test'' toevoegt.
Volgens mij is dit niet standaard mogelijk.
Er zou een actie moeten plaatsvinden wanneer je een laag aanmaakt die controleert of het voldoet aan jou eis.
Dit is mogelijk als je een programma schrijft, maar lijkt mij erg lastig.
Maar waarom wil je die layers die je aanmaakt uit hebben, en blijven die dan ook uit zodat ze nooit geplot worden?
Als dit laatst het geval is dan is de oplossing nog makkelijker dan je denkt.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

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

Rubke10

Ik heb vaak projecten met zo'n 40 a 50 layouts, met in elke layout zo'n 8 viewports.
We hebben vlug zo'n 300 a 400 viewports en weten op den duur niet meer of hiervan 133 viewports 1:20 zijn of bijvoorbeeld 267. Wel weten we dat we de laag, waarin het woord ''test'' in voorkomt, niet geplot willen hebben in de viewports welke 1:20 geplot worden.
Als wij, i.v.m. voortschrijdend inzicht, later een laag toevoegen met de naam test hierin, weten we wel dat we deze 1:20 niet willen plotten, dus onzichtbaar maken in de viewports 1:20.

Dit moet toch op een makkelijke manier kunnen, dan alle 400 vieports openen en hier de macro opnieuw op loslaten.

Reimer

Nu je deze omschrijving geeft zit ik te denken aan macro / lisproutine waarbij je eerst aparte lagen maakt voor de viewports (per schaal). Vervolgens kun je een macro laten draaien die in alle viewports op laag VP1-20 de lagen met *test* bevriest.

Misschien heeft iemand anders een ander/beter idee?

Reimer

EddyBeerke

Het is misschien mogelijjk.
Maar dan moet je die objecten in een block tekenen en er een annotation aan hangen zodat het niet zichtbaar is in 1:20.
Zie deze link: http://docs.autodesk.com/ACD/2011/ENU/filesAUG/WSfacf1429558a54de2ab0a1008e4be961-7e0f.htm

Het is even lezen maar volgens mij kom je erwel uit.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

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

Rubke10

Citaat van: Reimer op wo 30 06 2010, 15:53:29
Nu je deze omschrijving geeft zit ik te denken aan macro / lisproutine waarbij je eerst aparte lagen maakt voor de viewports (per schaal). Vervolgens kun je een macro laten draaien die in alle viewports op laag VP1-20 de lagen met *test* bevriest.

Misschien heeft iemand anders een ander/beter idee?

Reimer

Dit is eigenlijk waar ik naar op zoek ben. Ik weet alleen niet hoe je zo'n soort lisp moet schrijven.
De lisp moet dan (in mijn ogen) automatisch alle layouts openen en bekijken of er een viewport schaal 1:20 in voorkomt. Als er een viewport 1:20 in de layout zit dan zou hij automatisch deze viewport moeten openen en dan de laag ''test'' onzichtbaar moeten maken via VPLAYER-->freeze.

Zou iemand mij op weg kunnen helpen met het schrijven van zo'n lisp??

EddyBeerke

In mijn lisp: PrintAllLayouts.lsp dien je op deze site kunt vinden zit een goed begin voor jou om in de tekening naar alle layouts te gaan.
Nu kun je deze aanpassen voor elke vport in elke layout.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

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

roy_043

@ Rubke10:
Nog een interessante lisp:
vpfreeze van CadDog:
http://forums.augi.com/showthread.php?t=83721

@ EddyBeerke:
Ik kan PrintAllLayouts.lsp niet vinden. Noch met de zoekfuntie op het forum noch met Google.
Kun je een link posten?