最近在做一项CAD二次开发,就是根据一个行政单元,求在行政单元内的所有河流的面积。如果用ArcGIS来做,显然简单的多,但是用CAD来“滥竽充数”显然很不给力。下面介绍一下ObjectARX来空间求交集,多谢师弟的帮助。开发环境是VS2005。
1. 首先创建一个类工程,添加5个比用引用,分别是:
acdbmgd(位置在“C:/Program Files/AutoCAD 2006/acdbmgd.dll”)
acmgd(位置在“C:/Program Files/AutoCAD 2006/acmgd.dll”)
AutoCAD(COM组件库,别名:AutoCAD 2006 Type Library)
AxDBLib(COM组件库,别名:AutoCAD/OjbectDBX Common 16.0 Type Library)
2. 创建一个CAD实例类:
3. 创建一个函数,将闭合的多义线(Polyline)转换为面(Region)
4. 将两个封闭的多义线(Polyline)转换为面(Region)后,就可以求交集了: