编写acad.rx文件自动加载arx文件

本文介绍了一种在AutoCAD中加载ARX文件的简便方法,通过在acad.rx文件中指定ARX文件路径来实现自动加载,并提供了具体步骤及注意事项。

       加载.arx文件,最方便的方法便是,在acad.rx 文件中填写.arx文件路径,这样点击按F5调试ObjectArx程序时,就会直接启动AutoCAD2002并自动加载.arx文件,再在CAD的命令行窗口,输入arx文件中的绘图命令即可。

     假设是,你的开发工具是:VC6.0    + ObjectArx2002  +  AutoCAD2002

步骤如下:

        1)在VC6的工程目录下(即包含.dsp的那个目录),新建一个acad.txt文件,然后在acad.txt中添加你的arx文件的路径名,将acad.txt改为acad.rx,如下图所示:


图(1)在.dsp 的当前目录下,新建一个acad.txt文件


图(2)输入.arx文件的相对路径: ".\Debug\XXXX.arx",其中XXX.arx是你的arx文件名

        相对路径:  .\Debug\WhFrame5.arx

        绝对路径: F:\MyProject\ARX_unit3\Chapter07\Frame5\DebugWhFrame5.arx

        这两种路径都可以使用,推荐使用相对路径。在acad.rx 中,路径单独占一行,有N 个 .arx文件就写N行 相对路径。

        在VC6.0下,acad.rx与.dsp处在同一目录。而在VS2002中,acad.rx与.vcproj 处在同一目录。


      在AutoCAD 启动文件acad.rx 中指定待装入的ARX 应用程序名。acad.rx 是ASCII 文本文件,
      每个ARX 应用程序必须单独占一行,AutoCAD 启动时会自动装载该文件中的ARX 应用程序。
      另外,应确保$ACAD 路径定义中包括文件acad.rx 的存放目录。

2)在VC6中,按F5启动AutoCAD2002,发现“AutoCAD菜单实用程序已加载”,说明arx文件加载成功,再输入相应的绘图命令即可。


图(3)arx文件已成功加载


        注意:如果你使用的开发工具是: VS2002 + ObjectArx2006 + AutoCAD2006, 这需要将acad.rx放在 .vcproj所在的目录。如图(4)所示:


    图(4)在VS2002中的位置:acad.rx文件 与.vcproj 处在同一目录

参考地址:http://bbs.xdcad.net/forum.php?mod=viewthread&tid=669291


ObjetArx2004+VS2002前提:安装好以上两种软件创建步骤:1. 新建项目 Visual C++项目->选择ObjectARX/DBX/OMF->键入"Demo"项目名称 ->MFC Support中勾选Enxtension Dll->using MFC Shared DLL,其他取默认值2. 删除文件 在“解决方案资源管理器”中删除向导生成的acrxEntryPoint.cpp,DocData.cpp,DocData.h文件 同时可以在文件夹下彻底删除文件,后续步骤并不需要用到这3个文件3. 添加Demo.h文件 同时在Demo.h文件中加入代码 #pragma once #include"resource.h"3. 创建一个普通对话框,基于CDialog类,并生成类CDlgDemo4. 打开Demo.cpp文件,对这个文件要进行比较多的操作 ·注释掉"AFX_EXTENSION_MODULE DemoExtDLL ={ NULL, NULL };"这一句 ·添加#include "DlgDemo.h"头文件 ·添加函数DlgDemo(),具体见附件源文件代码 ·添加initApp(),unloadApp() ·注释掉DllMain中的"_hdllInstance =hInstance ;" ·在文件的末尾添加acrxEntryPoint() 这里需要提醒一下的是关于AC_IMPLEMENT_EXTENSION_MODULE(DemoDLL)的使用 涉及到了Dll资源的使用,所以DemoDLL在这里相当于一个连接AutoCAD和MFC的纽带, 保持整个Demo.cpp中,DemoDLL的一致5. 项目设置 菜单"工具"->"选项"->"项目"->"包含文件"->添加ObjectARX2004的inc目录 ->"库文件"->添加ObjectARX2004的lib目录6. 生成解决方案 一切pass,有2个警告rxapi.lib(libinit.obj) : warning LNK4099: 未发现 PDB“msvc.pdb” acedapi.lib(acedstub.obj) : warning LNK4099: 未发现 PDB“corehdr.pdb” 不用去管它,ObjectARX开发文档已经说明了这个问题的存在,不影响使用#至此为止,我们已经生成了MarkDemo.arx,在Debug目录下可以找到,下面将继续介绍如何在 AutoCAD2004菜单中自动加载Demo对话框
<think>我们被要求使用acad.lsp或acaddoc.lsp文件实现CAD启动时自动加载ARX插件。根据引用内容,有两种方法:使用acad.rx文件或使用lsp文件acaddoc.lsp或acad.lsp)。这里我们关注lsp文件方法。 引用[1]提到: 1. 在指定路径(例如C:\myarx\)下新建acaddoc.lsp文件(也可以创建acad.lsp,但注意acad.lsp只能在AutoCAD启动时加载一次,而acaddoc.lsp在每次新建或打开图纸时都会加载)。 2.acaddoc.lsp文件中写入: (defun S::STARTUP() ; 函数名不可改变 (arxload "test.arx") ; 可以相对路径或绝对路径 ) 但是,引用[1]也提到从网上看到的代码使用(command "_netload" "my.dll")不能成功,这是因为_netload用于加载.NET程序集(dll),而ARX插件应该使用(arxload)函数。 引用[2]也提到了注册表修改方法:需要将包含acaddoc.lsp文件的路径(例如C:\myarx)添加到AutoCAD的搜索路径中。这可以通过修改注册表实现,具体位置在: HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R19.0\ACAD-B001:804\Profiles\<<未命名配置>>\General下的ACAD键值,在路径中添加C:\myarx;(注意分号结尾)。但注意,这里的注册表路径中的版本号(R19.0)和配置名(<<未命名配置>>)可能因AutoCAD版本和用户配置而异。 因此,实现步骤总结如下: 1. **创建acaddoc.lsp文件**: - 在指定目录(例如`C:\myarx`)下创建`acaddoc.lsp`文件。 - 文件内容为: ```lisp (defun S::STARTUP () (arxload "test.arx") ; 这里可以写相对路径(相对于搜索路径)或绝对路径 ) ``` 注意:如果使用相对路径,要确保该路径在AutoCAD的搜索路径中;绝对路径则不需要。 2. **将目录添加到AutoCAD搜索路径**: - 方法一(推荐):在AutoCAD界面中设置支持路径。 - 打开AutoCAD,输入`OPTIONS`(或右键选项)→ 文件 → 支持文件搜索路径 → 添加`C:\myarx`(或你的目录)并上移到顶部(确保优先搜索)。 - 方法二:修改注册表(适用于批量部署或无法打开CAD的情况)。 - 打开注册表编辑器,定位到: `HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\Rxx.x\ACAD-xxxx:xxx\Profiles\<配置名称>\General` 其中`Rxx.x`为AutoCAD版本(如R23.1对应AutoCAD 2019),`ACAD-xxxx:xxx`为安装标识,`<配置名称>`为当前配置(默认可能是`<<未命名配置>>`)。 - 修改`ACAD`键值,在原有路径字符串末尾添加`C:\myarx;`(注意分号分隔)。 3. **注意事项**: - `acad.lsp`与`acaddoc.lsp`的区别: - `acad.lsp`在AutoCAD启动时只加载一次(适用于全局设置)。 - `acaddoc.lsp`在每次新建或打开文档时都会加载(适用于每个文档都需要初始化的情况)。 - 如果ARX插件是文档相关的,建议使用`acaddoc.lsp`;如果是全局设置,可使用`acad.lsp`(但注意`acad.lsp`只加载一次,如果后续打开文档需要重新加载,可能不适合)。 - 路径问题:`test.arx`可以是相对于搜索路径的相对路径,也可以使用绝对路径。如果ARX文件与lsp文件在同一目录,直接写文件名即可(因为该目录已添加到搜索路径)。 4. **验证**: - 重启AutoCAD(或新建文档)后,在命令行输入`(arx)`查看已加载ARX列表,确认是否包含`test.arx`。 5. **替代方法(自动加载)**: - 引用[1]还提到了另一种方法:使用`acad.rx`文件。在同一个目录(已添加到支持路径)下创建`acad.rx`文件,每行一个ARX文件名(如`test.arx`),AutoCAD启动时会自动加载其中列出的ARX。 根据用户的问题,我们重点回答如何通过acad.lsp或acaddoc.lsp实现加载,因此上述步骤已经清晰。 最后,生成相关问题。 </think>### 如何通过acad.lsp/acaddoc.lsp实现ARX插件自动加载 #### 📝 核心步骤 1. **创建加载脚本文件** - 在ARX插件目录(如 `C:\myarx\`)新建文件: - `acad.lsp` → AutoCAD启动时加载一次 - `acaddoc.lsp` → 每次新建/打开文档时加载 2. **编写加载代码** 在文件中添加以下内容(以 `acaddoc.lsp` 为例): ```lisp (defun S::STARTUP () ; 函数名必须固定 (arxload "test.arx") ; ARX文件名(支持相对/绝对路径) ) ``` 3. **配置搜索路径** 将ARX目录添加到AutoCAD搜索路径(两种方法): - **注册表修改**: 1. 打开注册表:`Win+R` → `regedit` 2. 定位路径: ```plaintext HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\ Rxx.x\ACAD-xxxx:xxx\Profiles\<配置名>\General ``` (`Rxx.x`为版本号,如R23.1=AutoCAD 2019) 3. 修改 `ACAD` 值:在现有路径末尾添加 `C:\myarx;`(注意分号结尾)[^1][^2] - **CAD界面操作**: 1. 输入 `OPTIONS` → "文件"标签 2. 在"支持文件搜索路径"中添加 `C:\myarx` #### ⚠️ 关键注意事项 1. **路径分隔符** - 注册表路径必须用**英文分号**结尾:`原有路径;新路径;` - 错误示例:`C:\myarx`(缺少分号) - 正确示例:`C:\AutoCAD;D:\tools;C:\myarx;` 2. **文件差异** | 文件 | 加载时机 | 适用场景 | |--------------|-----------------------|----------------------------| | `acad.lsp` | CAD启动时**一次** | 全局设置(如注册新命令) | | `acaddoc.lsp`| 每次打开/新建文档时 | 文档级初始化(推荐常用) | 3. **路径引用技巧** ```lisp (arxload "test.arx") ; 相对路径(需在搜索路径中) (arxload "C:/myarx/test.arx") ; 绝对路径(无需配置搜索路径) ``` #### 🔍 验证方法 1. 重启AutoCAD,在命令行输入: ```lisp (arx) ; 查看已加载ARX列表 ``` 2. 若出现 `"test.arx"` 表示成功(如图示) ![ARX加载验证](https://example.com/arx_verify.png) (图示:命令行显示已加载ARX插件列表) > 💡 **调试提示**:若加载失败,检查注册表路径是否包含特殊字符(如中文),建议使用纯英文路径[^2]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sanqima

一键三连,多多益善

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值