你是否遇到过下面的问题?
我在使用AcDbRegion类的时候,发现该函数执行时会在AutoCAD命令行输出一些乱码,不信你可以试一下下面的代码段。使用方法:创建一个新工程,下面的语句可以直接放在一个命令的执行函数中,然后创建一个新图形,在图形中创建两个有交集的面域,运行此段代码,分别选择两个面域进行操作,就会在命令行产生乱码。// 测试两个面域的交集ads_name en1, en2;
ads_point pt;
int ss1 = acedEntSel("\n选择第一个面域:", en1, pt);
int ss2 = acedEntSel("\n选择第二个面域:", en2, pt);
if (ss1 == RTNORM && ss2 == RTNORM)
{
AcDbObjectId entId;
Acad::ErrorStatus es = acdbGetObjectId(entId, en1);
AcDbEntity *pEnt1, *pEnt2;
es = acdbOpenAcDbEntity(pEnt1, entId, AcDb::kForWrite);
es = acdbGetObjectId(entId, en2);
es = acdbOpenAcDbEntity(pEnt2, entId, AcDb::kForWrite);
if (pEnt1->isKindOf(AcDbRegion::desc()) &&
pEnt2->isKindOf(AcDbRegion::desc()))
{
AcDbRegion *pRegion1 = AcDbRegion::cast(pEnt1);
AcDbRegion *pRegion2 = AcDbRegion::cast(pEnt2);
if (pRegion1 != NULL &&pRegion2 != NULL)
{
es = pRegion1->booleanOper(AcDb::kBoolIntersect, pRegion2);
}
}
pEnt1->close();
pEnt2->close();
} 希望大家能试一下,如果确实都存在这个问题,我就公布我的处理方法。否则,就是画蛇添足了。: )
页:
[1]