Adja meg a MODEMACRO rendszerváltozó értékét az AutoLISP használatával.
Az AutoLISP segítségével egy karakterláncot rendelhet a MODEMACRO rendszerváltozóhoz, és az eredményeket az állapotsoron jelenítheti meg. A végső MODEMACRO karakterláncot a rövidebb összetevőkből az AutoLISP strcat függvényével kell összeállítani.
(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)" ")" ) ) )
A következő példa a S::STARTUP funkció használatával betölti a mode1.lsp nevű AutoLISP fájlt, majd egy karakterláncot rendel a MODEMACRO rendszerváltozóhoz.
;;; 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
Az AutoLISP fájl mode1.lsp betöltése után a MODEMACRO rendszerváltozó információt jelenít meg az állapotsorban. A megjelenített szövegben az L: karakter után a fólianév, a rajznév és az elérési útvonal első nyolc karaktere, valamint az éppen aktív módnevek kezdőbetűi szerepelnek. A rajz nevének helye a fólianév hosszúságától függetlenül állandó.
;;; 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)" ) )
A DIESEL-kifejezéseket AutoLISP-rutinok is értékelhetik ki az AutoLISP menucmd függvény használatával.