ActiveX Automation 是 Microsoft? 基于 COM(部件对象模型)体系结构开发的一项技术。用户可以用它来自定义 AutoCAD,与其他应用程序共享图形数据以及自动完成任务。

用户可以从用作 Automation 控制程序的任意应用程序中创建和操作图形对象。因此,Automation 使编制跨应用程序执行的宏成为可能,而 AutoLISP 中就没有这种功能。

注: Mac OS 不支持 ActiveX。

在程序中使用 ActiveX 接口具有以下两个优点:

  • 可以在多种编程环境中编程访问图形。在 ActiveX Automation 出现之前,开发者只能用 AutoLISP 或 C++ 接口访问 AutoCAD 图形。

  • 更易于与其他 Windows 应用程序(例如 Microsoft Excel 和 Microsoft Word)共享数据。

例如,用户可能需要提示输入、设定系统配置、生成选择集或检索图形数据。用户可以根据操作的类型确定使用哪种控制程序。

显示的对象称为 Automation 对象。Automation 对象提供了方法、特性和事件。方法是对某个对象执行操作的函数,属性是设定或返回某个对象的状态信息的函数。事件是程序响应的由用户启动的动作或事件。

实际上,任何类型的应用程序都可以访问 AutoCAD 中显示的 Automation 对象。这些应用程序可以是独立的可执行文件、动态链接库 (DLL) 文件或某个应用程序(例如 Microsoft Word 或 Microsoft Excel)中的宏。其中,最常用的可能是独立的可执行文件。如果用户使用的是来自第三方开发商的应用程序,则请按照说明来安装和使用其产品。

定义外部命令以启动您的应用程序

您可以使用 acad.pgp 文件定义命令,该命令运行外部命令以启动单机版应用程序;类似于可用于启动命令的命令别名。

以下样例定义了 RUNAPP1 命令,该命令将从 c:vbapps 目录执行 app1.exe。(将此代码添加到 acad.pgp 文件的外部命令部分。)

RUNAPP1, start c:vbappsapp1, 0

如果应用程序需要命令行参数,则可以使用如下代码:

RUNAPP2, start c:vbappsapp2, 0, *Parameters: ,

本例定义了 RUNAPP2 命令,此命令用于提示用户输入参数,然后将这些参数传递给应用程序。

也可以用 AutoLISP startapp 函数来启动使用了 Automation 的应用程序。AutoLISP 一旦启动了外部应用程序,就不能对它进行控制。但用户可以用 AutoLISP 根据特定的参数查找和运行不同的应用程序。

从用户界面启动应用程序

在定义了外部命令以启动单机版应用程序后,您可以将该命令用作用户界面元素中命令宏的一部分。

如果仅使用一个或两个应用程序,则可以将它们添加到某个标准功能区面板或快速访问工具栏。如果您拥有一组应用程序,则可以专门为这些应用程序定义您自己的功能区面板。

,