日常记录
//获得指定块的块表记录
AcDbDatabase *pDb = NULL;
AcDbObjectIdArray arrid;
pDb = acdbHostApplicationServices()->workingDatabase();
LPCTSTR szBlkTblRcdName = _T("SMENTBLOCK0");
AcDbBlockTableRecordPointer pBlkTblRcd(szBlkTblRcdName, pDb, AcDb::kForRead);
if (pBlkTblRcd.openStatus() != Acad::eOk)
return ;
AcDbBlockTableRecordIterator* pBTRIter = NULL;
Acad::ErrorStatus es = pBlkTblRcd->newIterator(pBTRIter);
if (Acad::eOk != es)
return ;
//绑定智能指针
std::unique_ptr<AcDbBlockTableRecordIterator> apBTRIter(pBTRIter);
AcDbObjectId id;
ads_name ent;
ADS_HANDLE hdl;
for (apBTRIter->start(); !apBTRIter->done(); apBTRIter->step())
{
AcDbEntity* pTempEnt = NULL;
es = apBTRIter->getEntity(pTempEnt, AcDb::kForRead);
if (Acad::eOk != es)
continue;
id = pTempEnt->objectId();
arrid.append(id);
if (acdbGetAdsName(ent, id) == Acad::eOk)
{
ent_ent_to_hdl(ent, hdl);
}
pTempEnt->close();
}