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