Příkazová makra mohou obsahovat příkazy, speciální znaky, výrazy jazyka DIESEL nebo kód jazyka AutoLISP.
Makro můžete definovat a následně přiřadit k příkazu úpravou vlastnosti Makro daného příkazu v editoru Upravit uživatelské rozhraní (Windows) nebo dialogu Přizpůsobit (Mac OS).
Makro definuje akci, která se má provést, když uživatel použije prvek uživatelského rozhraní. Makro může být velmi jednoduché a obsahovat jen příkaz, například kružnice. Dále může obsahovat speciální znaky, například ^C^C.
Například makro ^C^C_.circle \1 nakreslí kružnici o poloměru 1 jednotky. Komponenty, které definují toto makro, jsou vysvětleny v následující tabulce.
Komponenty makra KRUŽNICE |
||
---|---|---|
Komponenta |
Typ komponenty |
Výsledek |
^C^C |
Posloupnost speciálních řídicích znaků |
Posloupnost, která je podobná dvěma stisknutím klávesy Esc |
_ |
Speciální řídicí znak |
Označuje, že následující příkaz by měl použít svůj globální (nikoli lokalizovaný) název. |
. |
Speciální řídicí znak |
Označuje, že následující příkaz by měl použít svou standardní definici, nikoli svou případně změněnou definici. |
KRUŽNICE |
Název příkazu |
Spustí příkaz KRUŽNICE. |
Speciální znak |
Mezera je jako stisknutí mezerníku při použití příkazu. |
|
\ |
Speciální řídicí znak |
Vytvoří pauzu pro uživatelské zadání. V tomto příkladu jde o pauzu pro zadání středového bodu kružnice. |
1 |
Vstupní hodnota |
Odpověď na výzvu k zadání poloměru kružnice; v tomto příkladu je to jednotka 1. |
Při kliknutí na tlačítko v uživatelském rozhraní se k němu přiřazené makro provede v aktuálním kontextu programu. To znamená, že makro se pokusí o poskytnutí odpovědí na aktuální výzvu. Chcete-li mít jistotu, že při spuštění makra nebude aktivní žádný příkaz, vložte před makro posloupnost příkazů ^C. Jeden znak ^C sice ruší většinu příkazů, ale k návratu na příkazový řádek z příkazu kótování jsou vyžadovány znaky ^C^C a v závislosti na aktuální možnosti příkazu HLADINA je nutné použít znaky ^C^C^C. Znaky ^C^C zruší většinu posloupností příkazů a jedná se o doporučenou posloupnost, kterou je vhodné použít.
V makru má každý znak důležitý význam, včetně mezer. Pokud vložíte mezeru na konec makra, je interpretována stejně, jako kdybyste příkaz dokončili stisknutím mezerníku nebo klávesy Enter.
Příkazy, které jsou součástí aplikace AutoCAD nebo produktů na této aplikaci založených, by měly mít tečku (.) jako předponu. Znak tečky umožňuje použití standardního příkazu, i když byla jeho definice zakázána příkazem ZAKAŽ. Díky tomuto opatření se makro stane předvídatelným při použití na jiných počítačích, které sdílejí stejný soubor uživatelských úprav (CUI/CUIx).
První makro obvykle vytváříte pomocí názvů příkazů a hodnot možností v tom programovacím jazyku produktu, který znáte. Každý příkaz a možnost má místní a globální název, který umožňuje použití maker jinými jazyky produktu. Podpora dalších jazyků mimo angličtiny není nijak obtížná, stačí před každý příkaz nebo možnost přidat znak podtržítka (_). Znak podtržítka dává programu na vědomí, že název příkazu nebo hodnota možnosti by měla být před provedením přeložena do místního jazyka produktu.
Režim výběru jednoho objektu ruší opakování výzvy Vyberte objekty v editačních příkazech. Příkaz skončí až vyberete jeden objekt a zareagujete na ostatní výzvy.
Prohlédněte si makro v následujícím příkladu:
^C^C._erase single
Toto makro ukončí aktuální příkaz a spustí příkaz VYMAŽ v režimu výběru jednoho objektu. Po spuštění makra můžete buď vybrat jeden objekt, nebo kliknout do prázdné oblasti ve výkresu a určit výběr oknem/křížením. Veškeré objekty vybrané pomocí těchto metod budou vymazány.
Vytvořené makro můžete před přechodem na jiný příkaz několikrát opakovat. Vložte do makra úvodní hvězdičku (*), která indikuje, že příkaz v makru by se měl opakovat, dokud nestisknete klávesu ESC nebo nespustíte jiné makro začínající znaky ^C.
Makra v následujících příkladech opakují příkazy:
*^C^C._move Single *^C^C._copy Single *^C^C._erase Single *^C^C._stretch Single Crossing *^C^C._rotate Single *^C^C._scale Single
Některá makra vyžadují speciální ukončovací členy. K ukončení příkazu TEXT je například nutné stisknout klávesu Enter, nikoli mezerník, a některé příkazy se ukončí až po více než jednom stisknutí mezerníku nebo klávesy Enter.
Tyto potíže řeší dvě zvláštní konvence.
Porovnejte následující makra:
ucs ucs ;
První příklad spustí příkaz USS, a protože řádek končí mezerou, simuluje se stisknutí mezerníku. Je zobrazena následující výzva:
Určete počátek USS nebo [Plocha/pojmenNovaný/OBjekt/PŘedchozí/poHled/Globální/X/Y/Z/Zosa] <Globální>:
Druhý příklad spustí příkaz USS, simuluje stisknutí mezerníku a následně se simuluje stisknutí klávesy Enter, čímž se přijme výchozí hodnota (Globální).
Znaky v makru se zobrazují na příkazovém řádku, jako byste tyto znaky psali na klávesnici. Toto duplicitní zobrazení se nazývá odezva. Odezvu makra lze potlačit pomocí systémové proměnné MENUECHO. Pokud jsou odezvy a výzvy pocházející ze zadání položky zapnuty, lze je řídicím znakem ^P před makrem dočasně vypnout. Můžete také v makru použít řídicí znak ^Q, který potlačí zobrazení všech výzev a vstupu z historie příkazového řádku.