AutoLISP 通过 Visual LISP (VLISP) 进一步得到增强,VLISP 提供了一个集成开发环境 (IDE),其中包含编译器、调试器和其他提高生产效率的开发工具。VLISP 添加了更多的功能,并对语言进行了扩展以与使用 ActiveX 的对象进行交互。VLISP 也允许 AutoLISP 通过对象反应器对事件进行响应。, j1 u, C2 g1 j" K2 R
/ \$ ~; R, u2 F
与 ObjectARX 或 VBA 不同的是,在多文档设计环境 (MDE) 中打开的每个文档都有自己的 Visual LISP 名称空间和环境。名称空间是一个隔离环境,用于避免特定于某一文档的 AutoLISP 程序与另一个文档中的程序在符号或变量名和值上发生冲突。例如,如下代码行为不同文档中的符号 a 设置不同的值。6 V( C' y- J( c( X4 E# a& t1 N
# a4 k6 m( O" I2 x$ _% g
(setq a (getvar "DWGNAME"))
2 V$ c+ d) E3 M$ A, a! cVisual LISP 提供了从一个名称空间向另一个名称空间中加载符号和变量的机制。可以在帮助系统中的《AutoLISP Developer's Guide》中找到有关名称空间的详细信息。要显示“开发人员帮助”,请在“帮助”按钮右侧的“信息中心”工具栏上单击下拉箭头。从该菜单中,依次单击“其他资源”“开发人员帮助”。8 f% b5 y2 Z& Q2 s: O
+ s e( m, ^) [* ?
AutoLISP 应用程序或程序可以通过多种方式与 AutoCAD 交互。这些程序能够提示用户输入、直接访问内置 AutoCAD 命令,以及修改或创建图形数据库中的对象。通过创建 AutoLISP 程序,可以向 AutoCAD 添加专用命令。实际上,某些标准 AutoCAD 命令是 AutoLISP 应用程序。 # [7 K+ ^- R9 y! p2 d
: o9 g* O, ]; d- `# m( \% h9 [Visual LISP 为 AutoLISP 应用程序提供三种文件格式选项:3 W0 H, ]. n, u; G( f2 I2 K+ N5 H9 b; t
- G9 a3 o j" Y' i- @
读取 LSP 文件 (.lsp) — 包含 AutoLISP 程序代码的 ASCII 文本文件。
5 ^5 Z# w1 F5 w6 I5 Q读取 FAS 文件 (.fas) — 单个 LSP 程序文件的二进制编译版本。
" O1 w, X8 k0 e, }4 P4 f X读取 VLX 文件 (.vlx) — 一个或多个 LSP 文件和/或对话框控制语言 (DCL) 文件的编译集。$ e0 U' A6 c4 I& E- i4 y
注意名称相似的 AutoLISP 应用程序文件的加载由它们的编辑时间决定。除非指定完整的文件名(包括文件扩展名),否则将加载最近编辑过的 LSP、FAS 或 VLX 文件。
% \' @& m9 E: a5 _: n; W& m2 ~由于 AutoCAD 能够直接读取 AutoLISP 代码,因此无需编译。Visual LISP 提供了一个集成开发环境,用户可以选择进行试验:在命令提示下输入代码后可立即看到结果。这使 AutoLISP 语言容易试验,而不管用户的编程经验如何。 6 z( V7 n& H, D9 q C$ [. y
* k! a6 ~4 X3 M, G0 j: G0 o: ^! M) y
即使用户对编写 AutoLISP 应用程序不感兴趣,AutoCAD 软件包中也包含许多有用的程序。程序也可以作为共享软件或从第三方开发商处获取。了解如何加载和使用这些程序有助于提高生产率。' F0 S* Z2 P/ O- H6 ]+ T) M
: J& t2 h$ M& p注意通过 AutoLISP command 函数输入命令时,PICKADD 和 PICKAUTO 系统变量的设置分别假定为 1 和 0。这保留了与早期 AutoCAD 版本的兼容性,并使自定义操作更加简单(因为用户不必检查这些变量的设置)。+ Q% e" h8 f# t
有关 AutoLISP 编程的信息,请参见《AutoLISP Developer's Guide》;有关 AutoLISP 和 Visual LISP 函数的信息,请参见帮助系统中的《AutoLISP Reference》。要显示“开发人员帮助”,请在“帮助”按钮右侧的“信息中心”工具栏上单击下拉箭头。从该菜单中,依次单击“其他资源”“开发人员帮助”。AutoLISP 程序可以在应用程序中使用对话框。仅《AutoLISP Developer's Guide》对可编程对话框进行了描述。 |