Sie können Befehle erstellen, die AutoLISP verwenden. Dies ist eine sehr komplexe und anspruchsvolle Art der Verwendung der Anpassungsfunktion des Programms.
Mithilfe von AutoLISP-Variablen und -Ausdrücken können Sie Makros erstellen, die komplexe Aufgaben ausführen. Wenn das Programm eine CUI-/CUIx-Datei lädt, wird zusätzlich eine MNL-Datei mit demselben Namen und demselben Speicherort geladen. Das Platzieren von AutoLISP-Code in einer MNL-Datei ist eine effiziente Methode zum Laden benutzerdefinierter Befehle, die in Makros verwendet werden können.
Dieses Beispiel besteht aus drei Befehlsmakros, die verwendet werden, um einen Block einzufügen.
Ein Befehlsmakro fordert zur Eingabe der Fensterbreite auf.
^C^C^P(setq WINWID (getreal "\nEnter window width: ")) ^P
Ein Befehlsmakro fordert zur Eingabe der Wandstärke auf.
^C^C^P(setq WALLTHK (getreal "\nEnter wall thickness: ")) ^P
Ein Befehlsmakro fügt einen Block mit dem Namen "window" hinzu und fordert Sie auf, den Einfügepunkt und die Drehung einzugeben.
^C^C_INSERT window XScale !WINWID YScale !WALLTHK
Die X-Achse des Blocks wird auf die aktuelle Fensterbreite und die Y-Achse auf die aktuelle Wandstärke gesetzt.
Dieses Beispiel enthält zwei Befehlsmakros, die den aktuellen Wert der Systemvariablen GRIPSIZE vergrößern oder verkleinern.
Ein Befehlsmakro erhöht den Wert der Systemvariablen GRIPSIZE um 1.
^P(setvar "gripsize"(1+ (getvar "gripsize")))(redraw)(princ)
Ein Befehlsmakro verringert den Wert der Systemvariablen GRIPSIZE um 1.
^P(setvar "gripsize"(1- (getvar "gripsize")))(redraw)(princ)
Um die Gültigkeitsprüfung dieser Befehlsmakros zu ermöglichen, können keine Werte unter 0 und über 255 für die Systemvariable GRIPSIZE verwendet werden.
Das folgende Beispiel fordert zur Eingabe von zwei Punkten auf und zeichnet eine rechteckige Polylinie mit den angegebenen Punkten als Ecken.
^P(setq a (getpoint "Enter first corner: "));\+ (setq b (getpoint "Enter opposite corner: "));\+ pline !a (list (car a)(cadr b)) !b (list (car b)(cadr a)) c;^P
Mit der folgenden Syntax können Sie das Makro eines Pulldown-Menüelements im Programm ausführen:
(menucmd "Gcustomizationgroup.element_ID=|")
Die oben genannte Syntax funktioniert nur dann, wenn das Menüelement Teil eines Menüs ist, das sich in der Menüleiste des Programms befindet und verfügbar ist.