- 积分
- 5966
- 明经币
- 个
- 注册时间
- 2003-1-7
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
我在使用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();
- }
复制代码 希望大家能试一下,如果确实都存在这个问题,我就公布我的处理方法。否则,就是画蛇添足了。: ) |
|