Řetězce makra příkazu slouží k zadání pokynů, které příkazy a systémové proměnné má aplikace AutoCAD provést, společně s jakýmkoliv očekávaným vstupem povoleným na příkazovém řádku. Do řetězce makra příkazu je možné zahrnout také speciální znaky, výrazy jazyka DIESEL a programový kód jazyka AutoLISP.
Můžete vytvořit vlastní řetězce maker příkazů, které usnadňují:
Řetězce makra příkaz je možné definovat a upravovat pomocí následujících položek:
Řetězec makra příkazu je definován jako řada příkazů a očekávaných možností a hodnot se specializovanou syntaxí, podobá se však vstupu zadanému na příkazovém řádku aplikace AutoCAD. Při interakci s uživatelským rozhraním programu, například při kliknutí na tlačítko na pásu karet nebo na položku v místní nabídce, provádíte řetězec makra příkazu. Syntaxe makra příkazu může být natolik jednoduchá, že obsahuje jen název jednoho příkazu (například KRUŽNICE), případně i složitější se zahrnutím speciálních znaků (například ^C^C_.kružnice \1). .
Následující seznam uvádí nejčastěji používané speciální znaky v makrech příkazů:
Zde vidíte, jak pomocí příkazového řádku aplikace AutoCAD spustit příkaz KRUŽNICE a nakreslit kružnici s poloměrem 5 a jak stejný vstup vypadá jako řetězec makra příkazu:
Sekvence příkazového řádku | Ekvivalent syntaxe řetězce makra |
---|---|
Command: CIRCLE Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: Specify radius of circle or [Diameter] <2.5000>: 5 |
CIRCLE; \ 5; |
Konečný řetězec makra příkazu může vypadat takto:
![]() |
|
Předchozí řetězec makra mohl být také zapsán následovně bez středníků, protože mezera v makru je totéž jako stisknutí mezerníku na příkazovém řádku aplikace AutoCAD:
^C^C_.circle \5
Zde je další příklad použití příkazu MOCORO ke zkopírování a následnému otočení kopírovaných objektů na příkazovém řádku aplikace AutoCAD a způsobu, jakým by posloupnost příkazů vypadala jako řetězec makra příkazu:
Sekvence příkazového řádku | Ekvivalent syntaxe řetězce makra |
---|---|
Command: MOCORO Select objects: Specify opposite corner: Select objects: Base point: [Move/Copy/Rotate/Scale/Base/Undo]<eXit>: C Second point of displacement/Undo/<eXit>: Second point of displacement/Undo/<eXit>: [Move/Copy/Rotate/Scale/Base/Undo]<eXit>: R Second Point or Rotation angle: [Move/Copy/Rotate/Scale/Base/Undo]<eXit>: |
MOCORO; \ \ ; \ C; \ ; R; \ ; |
Konečný řetězec makra příkazu může vypadat takto:
![]() |
|
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.
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).
V makru má každý znak důležitý význam, včetně mezer. Mezera je interpretována jako stisknutí mezerníku (dojde k vložení znaku mezery v zadaném vstupu) nebo jako stisknutí klávesy Enter. Výsledek je stejný, jako kdybyste na příkazovém řádku použili příkaz nebo systémovou proměnnou.
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.