AutoCAD C#二次开发环境搭建
最近开始搞AutoCAD的二次开发,之前没怎么接触过,相当于小白从零开始。
首先就是环境的配置
不过需要注意的是里面引用的应该是三个dll,acmdg,acdbmgd,accoremgd
配好环境后写了个demo,发现不会调用,查了下资料都说是输入NETLOAD命令后打开编译后的dll文件就行,一番折腾后发现只要在AutoCAD里面敲回车就能输入命令了【都是从零开始,小白开发心里苦啊】
运行之后 跑通~
然而还有一个问题 ,每次修改后都要重启CAD,重新加载dll,很麻烦,顺便查了下,有大神给出了通过二次调用避免重启CAD的方法
接下来是要实现功能,最初的想法是获取所有图层下的所有实体信息,参考了两个文章,一是获取所有图层名称,二是通过图层名称获取图层下的所有内容信息
AutoCAD二次开发用到了里面数据库的数据结构,参考了这篇文章进行学习数据库结构
目前想到的是用首先获取图层名称,然后获取每个图层下的对象id,对于每个id,根据oids[i].ObjectClass.Name获取其类型,对于不同的类型获取不同的信息。
目前整理的类型有:AcDbLine、AcDbArc、AcDbCircle、AcDbMText、AcDbText、AcDbPolyline、AcDbBlockReference、AcDbHatch、AcDbAttributeDefinition、AcDbRotatedDimension、AcDbAlignedDimension