TA的每日心情![](source/plugin/dsu_paulsign/img/emot/kx.gif) | 开心 昨天 15:23 |
---|
签到天数: 69 天 [LV.6]常住居民II
管理员
- 积分
- 2704
|
cad.exe已输出了了两个purge函数,只是没在头文件中列出来:
Acad::ErrorStatus purgeDatabase(AcDbDatabase *pDb);
Acad::ErrorStatus purgeObjectsFromDatabase(AcDbDatabase *pDb,const AcDbObjectIdArray &Objs);
用之前声明一下就可以了,它们从acad.lib中输入,几乎所有版本的cad都有。[code]acdbDatabase::purge()
void PurgeBlock(AcDbDatabase *pDb)
{
AcDbBlockTable *pBlockTable;
pDb->getSymbolTable(pBlockTable, AcDb::kForRead);
AcDbBlockTableRecord *pBlockTableRecord;
pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,
AcDb::kForWrite);
pBlockTable->close();
AcDbBlockTableRecordIterator *pBlkRcdItr; //块表记录浏览器
pBlockTableRecord->newIterator(pBlkRcdItr);
AcDbObjectId id;
AcDbObjectIdArray idArr;
for(pBlkRcdItr->start();!pBlkRcdItr->done();pBlkRcdItr->step())
{
pBlkRcdItr->getEntityId(id);
idArr.append(id); //向数组添加实体
}
pDb->purge(idArr); //清理垃圾
pBlockTableRecord->close();
delete pBlkRcdItr;
}[/code] |
|