Vytváření příkazů, které používají jazyk AutoLISP, je pokročilejším způsobem využití funkcí uživatelských úprav aplikace.
Pomocí proměnných a výrazů jazyka AutoLISP je možné vytvořit makra provádějící složité úkoly. Když aplikace načte soubor CUI/CUIx, načte také soubor MNL se stejným názvem a ve stejném umístění. Umístění kódu jazyka AutoLISP do souboru MNL je efektivní způsob načtení vlastních příkazů, které je možné použít v makru.
Tento příklad se skládá ze tří příkazových maker, která se používají k vložení bloku.
Makro příkazu zobrazí výzvu k zadání šířky okna.
^C^C^P(setq WINWID (getreal "\nEnter window width: ")) ^P
Makro příkazu zobrazí výzvu k zadání tloušťky stěny.
^C^C^P(setq WALLTHK (getreal "\nEnter wall thickness: ")) ^P
Makro příkazu vloží blok s názvem „window“ (okno) a vyzve k zadání bodu vložení a otočení.
^C^C_INSERT window XScale !WINWID YScale !WALLTHK
Osa X bloku se vztahuje na aktuální šířku okna a osa Y na aktuální tloušťku stěny.
Tento příklad obsahuje dvě příkazová makra, která zvýší nebo sníží aktuální hodnotu systémové proměnné GRIPSIZE.
Makro příkazu zvýší hodnotu systémové proměnné GRIPSIZE o 1.
^P(setvar "gripsize"(1+ (getvar "gripsize")))(redraw)(princ)
Makro příkazu sníží hodnotu systémové proměnné GRIPSIZE o 1.
^P(setvar "gripsize"(1- (getvar "gripsize")))(redraw)(princ)
Kontrola validity u těchto maker zajišťuje, že u systémové proměnné GRIPSIZE není možné použít hodnotu menší než 0 a větší než 255.
V následujícím příkladu dojde k vyzvání uživatele k zadání dvou bodů a poté se nakreslí obdélníková křivka, přičemž zadané body se použijí jako rohy.
^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
Pomocí následující syntaxe je možné programově spustit makro u položky rozevírací nabídky:
(menucmd "Gcustomizationgroup.element_ID=|")
Předchozí syntaxe funguje pouze v případě, že je položka nabídky součástí nabídky umístěné na panelu nabídek programu a je dostupná k použití.