建立使用 AutoLISP 的指令是另一種更進階的程式自訂功能使用方式。
您可以使用 AutoLISP 變數與表示式來建立可執行複雜工作的巨集。當程式載入 CUI/CUIx 檔時,它還會載入具有相同名稱,並位於相同位置的 MNL 檔。將 AutoLISP 程式碼放置在 MNL 檔案能有效率地載入可用於巨集的自訂指令。
此範例是由三個用來插入圖塊的指令巨集所組成。
窗戶寬度的指令巨集提示。
^C^C^P(setq WINWID (getreal "\nEnter window width: ")) ^P
牆厚度的指令巨集提示。
^C^C^P(setq WALLTHK (getreal "\nEnter wall thickness: ")) ^P
指令巨集插入稱為「窗戶」的圖塊,並提示您指定插入點與旋轉。
^C^C_INSERT window XScale !WINWID YScale !WALLTHK
圖塊的 X 軸是目前窗戶寬度,而 Y 軸是目前牆的厚度。
此範例中包含兩個指令巨集,其會增加或減少 GRIPSIZE 系統變數目前的值。
指令巨集會使 GRIPSIZE 系統變數的值增加 1。
^P(setvar "gripsize"(1+ (getvar "gripsize")))(redraw)(princ)
指令巨集會使 GRIPSIZE 系統變數的值減少 1。
^P(setvar "gripsize"(1- (getvar "gripsize")))(redraw)(princ)
若要將有效性檢查加入這些指令巨集中,系統變數 GRIPSIZE 不能使用小於 0 且大於 255 的值。
以下範例可提示輸入兩點,並以指定的點做為角點,繪製矩形聚合線。
^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
使用以下語法,您可以程式化執行下拉式功能表項目的巨集:
(menucmd "Gcustomizationgroup.element_ID=|")
僅在該功能表項目為程式功能表列上的部分功能表且可使用時,才能使用先前的語法。