La creazione di comandi in AutoLISP è un metodo più avanzato per l'utilizzo della funzione di personalizzazione del programma.
È possibile utilizzare espressioni e variabili AutoLISP per creare macro per l'esecuzione di attività complesse. Quando il programma carica un file CUI/CUIx, viene contemporaneamente caricato anche un file MNL con lo stesso nome e nella stessa posizione. L'inserimento del codice AutoLISP in un file MNL rappresenta un metodo efficace per caricare i comandi personalizzati che è possibile utilizzare in una macro.
Questo esempio è costituito da tre macro di comandi utilizzate per l'inserimento di un blocco.
La macro di comando richiede di specificare la larghezza della finestra.
^C^C^P(setq WINWID (getreal "\nEnter window width: ")) ^P
La macro di comando richiede di specificare lo spessore della parete.
^C^C^P(setq WALLTHK (getreal "\nEnter wall thickness: ")) ^P
La macro di comando inserisce un blocco denominato "finestra" e richiede di specificare il punto di inserimento e la rotazione.
^C^C_INSERT window XScale !WINWID YScale !WALLTHK
L'asse X del blocco corrisponde alla larghezza della finestra corrente e l'asse Y corrisponde allo spessore della parete corrente.
Questo esempio contiene due macro di comandi che consentono di aumentare o di ridurre il valore corrente della variabile di sistema GRIPSIZE.
La macro di comando aumenta di 1 il valore della variabile di sistema GRIPSIZE.
^P(setvar "gripsize"(1+ (getvar "gripsize")))(redraw)(princ)
La macro di comando riduce di 1 il valore della variabile di sistema GRIPSIZE.
^P(setvar "gripsize"(1- (getvar "gripsize")))(redraw)(princ)
Per aggiungere il controllo della validità a tali macro di comandi, non è possibile utilizzare valori inferiori a 0 e superiori a 255 per la variabile di sistema GRIPSIZE.
Nell'esempio seguente viene richiesto di specificare due punti e viene disegnata una polilinea rettangolare con i punti specificati come angoli.
^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
Utilizzando la seguente sintassi è possibile eseguire a livello di programma una macro di una voce di un menu a discesa:
(menucmd "Gcustomizationgroup.element_ID=|")
La sintassi precedente funziona solo se la voce fa parte di un menu presente nella barra dei menu del programma ed è disponibile per l'uso.