必须先加载 ObjectARX 应用程序,然后才能使用它的任何定义的命令或函数。
您可以使用以下方法之一加载 ObjectARX 应用程序:
利用 ARX 加载选项或 APPLOAD 命令,手动指定要加载的 ObjectARX 应用程序
利用 APPLOAD 命令的“启动组”,自动加载 ObjectARX 文件
arxload AutoLISP 函数并指定要加载的 ObjectARX 应用程序
注: 从基于 AutoCAD 2014 的产品开始,当 SECURELOAD 系统变量设定为 1 或 2 时,自定义应用程序必须在安全模式下工作。在安全模式下进行操作时,程序限制为从受信任的位置加载和执行包含代码的文件;受信任的位置由 TRUSTEDPATHS 系统变量指定。
自动加载 ObjectARX 应用程序
注: 某些 ObjectARX 应用程序要占用大量系统内存。如果已结束使用一个应用程序并且要将其从内存中删除,可以使用 ARX 或 APPLOAD 命令的“卸载”选项。
某些 ObjectARX 样例包含 acad.rx 文件,其中列出了启动 AutoCAD 时自动加载的 ObjectARX 应用程序文件。
用户可以使用文字编辑器或以 ASCII 文字格式生成文件的文字处理器创建或编辑此文件,添加或删除文件内容以使相应的 ObjectARX 应用程序可用。另外,APPLOAD 命令提供了“启动组”选项,用于加载指定的应用程序,而无需编辑任何文件。
由于 AutoCAD 和基于 AutoCAD 的产品按照库路径指定的次序搜索 acad.rx 文件,因此可以在每个图形目录中拥有不同的 acad.rx 文件。此操作使特定的 ObjectARX 应用程序可用于某类图形。例如,将三维图形放置在 AcadJobs/3d_dwgs 目录中。如果该目录被设置为当前目录,那么就可以将“acad.rx”文件复制到该目录中,并如下修改该文件:
myapp1 otherapp
如果将此新的 acad.rx 文件放置到 AcadJobs/3d_dwgs 目录中并以该目录作为当前目录启动程序,则这些新的 ObjectARX 应用程序将被加载并可以通过命令提示使用。由于原始 acad.rx 文件和 AutoCAD 程序文件仍在目录中,因此从另一个不包含 acad.rx 文件的目录中启动程序时,将加载默认的 acad.rx 文件。
可以使用 arxload 函数从 MNL 文件中加载 ObjectARX 应用程序。这可以确保菜单正常操作所需的 ObjectARX 应用程序将与菜单文件同时加载。
使用 AutoLISP 加载 ObjectARX 应用程序
arxload 函数的语法和 AutoLISP 文件使用的 load 函数的语法几乎完全相同。如果 arxload 函数成功加载了 ObjectARX 应用程序,则返回该程序名。arxload 函数的语法如下所示:
(arxload filename [onfailure])
arxload 函数有两个参数:filename 和 onfailure。与 load 函数一样,filename 参数是必需的,并且必须是要加载的 ObjectARX 应用程序文件的完整路径名说明。onfailure 参数是可选的,并通常不在从命令提示加载 ObjectARX 应用程序时使用。下例加载 ObjectARX 应用程序“myapp.arx”。
(arxload "myapp")
与 AutoLISP 文件一样,程序在库路径中搜索指定文件。如果要加载不在库路径中的文件,则必须提供该文件的完整路径名。
注: 指定目录路径时,必须用一个斜杠 (/) 或两个反斜杠 (\) 作为分隔符,因为单个反斜杠在 AutoLISP 中具有特殊意义。
试图加载已经加载的应用程序会导致出错。在使用 arxload 函数前应该用 arx 函数检查当前已加载的应用程序。
要用 AutoLISP 卸载应用程序,可以用 arxunload 函数。下例卸载“myapp” 应用程序。
(arxunload "myapp")
使用 arxunload 函数不仅可以从内存中清除 ObjectARX 应用程序,还可以清除与该应用程序关联的命令定义。