admin 发表于 2024-3-6 11:44:10

实体发布到模型空间

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]
查看完整版本: 实体发布到模型空间