企业博客网bokee.net www.bokee.net http://bonjunior.blog.bokee.net/  AutoLISP 和 Visual LISP 概述 打印此页

AutoLISP 和 Visual LISP 概述

http://bonjunior.blog.bokee.net    2012-8-24

AutoLISP 通过 Visual LISP (VLISP) 进一步得到增强,VLISP 提供了一个集成开发环境 (IDE),其中包含编译器、调试器和其他提高生产效率的工具。VLISP 添加了更多的功能,并扩展了语言以与使用 ActiveX 的对象进行交互。VLISP 也允许 AutoLISP 通过对象反应器对事件进行响应。

与 ObjectARX 或 VBA 不同的是,在多文档设计环境 (MDE) 中打开的每个文档都有自己的 Visual LISP 名称空间和环境。名称空间是一个隔离环境,用于避免特定于某一文档的 AutoLISP 例程与另一个文档中的例程在符号或变量名和值上发生冲突。例如,如下代码行为不同文档中的符号 a 设置不同的值。

(setq a (getvar "DWGNAME"))
Visual LISP 提供了从一个名称空间向另一个名称空间中加载符号和变量的机制。关于名称空间的详细信息,请参见AutoLISP Developer's Guide(在 AutoCAD 的“帮助”菜单上单击“开发人员帮助”)。

AutoLISP 应用程序或例程可与 AutoCAD 以各种方式进行交互。这些例程能够提示用户输入、直接访问内置的 AutoCAD 命令,并且修改或创建图形数据库中的对象。通过创建 AutoLISP 例程,用户可以向 AutoCAD 中添加专用命令。某些标准的 AutoCAD 命令实际上也是 AutoLISP 应用程序。

Visual LISP 为 AutoLISP 应用程序提供三种文件格式选项:

LSP 文件 (.lsp) - 一种包含 AutoLISP 程序代码的 ASCII 文本文件。
FAS 文件 (.fas) - 一个 LSP 程序文件的二进制编译版本。
VLX 文件 (.vlx) - 一个或多个 LSP 文件和/或对话框控制语言 (DCL) 文件的编译集合。
注意 名称相似的 AutoLISP 应用程序文件的加载由它们的编辑时间决定。除非指定完整的文件名(包括文件扩展名),否则将加载最近编辑过的 LSP、FAS 或 VLX 文件。

因为 AutoCAD 能直接读取 AutoLISP 代码,所以无需编译。Visual LISP 提供了一个集成开发环境,用户可以做个试验:在命令提示下输入代码后可立即看到结果。这使 AutoLISP 语言容易试验,而不管用户的编程经验如何。

如果用户对编写 AutoLISP 应用程序不感兴趣,可以在 AutoCAD 软件包中找到许多有用的例程。例程也可以作为共享软件或从第三方开发商处获取。了解如何加载和使用这些例程有助于提高生产率。

注意 当从 AutoLISP command 函数中输入命令时, PICKADD 和 PICKAUTO 系统变量的设置分别假定为 1 和 0。这保留了与早期 AutoCAD 版本的兼容性并使自定义操作更加简单(因为用户无须检查这些变量的设置)。