需求来源:
工作中,客户提供一张CAD导出的dxf 档案,然后需要机器人将其转成点位,走到对应的位置。
下面介绍一下dxf档案到底是什么?以及语法规则。
dxf 格式介绍:DXF 格式
dxf LINE 格式。
其实上述文档也介绍了如何读取dxf 但是为了快速实现该功能。我们直接使用别人做好的轮子。
netDxf :就是本文要使用的一个库,安装版本:2.2.01
为了可以快速的让大家读取出来数据,代码尽可能简陋
命名空间引用:
using netDxf;
创建两个类:
- public class points
- {
- public points(double x, double y, double z)
- {
- this.x = x;
- this.y = y;
- this.z = z;
- }
- public points()
- {
-
- }
-
- public double x { get; set; }
- public double y { get; set; }
- public double z { get; set; }
-
-
- }
-
- public class mylines
- {
- public mylines(points start, points end)
- {
- this.start = start;
- this.end = end;
- }
-
- public points start { get; set; }
- public points end { get; set; }
- }
-
读取lines 的数据:
- List
dxfLines = new List(); - points startP = new points();
- points endP = new points();
- DxfDocument dxf = DxfDocument.Load(@"C:\LS087多孔座(1).dxf");
- foreach (netDxf.Entities.Line l in dxf.Lines)
- {
- startP=new points(l.StartPoint.X, l.StartPoint.Y, l.StartPoint.Z);
- endP=new points(l.EndPoint.X, l.EndPoint.Y, l.EndPoint.Z);
- dxfLines.Add(new mylines(startP, endP));
- }