Zobrazit plnou verzi příspěvku: Přeskočení uživatelského vstupu v makru

sjkdhdfjsdjkf
11.11.2014, 10:40
Zdravím,pokouší se vytvořit makro pro klávesovou zkratku, které by mi změnilo hladinu vybraného objektu a (v ideálním případě nebo) vybralo tuto hladinu jako aktivní.Momentálně jsem se dostal k následujícímu:[code]^C^C'_-LAYER;_Set;OSY;;_chprop;h;OSY;;^C^C[/code]Ale problém nastane, když nemám nic vybrané. _CHPROP po mně chce vybrat objekty. Proto jsem na konec makra přidal dvojíty ESC (^C^C), ale nezabralo to.Neví, prosím, někdo jak toto vyřešit? Děkuji

Vladimír Michl
11.11.2014, 14:45

Nevím jak se to přesně má chovat - objekty musí být vybrané předem (grips)? Pokud ne, stačí za Chprop dát čekání na vstup ("\"). Popř. se dá zkontrolovat výběr - to ale spíš LISP funkcemi v makru.

johny
11.11.2014, 15:05
S pickfirst 1 to funguje.Btw. české "h" zaměňte za "_la".Jinak se nechá při opakované selekci využívat i "_p;;" jako předchozí výběr a enter, pokud se nepletu v syntaxi.

sjkdhdfjsdjkf
13.11.2014, 12:20
Asi jsem se špatně vyjádřil.Chci si nabindovat klávesové zkratky pro změnu hladin, stejně jako bych je vybíral z dropdown menu.Tj. Když mám vybrané nějaké objekty, chci aby se změnila jejich hladina. Když není vybrané nic, chci změnit aktivní hladinu, která se bude používat při kreslení.Teď mi to dělá následující: Když jsou vybrané objekty, tak jim to nastaví hladinu + tu samou hladinu to nastaví jako výchozí pro další kreslení (což by nevadilo). Když nejsou vybrané žádné objekty, nastaví hladinu jako výchozí a zůstane viset kurzor s výzvou vyberte objekty, který musím zrušit Enterem či Esc.Mám ACAD LT, takže s LISPem nepochodím. Tuším, že cesta povede přes DIESEL, ale nepovedlo se mi zjistit, jak detekovat, jestli jsou vybrané nějaké objekty.johny: Nahrazeno, díky za upozornění.

johny
13.11.2014, 14:18
Obávám se, že toho nedosáhnete, viz link s poznámkou. Diesel je bohužel velmi zjednodušený jazyk.Doporučuju to rozdělit na dva programky. Však jako uživatel vždy vidíte, jestli něco vybraného máte, či ne. Když ano, pak spustíte např. CTRL+NUM1, jinak CTRL+SHIFT+NUM1. Ale osobně bych si udělal programky jen na udělání nějaké hladiny aktuální a pak to na vybraných objektech už měnil _laycur.Něco pro inspiraci:http://members.iinet.net.au/~bigbyte/examples.htmPozn. Váš požadavek řešili tady na foru. Ale příspěvek označený Solved! podle mě problém neřeší.https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/diesel-macro-select/td-p/4695181