Makra polecenia mogą zawierać polecenia, znaki specjalne, wyrażenia języka DIESEL lub kod języka AutoLISP.
Można zdefiniować, a następnie przypisać makro do polecenia, modyfikując właściwość Makro polecenia w edytorze Dostosuj interfejs użytkownika (system Windows) lub oknie dialogowym Adaptacja (system Mac OS).
Makro definiuje operację, która powinna zostać wykonana, gdy używany jest element interfejsu użytkownika. Makro może być tak proste jak polecenie (takie jak okrąg) i może zawierać znaki specjalne (takie jak ^C^C).
Na przykład makro ^C^C_.okrąg\1 rysuje okrąg o promieniu równym jednej jednostce. Komponenty, które definiują to makro, są objaśnione w poniższej tabeli.
Komponenty makra OKRĄG |
||
---|---|---|
Komponent |
Rodzaj komponentu |
Wynik |
^C^C |
Specjalny ciąg znaków sterujących |
Ciąg o działaniu zbliżonym do dwukrotnego naciśnięcia klawisza Esc. |
_ |
Specjalny znak sterujący |
Wskazuje, że następne polecenie powinno użyć globalnej nazwy polecenia, a nie zlokalizowanej nazwy polecenia. |
. |
Specjalny znak sterujący |
Wskazuje, że następne polecenie powinno użyć standardowej definicji polecenia, a nie przedefiniowanego polecenia, które może istnieć. |
OKRĄG |
Nazwa polecenia |
Uruchamia polecenie OKRĄG. |
Znak specjalny |
Użycie odstępu działa jak naciśnięcie klawisza spacji przy jednoczesnym używaniu polecenia. |
|
\ |
Specjalny znak sterujący |
Tworzy przerwę na wprowadzenie danych przez użytkownika; w tym przykładzie jest to przerwa na określenie punktu środkowego okręgu. |
1 |
Wartość wejściowa |
Odpowiedź na monit o promień okręgu; w tym przykładzie jest to jednostka o wartości 1. |
Po kliknięciu przycisku w interfejsie użytkownika przypisane do tego przycisku makro jest wykonywane w bieżącym kontekście programu. Oznacza to, że makro spróbuje odpowiedzieć na bieżący monit. Aby mieć pewność, że podczas wykonywania makra żadne polecenie nie jest aktywne, makro należy poprzedzić sekwencją polecenia ^C. Wprawdzie pojedyncze naciśnięcie klawiszy ^C wystarczy, aby anulować większość poleceń, jednak aby wrócić do wiersza polecenia z polecenia wymiarowania, należy nacisnąć klawisze ^C^C, a naciśnięcie klawiszy ^C^C^C jest niezbędne w zależności od bieżących opcji polecenia -WARSTWA. Naciśnięcie ^C^C anuluje większość sekwencji poleceń i dlatego jest zalecaną sekwencją.
Każdy znak w makrze jest istotny, nawet spacja. W przypadku wstawienia odstępu na końcu makra traktowany jest on jak naciśnięcie klawisza spacji lub klawisza Enter w celu zakończenia polecenia.
Polecenia, które są częścią programu AutoCAD lub produktów opartych na programie AutoCAD, powinny być poprzedzone znakiem kropki (.). Znak kropki umożliwia korzystanie z poleceń standardowych, nawet jeśli ich definicje zostały usunięte za pomocą polecenia UNDEF. Ten środek ostrożności zapewnia przewidywalność makra podczas używania na innych komputerach korzystających z tego samego pliku adaptacji (CUIx).
Podczas pierwszego tworzenia makra użytkownik zazwyczaj korzysta z nazw poleceń i wartości opcji w języku produktu, który jest mu znany. Każde polecenie i opcja ma lokalną i globalną nazwę umożliwiającą używanie makr w innych językach obsługiwanych przez produkt. Obsługa języków innych niż angielski nie wymaga znacznego dodatkowego nakładu pracy użytkownika. Wystarczy poprzedzić każde polecenie lub opcję znakiem podkreślenia (_). Znak podkreślenia sygnalizuje programowi, że nazwę polecenia lub wartość opcji należy przed ich wykonaniem przetłumaczyć na lokalny język produktu.
Opcja trybu wyboru pojedynczego obiektu anuluje standardowe powtarzanie monitu Wybierz obiekty w poleceniach edycji. Po wskazaniu obiektu i odpowiedzi na monity polecenie zostaje zakończone.
Ilustruje to następujący przykład:
^C^C._erase single
To makro kończy bieżące polecenie i uruchamia polecenie WYMAŻ w trybie wyboru pojedynczego obiektu. Gdy makro zostanie uruchomione, można wybrać pojedynczy obiekt lub kliknąć pusty obszar na rysunku, a następnie określić wybór okna/okna przecinającego. Wszystkie obiekty wybrane za pomocą tych metod zostaną usunięte.
Po utworzeniu makra zalecane jest jego kilkakrotne użycie przed przejściem do innego polecenia. W makrze użyj gwiazdki wiodącej (*), aby wskazać, że polecenie w makrze powinno być powtarzane aż do naciśnięcia klawisza Esc, lub uruchom inne makro rozpoczynające się od znaków ^C.
Makra w następujących przykładach powtarzają polecenia:
*^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
Niektóre makra należy zakończyć w określony sposób. Polecenie TEKST wymaga na przykład naciśnięcia klawisza Enter zamiast klawisza spacji, aby zakończyć działanie polecenia, a niektóre polecenia wymagają więcej niż jednego naciśnięcia klawisza spacji lub klawisza Enter do zakończenia ich działania.
Ten problem można rozwiązać dzięki dwóm konwencjom.
Porównanie makr:
ucs ucs ;
W pierwszym przykładzie uruchamiane jest polecenie LUW, a ponieważ wiersz kończy się spacją, symulowane jest naciśnięcie klawisza spacji. Wyświetlany jest następujący monit:
Określ początek LUW lub [Powierzchnia/nAZwana/OBiekt/popRzedni/Widok/Globalny/X/Y/Z/Ośz] <Globalny>:
W drugim przykładzie uruchamiane jest polecenie LUW, symulowane jest naciśnięcie klawisza spacji, a następnie symulowane jest naciśnięcie klawisza Enter akceptujące wartość domyślną (Globalny).
Znaki w makrach są wyświetlane w wierszu polecenia tak, jakby zostały wpisane przy użyciu klawiatury. Takie powielenie wyświetlania to tzw. echo. Wyświetlanie „echa” makra można wyłączyć za pomocą zmiennej systemowej MENUECHO. Jeśli echa i monity z danych wprowadzonych do elementu zostaną włączone, ^P przed nazwą makra wyłączy je tymczasowo. Można również użyć znaków ^Q w makrze, aby pominąć wyświetlanie wszystkich monitów i danych z historii wiersza polecenia.