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