(1)
一直想实现把dwg文件,后台读取,得到其中的实体,然后加入到其他的dwg文件中,一直不能实现。
后来发现,用ReadDwgFile讲dwg文件后台读取到数据库中,其实体就和该数据库关联,即使克隆也不行。
两个数据库是独立的,一个数据库不能添加另一个数据库的实体。
pDb->readDwgFile("E://draw.dwg");
仅仅是把外部DWG图形读入到数据库对象pDb中,它并不是当前数据库,所以你看不到它,但是你可以对它操作,也可以遍历其中的实体,处理后,然后存盘,这些过程用户都看不到。
如果你希望把外部图形读入到当前数据库,显示,那么你应该用:
对当前数据库用AcDbDatabase::insert(...)插入进来,然后实例AcDbBlockReference对象引用这个块定义,添加到模型空间后才会显示。
string name = System.IO.Path.GetFileNameWithoutExtension(m_strdwgFile);
//得到图例文件内 模型空间下的所有实体
using (Autodesk.AutoCAD.ApplicationServices.DocumentLock docLock = CADFuction.Doc.LockDocument()) //在非模态下打开模型空间前要解锁
{