|
请教大家一下,在自定义实体中,显示三维图形,该怎么做?我的代码如下,是代码有问题还是实现方法不对?
下面这个函数在自定义实体的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;
}
能够生成并显示三维实体,但只要进行任何操作(如单击一下或移动鼠标),就会弹出提示:
错误中断
内部错误:!U:\global\src\coreacad\CORESRC\scandr.cpp@773:eAtMaxReaders
根本就没做什么打开操作,怎么提示eAtMaxReaders错误呢???
|
|