CAD插入一个数据库

时间:2022-12-11 17:16:44

要保存一个数据库,可以使用 McDbDatabase::saveAs() 函数。


如果两个数据库合并时发生冲突(例如两个数据库有相同的线型名),则在控件中使用目标数据库的数据。


下面的函数与标准的图形插入命令等价:


Mcad::ErrorStatus McDbDatabase::insert(McDbObjectId& blockId, LPCTSTR pBlockName, McDbDatabase* pDb);


Insert function


作用:将一个数据库复制到调用这个成员函数的数据库中。


接口Mcad::ErrorStatus insert(

  McDbObjectId & blockId,

           LPCTSTR pszBlockName,

           McDbDatabase* pDb,

           bool preserveSourceDatabase = true,

           bool isUpdataSameNameBlock = true);


参数


名称 说明
blockId

返回新插入的图块表记录id

pszBlockName

新插入的图块表记录名,图块为空时,就把文件中所有图块都引进到当前图纸中

pDb

插入的数据库指针

preserveSourceDatabase

暂没使用

isUpdataSameNameBlock

如果插入的数据库的图块名与当前数据库的图块名同名,需要不需要重新更新该图块


返回值:如果成功返回Mcad::eOk,如果传递的数据非法则返回Mcad::eInvalidInput。


参考例程


AcDbDatabase db(Mdesk::kFalse );
     if( db.readDwgFile( sBlkFileName ) != Acad::eOk )
     {
      return FALSE;
     }
     if ( pDatabase->insert( blkRecId, sBlkName, &db ) != Acad::eOk )
     {
      return FALSE;
     }


这个函数将实体从输入数据库的模型空间复制到指定的块表记录中,同时返回新块表记录的ID。