Nastavení hodnot proměnné MODEMACRO pomocí jazyka AutoLISP.
Pomocí jazyka AutoLISP lze k systémové proměnné MODEMACRO přiřadit řetězec a výsledky zobrazit na stavovém řádku. K sestavení úplného řetězce proměnné MODEMACRO z kratších řetězců použijte funkci strcat jazyka AutoLISP.
(defun C:ACADMODE() (setvar "modemacro" (strcat "Layer $(substr,$(getvar,clayer),1,8)" "$(if,$(getvar,orthomode), Ortho)" "$(if,$(getvar,snapmode), Snap)" "$(if,$(=,$(getvar,tilemode),0)," "$(if,$(=,$(getvar,cvport),1), P)" ")" ) ) )
V následující ukázce je pomocí funkce S::STARTUP načten soubor jazyka AutoLISP s názvem mode1.lsp a k systémové proměnné MODEMACRO je přiřazen řetězec.
;;; S::STARTUP loads the file MODE1.LSP which defines a MODEMACRO string (defun S::STARTUP ( ) (load "mode1") (princ) ) ;;; Additional AutoLISP files can also be defined or loaded here
Jakmile je soubor mode1.lsp jazyka AutoLISP načten, nastaví systémovou proměnnou MODEMACRO tak, aby se informace zobrazily na stavovém řádku. Zobrazený text začíná řetězcem L:, za ním následuje prvních osm znaků názvu aktuální hladiny, název výkresu a část cesty a potom první písmeno názvu každého aktuálně aktivního režimu. Umístění názvu výkresu je pevné, bez ohledu na délku názvu hladiny.
;;; MODE1.LSP (setvar "modemacro" (strcat "L:$(substr,$(getvar,clayer),1,30)" "$(substr, ,1,$(-,30,$(strlen,$(getvar,clayer)))) " ;; ^^^^^^^^ Note the 8 spaces here "<.." "$(if,$(eq,$(getvar,dwgname),UNNAMED),UNNAMED," "$(substr,$(getvar,dwgname)," "$(if,$(>,$(strlen,$(getvar,dwgprefix)),29)," "$(-,$(strlen,$(getvar,dwgprefix)),29),1" ")," "$(strlen,$(getvar,dwgname))" ")" ")" ">" "$(if,$(getvar,orthomode), O, )" "$(if,$(getvar,snapmode), S, )" "$(if,$(and," "$(=,$(getvar,tilemode),0),$(=,$(getvar,cvport),1)),P)" ) )
Pomocí procedur jazyka AutoLISP lze také vyhodnotit výrazy jazyka DIESEL, a to použitím funkce menucmd jazyka AutoLISP.