obaby1221 发表于 2015-10-23 15:06:20

一个DWG追加到另外一个DWG,都是包含内容的


一个DWG追加到另外一个DWG,Wblock可否实现,书上代码可以实现新建一个DWG,然后复制进去,可是我两个DWG都是已有的图形,怎么实现?


edata 发表于 2015-10-23 22:21:08

这个是个混合区,不知道你所用那种语言,什么方式,不标明,很难说清楚。。

鱼与熊掌 发表于 2015-10-24 17:14:29

Document.Database->获取他的数据库.

鱼与熊掌 发表于 2015-10-24 17:16:01

      /// <summary>
      /// 从源数据库复制块到指定的数据库.
      /// </summary>
      /// <param name="sourceDb"></param>
      /// <param name="db"></param>
      /// <param name="blockName"></param>
      /// <param name="bReplace"></param>
      /// <returns></returns>
      public static ObjectId importBlock(Database sourceDb, Database db, string blockName, bool bReplace,DuplicateRecordCloning Cloing = DuplicateRecordCloning.Replace)
      {
            //返回Id
            ObjectId destId = ObjectId.Null;
            //对照关系
            IdMapping idmap;
            using (Transaction sourceTr = sourceDb.TransactionManager.StartTransaction())
            {
                //块表
                BlockTable sourceBt = sourceTr.GetObject(sourceDb.BlockTableId, OpenMode.ForRead) as BlockTable;
                if (sourceBt.Has(blockName))
                {
                  ObjectId sourceId = sourceBt;
                  idmap = new IdMapping();
                  sourceDb.WblockCloneObjects(new ObjectIdCollection(new[] { sourceId }), db.BlockTableId, idmap, Cloing, false);
                  destId = idmap.Value;
                  idmap.Dispose();
                }
                //销毁对象
                sourceBt.Dispose();
                sourceTr.Commit();
            }
            //返回
            return destId;
      }

obaby1221 发表于 2015-10-26 09:27:15

db.WblockCloneObjects(ids,blkrec.ObjectId, map, DuplicateRecordCloning.Ignore, false);
实现了,可是是在 db 中,怎么转化到当前文档显示呢?
                           
页: [1]
查看完整版本: 一个DWG追加到另外一个DWG,都是包含内容的