1.在cad2012环境下:

须引用objectarx开发包

PromptPointResult ppr = ed.GetPoint("请选择插入点:"); 
 
Point3d pt = ppr.Value; //这里获得插入点
 
utility.WriteToEditor(pt.ToString()); 
 
blockPath = "b_sample.dwg";
using (Database blkDb = new Database(false, true)) 

 
    //read drawing 
 
    blkDb.ReadDwgFile(blockPath , System.IO.FileShare.Read, true, null); 
 
    blkDb.CloseInput(true); 
 
    using (DocumentLock docLock = doc.LockDocument())//多文档要先这样,否则报至命错误 
 
    { 
 
        using (Transaction t = doc.TransactionManager.StartTransaction()) 
 
        { 
     string name=“aa”;//aa是不与blockPath文件中的任何块重名的字符串
            //insert it as a new block 
 
            ObjectId idBTR = doc.Database.Insert(aa, blkDb, false); 
 
            //create a ref to the block 
 
            BlockTable bt = (BlockTable)t.GetObject(doc.Database.BlockTableId, OpenMode.ForRead); 
 
            BlockTableRecord btr = (BlockTableRecord)t.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite); 
 
            using (BlockReference bref = new BlockReference(pt, idBTR)) //pt是一个Point3D坐标,这里是插入进当前dwg文件中
 
            { 
 
                btr.AppendEntity(bref); 
 
                t.AddNewlyCreatedDBObject(bref, true); 
 
            } 
 
            t.Commit();   就是这样  谢谢
       }
   }
}

2.脱离CAD环境下

需引用TDWGNET开发包

using (new Services())
             {
                 using (Database db = new Database(true, true))
                 {
                     using (Transaction ts = db.TransactionManager.StartTransaction())
                     {
                         using (BlockTable bt = ts.GetObject(db.BlockTableId,OpenMode.ForWrite) as BlockTable)
                         {
                             BlockTableRecord btr1 = new BlockTableRecord();
                             Database odb = new Database(false, false);
                             odb.ReadDwgFile("aaa.dwg", FileOpenMode.OpenForReadAndAllShare, true, null);
                             odb.CloseInput(true);
                             ObjectId objid = db.Insert("aa", odb, false);//这里插入进当前的dwg文件了
                             BlockTableRecord btr = new BlockTableRecord();//这里是插入另一个块
                             btr.Name = "000";
                             Circle c = new Circle(new Point3d(0, 0, 0), Vector3d.ZAxis, 100);
                             btr.AppendEntity(c);
                             ts.AddNewlyCreatedDBObject(c, true);
                             bt.Add(btr);
                             ts.AddNewlyCreatedDBObject(btr, true);
                         }
                         ts.Commit();
                     }

//using (Transaction ts = db.TransactionManager.StartTransaction())
                     //{
                     //    using (BlockTable bt = (BlockTable)ts.GetObject(db.BlockTableId, OpenMode.ForRead))
                     //    {
                     //        BlockTableRecord btr=ts.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
                     //        BlockReference br = new BlockReference(new Point3d(0, 0, 0), bt["aa"]);//这里是插入块于当前的dwg中
                     //        btr.AppendEntity(br);
                     //        ts.AddNewlyCreatedDBObject(br, true);
                     //    }
                     //    ts.Commit();
                     //}
                     db.SaveAs(path + "\\test.dwg", DwgVersion.Current);//保存文件
                 }
             }
        }

c# cad中插入另一个dwg的图块相关推荐

  1. winform界面嵌入dwg图纸_c# cad中插入另一个dwg的图块

    1.在cad2012环境下: 须引用objectarx开发包 PromptPointResult ppr = ed.GetPoint("请选择插入点:"); Point3d pt ...

  2. C#实现在CAD图纸中插入另一个DWG图块的代码

    C#实现在CAD图纸中插入另一个DWG图块的代码PromptPointResult ppr = ed.GetPoint("请选择插入点:"); Point3d pt = ppr.V ...

  3. CAD中如何把一个DWG文件里的块插入到另一个DWG中

    今天来给大家聊聊AutoCAD中如何把一个DWG文件里的块插入到另一个DWG文件中. 在CAD中提供了多种方法插入图块,最常用的方法是插入(I),可以插入当前图中的图块或者某个DWG文件作为图块,如果 ...

  4. CAD中插入外部参照字体会变繁体_知道这些技巧-轻松攻克CAD所有困难

    28.如何使图形只能看而不能修改? 要是自己的图把它全部图层锁定就行了,打开不会变的:如果以后不想用了,就把里面所有东西都炸碎也可以:还有一种方法是用lisp语言写个加密程序,一旦运行后,图就只能看, ...

  5. ai中如何插入签名_怎么将CAD中插入图片的多余部分抠掉?如何设置透明效果?...

    下面是本公众号文章分类目录,点击标题文字可打开分类文章列表: CAD安装卸载  异常.退出  文件及输入输出  基本操作技巧  各种设置及相关问题  界面和显示相关问题  快捷键  视图设置和调整   ...

  6. CAD中插入外部参照字体会变繁体_CAD插入外部参照失败?

    cad也疯狂 这几天在群里看到有人问这样的问题 在CAD里插入一个文件作为外部参照的时候会失败.或者什么提示都没有,有时候命令行会提示:"** 错误: "XXX"已经是当 ...

  7. CAD中插入外部参照字体会变繁体_为什么CAD插入外部参照时会提示错误无效?

    本公众号文章分类索引,点击可打开分类文章列表: 安装 文件 异常.退出 复制粘贴 基本操作 快捷键 设置 界面 捕捉 视图 坐标定位 选择.组 图层 颜色 表格 线型 二维绘图 多段线 填充 图块 标 ...

  8. CAD中插入外部参照字体会变繁体_为什么CAD图纸作为外部参照插入后有些文字消失?...

    下面是本公众号文章分类目录,点击标题文字可打开分类文章列表: 安装卸载  异常.退出  文件及输入输出  基本操作技巧  设置及相关问题  界面和显示  快捷键  视图设置 选择及组 坐标输入.定位  ...

  9. tfw文件如何导入cad_基于TFW影像坐标信息在CAD中插入正射影像的方法探讨

    基于 TFW 影像坐标信息在 CAD 中插入正射影像的方法探 讨 詹艳春 * [摘 要] 数字正射影像的应用越来越广泛和频繁,本文介绍了以 LISP 设计制 作一个批量加载正射影像程序,该程序能自动把 ...

最新文章

  1. python程序设计与科学计算pdf_用Python做科学计算 pdf版
  2. 如何使java中double类型不以科学计数法表示
  3. Got error -1 when reading table
  4. 爬虫 spider07——爬取腾讯娱乐新闻
  5. day45-前端CSS
  6. 清明出游,在高速上堵了16个小时。
  7. 等高线地图_高中地理——每日讲1题(北美洲的气候、等高线的阅读)
  8. iOS获取camera的yuv数据
  9. 数据库备分复制到另一台机器
  10. 打包 pyqt5_基于Pyqt5的简单电影搜索工具,Python让你3秒搜电影
  11. 会计需要哪方面的计算机知识,学会计需要哪些知识
  12. UE4/UE5 导入abc文件总结
  13. java 开三次根号_java里实现开根号
  14. 刘万祥老师讲如何利用条件格式色阶制作数据地图
  15. multienant oracle_OraCleen智能牙刷:您牙齿的高颜值智慧伙伴
  16. MongoDB-day1:MongoDB安装使用、python操作、虚拟环境、windows下pip豆瓣源配置
  17. 大数据常用的开发工具
  18. 读书笔记-在工作中保持充沛的体力
  19. Notepad快捷键Shift+Enter失效,无法启用向前搜索。
  20. 数据分析师年薪50w起 人才缺口极大

热门文章

  1. 运放脉冲宽度放大_创鑫激光纳秒级脉冲激光器应用于精细焊接
  2. 服务器系统盘40g是什么,云服务器 40g系统盘
  3. Shadowing, Overriding, Hiding and Obscuring
  4. 做好项目成本核算需要注意哪些事项
  5. 失业的程序员(七):梦想和胸襟
  6. 基于QT的C++的坦克大战游戏
  7. 时尚穿越html5游戏,时尚穿越之旅
  8. 共享三年嵌入式项目资料(源码+实物图+原创)(申精帖)
  9. python动态页面元素爬取_Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过浏览器审查元素解析真实网页地址...
  10. 7.2影像云阅片【斯纳克PACS医学影像云平台用户手册】