本文迁移自本人网易博客,写于2012年4月10日。
做一个独立的arx,添加一个命令,在当前图形上选择一个实体或画一个实体;获取所有与这个实体相交的实体,并在交点处打断。
intersectWith获取不到交点:两实体必须标高一致,才能获取到交点。
getSplitCurves函数使用出现错误: unhandled access violation Reading 0x0004 Exception at 645551f0h
原因:使用该函数前,应先将曲线的“拟合”属性改为“无”;但是用程序将实体拟合属性改为无后,错误依旧。
若在图形上将实体拟合属性改为无,实体就不光滑了。与使用break命令得到的不一样。break命令打断后实体依然光滑。
最终解决方法:先将实体拟合属性改为无,并记录;获取交点,打断实体后,再恢复拟合属性;实体必须一个一个打断,因为打断一次会重新生成实体,再一次获取交点打断,使用递归方法。
但是使用这种打断方法,打断后的实体顶点总数与打断前相差不大,而使用break命令打断会增加很多顶点;而且打断后有的实体顶点个数非常少,无法再恢复到原来的拟合属性状态。