基于C#实现DXF文件读取显示
工控领域的制图软件仍然以AutoCAD为主,很多时候我们希望上位机软件可以读取CAD的图纸文件,从而控制设备按照绘制的路线进行运行,今天给大家分享的是如何使用C#读取DXF文件并进行显示。
公众号:【dotNet工控上位机:thinger_swj】
1. 准备工作
如果想通过C#读取DXF文件,首先需要使用AutoCAD生成一些DXF文件,接着使用VS2019创建一个Windows窗体应用。
2. 安装netDXF包
1、打开VS的工具 >> NuGet包管理器 >> 管理解决方案的NuGet程序包;
![](https://pic4.zhimg.com/80/v2-efae77b3bbfd3767ca134bda8a7e57b7_720w.jpg)
2、在浏览选项卡中,搜索框中输入“netDXF”,得到结果如下图所示:
![](https://pic3.zhimg.com/80/v2-a02c92aad02ed97c25ec2289c320fdfa_720w.jpg)
3、选择安装的项目,并单击安装,注意netDXF安装包的.net framework版本。
![](https://pic1.zhimg.com/80/v2-a8648ab615c286f4661e1695f3ddba30_720w.jpg)
3. 读取DXF文件
(1)新建一个DxfDocument对象,在打开文件的按钮事件中,调用Load方法读取选择路径下的dxf文件:
![](https://pic4.zhimg.com/80/v2-c2e359ed922df81a8a58fa16f3fbd9bf_720w.jpg)
(2)加载完成后将文件中的Line、Arc、Circle信息显示在DataGridView中:
![](https://pic4.zhimg.com/80/v2-7d76192f40b8ea6c02342a80b60493af_720w.jpg)
(3)显示结果:
![](https://pic1.zhimg.com/80/v2-47a8563583a3c9c949d7b83b1b185604_720w.jpg)
4. 显示图形
(1) 界面上添加一个PictureBox控件,先绘制一下表格:
![](https://pic3.zhimg.com/80/v2-41e771659296aea5b0113cb784fe584e_720w.jpg)
(2) 绘制结果如下图所示:
![](https://pic4.zhimg.com/80/v2-933f4200ce53e1caaf8bc0cb60c09353_720w.jpg)
(3) 基于GDI+绘制Line:
![](https://pic3.zhimg.com/80/v2-dca44489d72e54363987a09f89d675c2_720w.jpg)
(4) 基于GDI+绘制Arc:
![](https://pic3.zhimg.com/80/v2-5346cb6097fadc9fab268814d194fed2_720w.jpg)
(5) 基于GDI+绘制Circle:
![](https://pic3.zhimg.com/80/v2-7f2d4aaf23267b5e2447f0b55b9f9db2_720w.jpg)
(6) 显示结果:
![](https://pic2.zhimg.com/80/v2-e99935adb42e195cc34c4d33ecb3a399_720w.jpg)
5. 平移、放大、缩小
完成图形显示后,增加鼠标平移、放大及缩小功能,添加以下四个鼠标事件:
![](https://pic4.zhimg.com/80/v2-61050ba642663474627226aaddb2e6af_720w.jpg)
(1)鼠标MouseDown事件:
![](https://pic3.zhimg.com/80/v2-73d40f3104fc90ae2d248aa8d44fd9ae_720w.jpg)
(2)鼠标MouseUp事件:
![](https://pic4.zhimg.com/80/v2-0b4b8c179e074eaffe05c4ce6e3213b3_720w.jpg)
(3)鼠标MouseMove事件:
![](https://pic1.zhimg.com/80/v2-d76f264d168417fe0a4437518945d270_720w.jpg)
(4)鼠标MouseWheel事件:
![](https://pic3.zhimg.com/80/v2-f12673494211c5d016dbf8aacc0b0c06_720w.jpg)