AutoLISP 通過 Visual LISP (VLISP) 進一步得到增強,VLISP 提供了一個集成開發環境 (IDE),其中包含編譯器、調試器和其他提高生產效率的開發工具。VLISP 添加了更多的功能,并對語言進行了擴展以與使用 ActiveX 的對象進行交互。VLISP 也允許 AutoLISP 通過對象反應器對事件進行響應。
6 n# `6 ?! D: ?4 c/ T, L5 y/ [% z( {' \) B; p; G- k1 K s5 b# K
與 ObjectARX 或 VBA 不同的是,在多文檔設計環境 (MDE) 中打開的每個文檔都有自己的 Visual LISP 名稱空間和環境。名稱空間是一個隔離環境,用于避免特定于某一文檔的 AutoLISP 程序與另一個文檔中的程序在符號或變量名和值上發生沖突。例如,如下代碼行為不同文檔中的符號 a 設置不同的值。
$ M% l6 r V' S ?' V; a1 S4 g: }% T! R
(setq a (getvar "DWGNAME")) 9 Y$ `' t( q" Q* [5 Z- s& M
Visual LISP 提供了從一個名稱空間向另一個名稱空間中加載符號和變量的機制。可以在幫助系統中的《AutoLISP Developer's Guide》中找到有關名稱空間的詳細信息。要顯示“開發人員幫助”,請在“幫助”按鈕右側的“信息中心”工具欄上單擊下拉箭頭。從該菜單中,依次單擊“其他資源”“開發人員幫助”。
. o! b! I* a' |: J2 z$ Z
$ Z( F$ @) N4 j# y; K# @AutoLISP 應用程序或程序可以通過多種方式與 AutoCAD 交互。這些程序能夠提示用戶輸入、直接訪問內置 AutoCAD 命令,以及修改或創建圖形數據庫中的對象。通過創建 AutoLISP 程序,可以向 AutoCAD 添加專用命令。實際上,某些標準 AutoCAD 命令是 AutoLISP 應用程序。 # G5 F0 P, ]0 E' m8 G
1 M: G7 z0 K6 s7 K5 T$ vVisual LISP 為 AutoLISP 應用程序提供三種文件格式選項:
5 }5 g: h% F! F! O) z) @: r; ]
" a* E7 m2 h3 i% w p; D. B讀取 LSP 文件 (.lsp) — 包含 AutoLISP 程序代碼的 ASCII 文本文件。
$ N* N0 [* J% D. u8 C* m讀取 FAS 文件 (.fas) — 單個 LSP 程序文件的二進制編譯版本。: ?( h+ R3 N- d$ P% F% i/ e2 D
讀取 VLX 文件 (.vlx) — 一個或多個 LSP 文件和/或對話框控制語言 (DCL) 文件的編譯集。
( f3 D$ W! Z* \, V E' J3 I, {/ k( z注意名稱相似的 AutoLISP 應用程序文件的加載由它們的編輯時間決定。除非指定完整的文件名(包括文件擴展名),否則將加載最近編輯過的 LSP、FAS 或 VLX 文件。 ' q0 ]3 n/ X1 I
由于 AutoCAD 能夠直接讀取 AutoLISP 代碼,因此無需編譯。Visual LISP 提供了一個集成開發環境,用戶可以選擇進行試驗:在命令提示下輸入代碼后可立即看到結果。這使 AutoLISP 語言容易試驗,而不管用戶的編程經驗如何。
1 k2 j# z! \" U) t' L- ?) c, G
3 y8 r2 q5 M: r即使用戶對編寫 AutoLISP 應用程序不感興趣,AutoCAD 軟件包中也包含許多有用的程序。程序也可以作為共享軟件或從第三方開發商處獲取。了解如何加載和使用這些程序有助于提高生產率。6 a/ M7 t8 z5 C% Y7 W
+ o$ c/ f* I. `0 p. F& T注意通過 AutoLISP command 函數輸入命令時,PICKADD 和 PICKAUTO 系統變量的設置分別假定為 1 和 0。這保留了與早期 AutoCAD 版本的兼容性,并使自定義操作更加簡單(因為用戶不必檢查這些變量的設置)。+ Q6 m' I* R( n8 F" ^( j" i
有關 AutoLISP 編程的信息,請參見《AutoLISP Developer's Guide》;有關 AutoLISP 和 Visual LISP 函數的信息,請參見幫助系統中的《AutoLISP Reference》。要顯示“開發人員幫助”,請在“幫助”按鈕右側的“信息中心”工具欄上單擊下拉箭頭。從該菜單中,依次單擊“其他資源”“開發人員幫助”。AutoLISP 程序可以在應用程序中使用對話框。僅《AutoLISP Developer's Guide》對可編程對話框進行了描述。 |