开发工具 - ObjectArx
虽然Civil3D .NET API是基于AutoCAD .NET API开发的,但是做Civil3D二次开发的时候,我们并不直接需要用到ObjectArx。Civil3D Plugin project需要reference 的DLL是
o AcDbMgd.dll
o AcCoreMgd.dll
o AcMgd.ll
o AecBaseMgd.dll
o AeccDbMgd.dll
其中,Ac开头的DLL是AutoCAD的API,Aec开头的是ACA的API,Aecc开头的是Civil3D的API。这些DLL,我们在Civil3D的安装目录下面都能找到,直接拷到project里就能使用了,并不需要从ObjectArx里找。
那么为什么Civil3D二次开发还是需要ObjectArx呢?
最重要的是需要ObjectArx的文档。因为Civil3D API只提供了数据层的API,而一个plugin不可能没有用户交互,这些都是通过AutoCAD API来完成的。AutoCAD的API相对来说比较复杂,因此我们经常需要仔细查找和阅读ObjectArx的文档。
另一个作用是里面有一些Sample project也是非常值得学习了。
还有一个作用就是里面提供的一个小工具ArxDBG,这个后文会仔细介绍。
另外,虽然Civil3D二次开发是基于.NET API开发的,但是有时候可能会需要定义自定义实体(Custom Entity),那么这个就完全是基于ObjectArx C++ API来实现了,这就一定需要ObjectArx了。高级一点的二次开发,可以先用C++定义自定义实体,然后用C++/CLI封装自己的.NET API,再用C#来进行各种操作,这就需要开发人员熟悉各种语言。
ObjectArx是免费的,下载链接: