需求来源:
工作中,客户提供一张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<mylines> dxfLines = new List<mylines>();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));}