实体发布到模型空间
AcDbObjectId CDwgDataBaseUtil::PostToModelSpace(AcDbEntity *pEnt, AcDbDatabase *pDb) {if (pEnt == NULL) {
return AcDbObjectId::kNull;//空指针
}
AcDbBlockTable *pTable;//块表
AcDbBlockTableRecord *blkTblRec;//模型空间记录
AcDbObjectId objId;//对象ID
pDb->getBlockTable(pTable, AcDb::OpenMode::kForRead);
//从数据库pDb中获取块表(block table),并将其存储在变量pTable中。这个操作使用只读模式。
pTable->getAt(ACDB采用MODEL采用SPACE, blkTblRec,AcDb::OpenMode::kForWrite);
//在块表(block table)中获取模型空间的记录,并将其存储在变量blkTblRec中。这个操作使用写入模式。
pTable->close();//关闭块表(block table)
Acad::ErrorStatus status=blkTblRec->appendAcDbEntity(objId,pEnt);
//在模型空间记录(block table record)中追加实体。如果操作成功,则返回状态码Acad::eOk;否则,返回其他状态码。
if (status != Acad::eOk) {
blkTblRec->close();
delete pEnt;
pEnt = NULL;
return AcDbObjectId::kNull;
}
blkTblRec->close();
pEnt->close();
return objId;
}
页:
[1]