最近要开始做CAD的插件开发了。
首选就是环境的搭建,我这是采用AutoCAD2020作为测试,需要注意framework框架的版本问题,比如2020,我就选用了.NET framework 4.7.2 低版本的不一定能用。
相关的案例和API可以查看此网站:托管 .NET 开发人员指南 (.NET) - ObjectARX 开发指南,AutoCAD二次开发文档 ... - 中文CAD开发文档,CAD二次开发问题交流,优秀插件分享
插件开发好像是需要创建WPF程序才能进行,为了能顺利搭建环境,就按着这样来吧:
首先是创建项目:WPF应用(.NET Framework)
创建完成把项目中的App.xaml 和MainWindow.xaml文件删除:
引用下述.dll(均在cad安装后的程序目录中):
acmgd.dll AdWindows.dll acdbmgd.dll accoremgd.dll
修改项目的“属性”->"应用程序",调整好“目标框架”(我这里是cad2020我选择了4.7.2),“输出类型”选择类库:
接下来就可写测试的方法了,新建一个类(我这里新建一个间WpfApp1的类),键入如下代码:
using Autodesk.AutoCAD.Runtime;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace WpfApp1
{
public class Test
{
[CommandMethod("HELLOWCM")]//启动函数的命令
public void TestFN()
{
MessageBox.Show("world");
}
}
}
然后可以在项目的“调试”项中跟CAD的启动程序(.exe)进行关联,方便调试
启动调试,进入到CAD的界面,新建一个窗口,先在命令行处输入netload,在弹出的文件筐中选择项目的.dll文件,比如我是在Debug模式下,我就去debug文件夹下找到了WpfApp1.dll文件,然后可以在命令行里键入刚才我们配置的命令HELLOWCM进行测试了,效果如下:
关于部署:
博主是用x64 Debug模式进行的开发,在生成解决方案后在项目的bin\x64目录下找到Debug文件夹,去到C:\Program Files\Autodesk\ApplicationPlugins目录下,创建任意名字的文件夹(不能用中文),然后以“.bundle”结尾:
把Debugger,在同级创建一个PackageContents.xml文件,内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<ApplicationPackage SchemaVersion="1.0" AppVersion="1.0" ProductCode="{02933C01-125D-48EF-B577-08C3AEF6A23F}" Name="测试插件">
<CompanyDetails
Name="xxx有限公司"
Email="xxx@cn.com"
/>
<!--查看版本:AcadVer-->
<RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD*" SeriesMin="R18.0" SeriesMax="R24.0" />
<Components>
<ComponentEntry ModuleName="./Debug/test.dll"> <!--配置到目录下对应生成的项目dll-->
<Commands>
<!--配置CAD启动时自动执行的命令-->
<Command Local="HELLOWCM" Global="HELLOWCM" StartupCommand="True"/>
</Commands>
</ComponentEntry>
</Components>
</ApplicationPackage>
然后启动程序即可