几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(C++) (http://www.dimcax.com/hust/forumdisplay.php?f=34)
-   -   【转帖】arx 选择的 一个很古怪的问题 (http://www.dimcax.com/hust/showthread.php?t=6105)

yang686526 2009-04-14 03:14 PM

【转帖】arx 选择的 一个很古怪的问题
 
arx 选择的 一个很古怪的问题
arx 选择的 一个很古怪的问题
我用 acedssget()去选择一个区域内的实体
当我在前面不加入
acdbintarray m_offflag;
acdbintarray m_frozenflag;
acdbintarray m_lockedflag;
acdblayertable *playertable;
acdblayertablerecord* prec;
acdbcurdwg()->getlayertable(playertable, acdb::kforwrite) ;
acdblayertableiterator* piterator;
playertable->newiterator(piterator);
for(piterator->start();!piterator->done();piterator->step())
{
piterator->getrecord(prec, acdb::kforwrite);
m_offflag.append(prec->isoff()) ;
m_frozenflag.append(prec->isfrozen()) ;
m_lockedflag.append(prec->islocked()) ;
if(prec->isoff())
prec->setisoff(adesk::kfalse);
//if(prec->isfrozen())
//prec->setisfrozen(adesk::kfalse);
if(prec->islocked())
prec->setislocked(adesk::kfalse);
prec->close();
}
delete piterator;
playertable->close();
的时候 选择的结果是正确的
可是当加入上面的//if(prec->isfrozen())
//prec->setisfrozen(adesk::kfalse);后选择集却变成了该层的所有的实体,不知道为什么//if(prec->isfrozen())
//prec->setisfrozen(adesk::kfalse);会影响选择的结果。 期待帮助。


所有的时间均为北京时间。 现在的时间是 02:00 PM.