AutoCAD自动加载dll,并在CAD菜单栏中添加执行该dll包含的方法的菜单(图文)

AutoCAD自定义DLL加载教程

一、让AutoCAD启动时自己装载DLL动态库

1.将.NET制作好的dll放在指定文件夹,例如D:\CADCapture\NetCAD2014.dll
2.打开CAD安装根目录,找到Support文件夹中的acad2014.lsp(我的CAD版本是2014版,版本不同,此文件名不同),用记事本打开。(我的acad2014.lsp路径为:D:\ProgramFiles\Autodesk\AutoCAD 2014\Support\acad2014.lsp)
3.在“(if (not (=  (substr (ver) 1 11) "Visual LISP"))(load "acad2014doc.lsp"))”行下一行,加入如下一行(注意左右括号以及双引号皆为英文状态的,斜杠要用双斜杠):  (COMMAND “NETLOAD” “D:\\CADCapture\\NetCAD2014.dll”)
填好后如下:
(if (not (=  (substr (ver) 1 11) "Visual LISP"))(load "acad2014doc.lsp"))
(COMMAND “NETLOAD” “D:\\CADCapture\\NetCAD2014.dll”)
;; Silent load.
(princ)

二、创建AUTOCAD菜单项

在AutoCAD的命令行输入 cui ,按回车调出 自定义用户界面。

 

1 右击左上角[所有自定义文件]中的[菜单] -- 新建菜单
2 在右侧 [名称 处],输入菜单名称,例如:采集坐标,即可创建菜单项
3 新创建的项目一般在最后,可拖动改变位置

三、创建命令 

1 点左侧中部搜索图标下面的[五角星]图标,创建新命令
2 在右侧[名称]处输入命令的名称:采集圆形坐标
3 在右侧[宏]处输入动态库中的方法名称 GETALLCIRCLEDISTANCE,成为:
^C^C_ GETALLCIRCLEDISTANCE
注意宏:  ^C^C_ GETALLCIRCLEDISTANCE
(1) 命令GETALLCIRCLEDISTANCE是动态库中的方法名称
(2) 命令其前要有下划线_
【按钮图像】设置与否自行决定
4 在命令列表框里即可发现新添加的命令 采集圆形坐标

 

四、让创建的菜单项与命令联系起来 

1 在下面新建立的命令[采集圆形坐标] 处, 按下鼠标不放
2 拖动到上面菜单[采集坐标]上松手,即建立完毕

五、 查找定义菜单项,查看执行的结果 

1 从CAD菜单栏上找到[采集坐标]
2 点击其下的[采集圆形坐标],会弹出坐标采集窗体

 

参考:http://blog.sina.com.cn/s/blog_45eaa01a0102vutl.html

### CAD自动加载DLL的解决方案 在AutoCAD环境中实现DLL文件的自动加载可以通过多种方式完成。以下是几种常见方法及其具体实施细节: #### 方法:通过编辑Windows注册表实现自动加载 可以修改Windows注册表来指定特定的DLL文件路径,从而让AutoCAD启动时自动加载这些DLL文件。具体的步骤包括向注册表中的相应位置添加新的键值对。 例如,在AutoCAD Civil 3D 2014版本下,可以在以下路径添加相应的注册表项[^1]: ```plaintext HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R19.1\ACAD-D000:407\Applications\ ``` 需要添加的具体注册表项如下: - `"LOADER"`=`"C:\\Program Files\\Autodesk\\Autodesk AutoCAD Civil 3D 2014\\DgnLsPurge.dll"` - `"DESCRIPTION"`=`"DGN Linestyle Purge"` - `"LOADCTRLS"`=`dword:0000000e` - `"MANAGED"`=`dword:00000001` 这种方法适用于固定的DLL文件路径,且能够确保每次启动AutoCAD时都加载所需的DLL文件。 --- #### 方法二:利用Startup Suite配置自动加载种更灵活的方式是使用AutoCAD自带的Startup Suite功能。此功能允许用户将自定义的应用程序(如DLL文件)加入到启动序列中,以便在软件初始化阶段自动执行。 要启用该功能,请按照以下步骤操作: 1. 打开AutoCAD进入选项对话框。 2. 转至“配置”标签页下的“Startup Suite”部分。 3. 添加目标DLL文件所在的路径或直接拖拽DLL文件到列表中。 这种方式无需更改系统级的注册表设置,因此更加安全可靠[^2]。 --- #### 方法三:创建脚本文件辅助加载 如果遇到某些情况下无法正常加载DLL的情况,则可能是因为缺少必要的环境变量或者存在其他冲突因素。此时可尝试编写简单的脚本来协助完成加载过程。 比如创建个名为`epDebugStart.scr`的脚本文件,其内容仅需包含条指令用于调用`NETLOAD`命令加载对应的DLL模块。然而需要注意的是,当出现类似错误消息——即找不到指定脚本文件时,应仔细检查当前工作目录以及相对路径是否匹配实际存储位置[^3]。 示例脚本代码如下所示: ```autohotkey netload "C:\Path\To\YourPlugin.dll" exit ``` 随后将上述脚本放置于AutoCAD默认读取资源的位置之即可生效。 --- ### 总结 综上所述,针对不同场景可以选择适合自己的策略去达成目的。无论是调整操作系统层面的数据结构还是借助应用程序内部机制都能有效解决问题。同时也要注意处理好可能出现的各种异常状况以保障整个流程顺利进行下去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值