cad二开之不通过netload加载命令(bundle文件的使用)
一、背景
小伙伴们在cad二次开发时,当项目完成后,需要把程序做成安装文件,供他人使用,而不是通过netload去加载,那么如何实现呢?
二、解决思路
可以使用bundle文件,来包装自己的插件
- 第一步:在电脑中建立一个.bundle后缀的文件夹(比如UCDPlugin.bundle)
- 第二步:将我们的创建dll文件放在其中,这里新建一个dll的文件夹
- 第三步:新建一个
PackageContents.xml
的文件,内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<ApplicationPackage SchemaVersion="1.0" AppVersion="1.0"
ProductCode="{a7602f7f-33a8-4eb1-8c83-bb7275a3baae}"
Name="UCD场地插件"
>
<CompanyDetails
Name="zjj"
Email="5616760@qq.com"
/>
<RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD*" SeriesMin="R20.0" SeriesMax="R25.0" />
<Components>
<ComponentEntry
ModuleName="./dll/ChangDiTools.dll"
/>
</Components>
</ApplicationPackage>
这里对以下几个关键的参数做解释:
ProductCode 每一个插件都需要有一个惟一的guid,这个可以用vs,或者编程语言随机生成,只要格式正确即可。
RuntimeRequirements 这个表明了此插件的运行环境
Platform指的是当前插件可以运行的平台,AutoCAD*,表示所有autocad平台的软件都可以加载,如果写为Civil3D,则只有Civil3D能够加载
SeriesMin=“R20.0” SeriesMax=“R25.0”(限制为只在CAD2016以上时加载)
这两个参数分别指定了插件支持的cad版本范围,比如R20.0就指的是CAD2016,如果想知道具体所用CAD的Series是什么版本,可以在CAD中输入AcadVer来查看
ModuleName 这个就指明了这个bundle包会调用哪个dll,xml中采用了相对路径的写法,去指定为debug文件夹中的cadPlugin.dll
- 第四步:在做好上面的工作之后,将此bundle文件夹拷贝到 C:\Program Files\Autodesk\ApplicationPlugins 文件夹下面。
三、注意事项
之所以放在 C:\Program Files\Autodesk\ApplicationPlugins 目录下,一方面是因为这是CAD指定的目录之一,另一方面是因为C:\Program Files下的所有目录是CAD插件的可信目录,这样可以解决插件第一次加载时,弹出“无法验证该可执行文件的发布者…”的问题。