|
- 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;
- }
复制代码 |
|