![cd900f2602c8d38ba8991cf8e22bea0c.png](https://i-blog.csdnimg.cn/blog_migrate/181634c2566a97657baaad92814ecab4.jpeg)
# 0 引言
需求分析:可以用作自动出图时加载需要的块,如加入图框、或者在多段线端点和中点插入你制作好的块。
思路:
a. 读取块,将块包含的所有数据信息读取
b. 插入到指定位置
![a1703b9aa01b974daf5cfab44752334a.png](https://i-blog.csdnimg.cn/blog_migrate/fe3a03266ca3278c2bbc0410dd85a6b7.png)
# 1. 代码分析
首先我们需要指定插入位置
这个位置可以根据需求来定,你也可以按读取的坐标批量来插入
这里通过选择点的方式来插入
![a5391814603d1ff3096ffce1d7455f48.png](https://i-blog.csdnimg.cn/blog_migrate/7a13f722f9fcab5c59d2932788dbb26b.png)
接下来就是读取块,AutoCAD .Net API 提供了 Database.ReadDwgFile 来实现dwg读取
![aa36a4ca19679e874579bb9a00e23a2d.png](https://i-blog.csdnimg.cn/blog_migrate/248c004e5f7156df9e20e812c771d447.png)
读取之后立马调用CloseInput(true)关闭文件
![782de042af7e83547d2e02d0ca84a096.png](https://i-blog.csdnimg.cn/blog_migrate/b10981822f9c976b4ce9c0016aaff91c.png)
然后就是插入块,同样AutoCAD .Net API 提供了 Database.Insert来实现
![3c598022e5ca9f89d8dfddd0198d51d2.png](https://i-blog.csdnimg.cn/blog_migrate/c1b9e3bf80098ebfc7dd68dab67733f1.png)
![96c03eb5c6a7a56b4541f0cb166a089e.png](https://i-blog.csdnimg.cn/blog_migrate/ed89c619eb0f05b5e4c0c7972297aff9.png)
上面主要逻辑清楚了以后,剩下的就是一些以前的东西了
![941bad2ef84ea2a5b12734459b7814fe.gif](https://i-blog.csdnimg.cn/blog_migrate/82d1b19cc5be81410d2d80e4795e15ac.gif)
我们可以将其封装成一个方法,直接调用即可
封装如下:
/// <summary>
通过命令调用,传入实参
[CommandMethod("InsertBlock")]
原文请关注公众号:数据智能笔记
http://weixin.qq.com/r/L0yosLHE2uylrfXT9xk9 (二维码自动识别)