zjh2785 发表于 2017-11-4 19:11:00

插入外部文件中的块到当前文档

我在网上看见的一段代码,目的是插入外部文件的块,
我测试之后发现有异常,CAD命令行提示“块 b43000 参照本身"       //文中的mDoc、mDb为当前活动文档的
       public void InsertBlock ( )
       {
         using (Database blkDb = new Database(false, true))
         {
               blkDb. ReadDwgFile("c:\\a.dwg", System. IO. FileShare. Read, true, null);
               blkDb. CloseInput(true);
               using (DocumentLock docLock = mDoc. LockDocument( ))
               {
                   using (Transaction tr = mDoc. TransactionManager. StartTransaction( ))
                   {
                     ObjectId idBtr = mDb. Insert("b43000", blkDb, false);//执行到这里的时候出现异常:eSelfReference
                     BlockTable bt = (BlockTable) tr. GetObject(mDb. BlockTableId, OpenMode. ForRead);
                     BlockTableRecord btr = (BlockTableRecord) tr. GetObject(
                           bt , OpenMode.ForWrite);
                     using (BlockReference bref = new BlockReference(new Point3d(0, 0, 0), idBtr))
                     {
                           btr. AppendEntity(bref);
                           tr. AddNewlyCreatedDBObject(bref, true);
                     }
                     tr. Commit( );
                   }
               }
         }
       }
页: [1]
查看完整版本: 插入外部文件中的块到当前文档