![]() |
【转帖】[arx]关于自定义实体显示三维图形,不知是方法不对还是代码有问题!
[arx]关于自定义实体显示三维图形,不知是方法不对还是代码有问题!
[arx]关于自定义实体显示三维图形,不知是方法不对还是代码有问题! 请教大家一下,在自定义实体中,显示三维图形,该怎么做?我的代码如下,是代码有问题还是实现方法不对? 下面这个函数在自定义实体的worlddraw(acgiworlddraw* mode)中调用 //显示梁 void mgunit::showbeam(acgiworlddraw* mode) { // 创建一个圆对对象,以此生成面域 acgevector3d vec = m_endpoint - m_startpoint; acdbcircle *pcirc = new acdbcircle(m_startpoint, vec.normal(), 0.1); // 生成面域 acdbvoidptrarray arraycirc, arrayregions; arraycirc.append((void*)pcirc); acdbregion::createfromcurves(arraycirc, arrayregions); acdbregion *pregion = acdbregion::cast((acrxobject*)arrayregions[0]); // 拉伸面域 acdb3dsolid *p3dsolid = new acdb3dsolid; if (acad::eok == p3dsolid->extrude(pregion, vec.length(), 0)) { p3dsolid->worlddraw(mode); } delete p3dsolid; delete pcirc; delete pregion; } 能够生成并显示三维实体,但只要进行任何操作(如单击一下或移动鼠标),就会弹出提示: autocad错误中断 内部错误:!u:\global\src\coreacad\coresrc\scandr.cpp@773:eatmaxreaders 根本就没做什么打开操作,怎么提示eatmaxreaders错误呢??? |
| 所有的时间均为北京时间。 现在的时间是 10:58 PM. |