ObjectARX学习笔记(二十七)---如何拷贝将一个AcDbDatabase拷贝到另一张dwg里面
<pre name="code" class="cpp">Acad::ErrorStatus insert(
const AcGeMatrix3d& xform,
AcDbDatabase* pDb,
bool preserveSourceDatabase = true
);
Parameters
Parameters Description
const AcGeMatrix3d& xform Input transformation matrix applied to all objects being inserted
AcDbDatabase* pDb Input pointer to database to insert from
bool preserveSourceDatabase = true Input to determine whether the source database pDb will be left intact
Description
Inserts the Model Space of the database pointed to by pDb into the Model Space of the database invoking the insert() function. All objects being inserted have the xform matrix passed into their transformBy() function during the insertion process.
The preserveSourceDatabase argument determines whether the source database pDb is left intact or not. The default value of the argument is true. In that case, objects from the source database are copied to the destination database and the source database is not changed. If the caller passes false for this argument, objects from the source database could be physically moved into the destination database. The latter runs faster, but it leaves the source database dependent on the destination database. The caller should make sure that the source database is deleted either immediately or at least before the destination database is deleted.
When preserveSourceDatabase is false, the deep clone context will be AcDb::kInsert during the cloning that occurs during AcDbDatabase::insert(). When preserveSourceDatabase is true, the deep clone context will be AcDb::kInsertCopy during the cloning that occurs during AcDbDatabase::insert().
Returns Acad::eOk if operation is successful.
代码如下:
将pFromDataSrc拷贝到pToDataDes;
AcDbDatabase *pFromDataSrc;
AcDbDatabase *pToDataDes;
pToDataDes->insert(AcGeMatrix3d::kIdentity,pFromDataSrc);