请教大家一下,在自定义实体中,显示三维图形,该怎么做?我的代码如下,是代码有问题还是实现方法不对? 下面这个函数在自定义实体的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错误呢??? |