Informace o řetězcích maker příkazů

Ř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:

Základy řetězců maker příkazů

Ř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_.circle \1).

Následující seznam uvádí nejčastěji používané speciální znaky v makrech příkazů:

Poznámka: Jazyk AutoLISP není dostupný v aplikaci AutoCAD LT pro systém Mac OS a jazyk ObjectARX není k dispozici v aplikaci AutoCAD LT pro systém Windows nebo Mac OS.

Zde vidíte, jak je možné 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:



Položka Syntaxe Popis
1 ^C^C Výraz ^C^C znamená, že před spuštěním makra je třeba dvakrát stisknout klávesu Esc.
2 ._CIRCLE; Spustí příkaz KRUŽNICE nezávisle na aktuálním jazykovém balíčku aplikace AutoCAD
3 \ Vyzve k zadání středu, ve kterém má být kružnice nakreslena
4 5; Určí poloměr kružnice a ukončí příkaz KRUŽNICE.

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
Poznámka: Použití středníků v řetězci makra usnadňuje čtení a zjišťování kde má dojít ke stisknutí klávesy Enter, protože mezera může označovat skutečnou mezeru ve vstupu zadaném v předchozím příkazu nebo systémové proměnné.

Zde je další příklad použití příkazu MOCORO ke zkopírování a následnému otočení kopírovaných objektů pomocí příkazového řádku aplikace AutoCAD a způsobu, jakým by posloupnost příkazů byla zadána 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:



Položka Syntaxe Popis
1 ^C^C Výraz ^C^C znamená, že před spuštěním makra je třeba dvakrát stisknout klávesu Esc.
2 ._MOCORO; Spustí příkaz MOCORO nezávisle na aktuálním jazykovém balíčku aplikace AutoCAD.
3 \\; Zobrazí výzvu k výběru objektů – dvě zpětná lomítka zde umožňují určit dva body pro výběr oknem nebo křížením.
4 \ Zobrazí výzvu k zadání základního bodu, který se má použít ke kopírování vybraných objektů.
5 _C; Použije možnost Kopírovat.
6 \; Zobrazí výzvu k zadání druhého bodu posunutí.
7 _R; Použije možnost Otočit.
8 \ Zobrazí výzvu k zadání úhlu otočení.
9 ; Ukončí příkaz MOCORO.

Zrušení aktivního příkazu

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 se makro pokusí o předání odezev 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. Ačkoliv jeden výraz ^C ruší většinu příkazů, u příkazů kótování je k návratu do příkazového řádku požadována posloupnost ^C^C a u příkazu -HLADINA je u některých možností požadována posloupnost ^C^C^C. Posloupnost ^C^C zajistí zrušení většiny posloupností příkazů a doporučuje se využití právě této posloupnosti.

Použití standardních příkazů v makrech

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).

Poznámka: Počínaje aplikací AutoCAD LT 2024 je možné zakázat definice příkazů.

Ověření znaků v makru

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.

Poznámka: Pokud vložíte mezeru na konec makra, je interpretována stejně jako dokončení příkazu stisknutím klávesy Enter.

Mezinárodní podpora maker

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.

Použití režimu výběru jednoho objektu

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.

Opakování příkazů v makrech

Jakmile vytvoříte makro, možná bude užitečné je několikrát zopakovat, než přejdete k jinému příkazu. Vložte na začátek makra hvězdičku (*), která indikuje, že příkaz v makru by se měl opakovat, dokud nestisknete klávesu Esc nebo dokud nespustíte jiné makro začínající znaky výrazem ^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 
Poznámka: Tuto funkci není možné použít k výběru možností ani ke spouštění maker v obrázkových nabídkách.

Ukončení maker

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 vzhledem k tomu, ž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í).

Potlačení odezev a výzev v makrech

Znaky v makru se zobrazují na příkazovém řádku, jako byste tyto znaky psali na klávesnici. Toto duplicitní zobrazení se nazývá aktivní zobrazení. Aktivní zobrazení makra je možné potlačit pomocí systémové proměnné MENUECHO. Pokud jsou aktivní zobrazení a výzvy pocházející ze vstupu položky zapnuty, je možné je výrazem ^P před makrem dočasně vypnout. Také je možné v makru použít výraz ^Q, který potlačí zobrazení všech výzev a vstupu z historie příkazového řádku.