yoin

thijss

Ik heb het forum eens doorgespit op het onderwerp draworder koppelen aan layers maar geen volledig antwoord gevonden..

Wat ik graag wil:
Een aantal layers automatisch vast als "onderste laag" (sent to the back) zetten. Nu doe ik dit met quick select en draworder, dit is niet vast en vooral erg omslachtig. Het mooiste zou het zijn als ik in de layermanager de layer met draworder in één keer kan plaatsen.

Ik werk met autocad 2008 en ben niet handig met lisps maar wil het graag proberen.

sschevers

#1
Thijss,

Draworder hangt niet aan je lagen maar aan de eniteiten die op de lagen staan. Als je het commando uitvoert moet je ook entiteiten selecteren die je naar achteren wilt sturen.
Moet alles wat op een bepaalde laag staat naar achteren worden gezet of bepaalde entiteiten bijv. vlakken?
Je kunt dit met een lisp doen door een selectie set te maken en deze aan het command draworder meegeven. Eigenlijk hetzelfde wat je nu handmatig doet maar dan met lisp

stephan

julien

Zou dat niet eenvoudiger zijn met een macro?


thijss

In deze situatie moet ik van een aantal layers alle getekende entiteiten naar de achtergrond zetten.

Een macro is voor mij het handigst omdat ik nog niet met lips heb gewerkt. Ik weet hoe ik een knop kan maken maar niet hoe ik de macro moet schrijven, heeft iemand een beschrijving/site voor me?

Eerste gokje: *^C^C_\qselect;draworder\1;

1) *           macro zich laten herhalen
2) ^C^C_   oude dingen cancelen
3) \            selecteren entiteit
4) qselect   layer van geselecteerde entiteit compleet selecteren
5) ;            enter...
6)draworder\1  draworder alles naar back (onderste laag = 1??)   
7) ;            macro afsluiten

Hij is niet goed want hij werkt niet wie helpt me verder....

Reimer

Ik heb even snel wat getest en het volgende werkt bij mij:
*^C^C_ssx;\B;;C;;E;;LT;;S;;T;;V;;;_draworder;p;;back;
(het nadeel van het herhalen met een * is dat je het commando alleen kunt afbreken met Esc.)

Het commando SSX gebruik ik om te filteren. Door een object te selecteren maakt acad een lijstje met eigenschappen waarop geselecteerd wordt. In deze lijst zit onder andere de objectsoort, de laagnaam, de color, evt. blocknaam, evt. linetype. Omdat we alleen op laagnaam willen selecteren haal ik alle andere eigenschappen uit de lijst (B;; = block name -> <RETURN to remove>).

Ik hoop dat je er iets aan hebt.

Reimer

thijss

Werkt als een trein! bedankt Reimer.

Ik heb de * weggehaald, hij kwam gelijk in een loop. Even voor mijn macro kunde:

^C^C                            = cancel of start macro
_                                   = volgende commando
SXX                              = selectie commando
B;;C;;E;;LT;;S;;T;;V;;;; = doorlopen van het SXX commando Block
                                       Block enter - standaard antwoord RETURN dus nog een keer enter
                                       LA = Layer deze wordt niet geremoved en blijft in de selectieset
_                                   = volgend commando
draworder;                    = start commando draworder
p;                                  = position
back;                             = aangeven dat de selectie naar back gaat

Klopt dit?

Als laatste vraag ik heb mijn rechtermuisknop als enter ingesteld en als herhalen laatste commando, nu ziet hij DRAWORDER als laatste commando. Kan ik ook dit macro laten herhalen?

Reimer

^C^C                            = cancel of start macro2x cancel om eventueel actieve commando's af te breken
_                                   = volgende commando underscore zorgt ervoor dat het gegeven commando wordt vertaald indien er met acad in een andere taal wordt gewerkt
SXX                              = selectie commando
B;;C;;E;;LT;;S;;T;;V;;;; = doorlopen van het SXX commando Block
                                       Block enter - standaard antwoord RETURN dus nog een keer enter
                                       LA = Layer deze wordt niet geremoved en blijft in de selectieset
_                                   = volgend commando zie boven :)
draworder;                    = start commando draworder
p;                                  = position kies voor Previous selection
back;                             = aangeven dat de selectie naar back gaat

Voor het maken van macro's bestaan nog meer speciale karakters. Deze kun je vinden in de help (vul bij index de term Macro in en kies "special character codes for commands")

Je kunt een macro niet in zijn geheel herhalen. Het blijft gewoon een aaneenschakeling van opdrachten. Je zult met een lisprountine moeten werken om er één commando van te kunnen maken.

Reimer

thijss