我用 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);会影响选择的结果。 期待帮助。 |