块中含有自定义实体时调用explode()失败的原因及解决办法
2012-05-29 15:40
393 查看
今天在代码自测时,发现当块中含有自定义实体时,调用explode()会返回Adesk::eNotApplicable,而对自定义体直接调用explode()方法、以及在CAD执行“炸开”命令均正常。
用ARX开发包自带的polysamp例子进行模拟测试却正常。后经调试,发现对块参照调用explode()时,会调用自定义实体的getTransformedCopy()方法,故在自定义实体类中增加对getTransformedCopy()的重载,问题解决!
后来在Autodesk Discussion Groups中也得到证实:
AcDbBlockReference::explode() uses
getTransformedCopy() on each entity in the block definition to create the
explode set. Unfortunately, AcDbPolyFaceMesh::getTransformedCopy() doesn't
copy the xdata to the copy.
链接:http://forums.autodesk.com/t5/Autodesk-ObjectARX/Explode-with-the-ACAD-EXPLODE-Command/td-p/315823
用ARX开发包自带的polysamp例子进行模拟测试却正常。后经调试,发现对块参照调用explode()时,会调用自定义实体的getTransformedCopy()方法,故在自定义实体类中增加对getTransformedCopy()的重载,问题解决!
后来在Autodesk Discussion Groups中也得到证实:
AcDbBlockReference::explode() uses
getTransformedCopy() on each entity in the block definition to create the
explode set. Unfortunately, AcDbPolyFaceMesh::getTransformedCopy() doesn't
copy the xdata to the copy.
链接:http://forums.autodesk.com/t5/Autodesk-ObjectARX/Explode-with-the-ACAD-EXPLODE-Command/td-p/315823
相关文章推荐
- java 用FlexPaper+SWFTools实现文章可看不可复制黏贴,转化swf,当文件名中含有多个空格,转化失败的原因及解决办法
- 调用 RegLoadKey 失败,返回错误码1314的原因及解决办法
- 第一次调用WebService慢的原因和解决办法
- vs2008调用opencv2.4.9的imread()函数失败解决办法
- c++调用动态库失败解决办法
- 重装系统失败的几个原因和解决办法
- 从 IClassFactory 为 CLSID 为 {00024500-0000-0000-C000-000000000046} 的 COM 组件创建实例失败,原因是出现以下错误: 8001010a解决办法
- 用户 'IIS APPPOOL\***' 登录失败的原因及两种解决办法
- 使用Opencv调用摄像头失败的解决办法
- 精简版windows系统Arduino驱动安装失败的原因和解决办法
- SQL数据库实例名称找不到或远程连接失败并显示错误error40的原因及解决办法
- 对"对DllRegisterServer的调用失败,错误代码为0x8007005"的解决办法
- jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法
- 关于调用TCM SDK(TSM)接口加载用户密钥失败的解决办法
- android:SharedPreference 读取失败的原因及解决办法
- 关于调用startActivityForResult()方法后Activity直接退出的问题原因和解决办法
- IOS网络请求图片失败原因及解决办法
- CSocket::Create调用失败 原因和解决方法
- 关于winserver2012运行c++程序缺少dll的原因,而且c++运行时程序安装失败的解决办法
- c++调用动态库失败解决办法