创建Project

Civi3D (AutoCAD)二次开发的plugin,实际上很简单,只是一个普通的.NET Assembly DLL。因为需要调用AutoCAD以及Civil3D的.NET API,因此需要reference这些product的.NET API DLL。除此之外并没有什么特别的。

创建Project有几种方式:

第一种是最正统的方式,即使用Autodesk提供的AutoCAD 2017 DotNet Wizards,我们可以用http://usa.autodesk.com/adsk/servlet/index?id=1911627&siteID=123112 下载。

安装好这个Wizard之后,Visual Studio中会多出一种project type,如下图所示:

clip_image002

这个Wizard支持AutoCAD以及基于AutoCAD的各个产品,比如Civil3D,Map3D等。直接创建这种project之后,还需要选择一些要reference的DLL。

clip_image003

其中AutoCAD的三个DLL必须reference,分别是AcDbMgd,AcMgd和AcCoreMgd,而Civil3D的project需要另外reference两个DLL,分别是AecBaseMgd和AeccDbMgd。

clip_image004

第二种方式其实也很简单,只要你去创建一个普通的Windows Class Library project,然后reference一下上面提到的这些DLL(这些DLL都可以从Civil3D的安装目录下找到),并且设置一下“Copy Local”为False。

clip_image005

作为二次开发plugin,我们一般会定义一些command,来作为功能的入口。定义命令也很简单,只需要在类的函数前加上CommandMethod这个Attribute即可,例如

clip_image006

就定义了一个命令“MyGroup”。

第三种更简单的方式是,你预先定义好一个project template,把project里的.NET Framework已经需要reference的DLL都设置好,当需要创建一个新project的时候,直接把这个template project拷过来,改个名字就好了。这是最简单而且不容易出错的方式。后面我会创建好这些template projects并且上传到github。

posted @ 2017-03-29 23:21  BIMKF  阅读(365)  评论(0编辑  收藏  举报