cad二开之不通过netload加载命令(bundle文件的使用)

一、背景

小伙伴们在cad二次开发时,当项目完成后,需要把程序做成安装文件,供他人使用,而不是通过netload去加载,那么如何实现呢?

二、解决思路

可以使用bundle文件,来包装自己的插件

<?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

image-20200308184159997

三、注意事项

之所以放在 C:\Program Files\Autodesk\ApplicationPlugins 目录下,一方面是因为这是CAD指定的目录之一,另一方面是因为C:\Program Files下的所有目录是CAD插件的可信目录,这样可以解决插件第一次加载时,弹出“无法验证该可执行文件的发布者…”的问题。