CAD的DXF之C#netDxf解析
CAD的DXF之C#netDxf解析
接到DXF⽂件解析任务后,就在什么都有的万能互联⽹上,得顺利还好,不顺利的话,看10多篇博⽂,下载⼗多个例⼦都没能到合适⾃⼰要的。很是折腾。
以下为DXF⽂件格式的解析,也能说是DXF数据的提取,得到DXF的数据后,爱什么的就什么的。
数据提取,肯定要有个规范的数据格式。有到官⽅⽂档,就基本不需要看其他的资料,看看以下的链接就好。
数据格式知道了,那就完成了?
当然可以这么做,但你得有10天,半个⽉的时间去深⼊研究。虽然说直线很简单,但直线有很多类型,⽐如:样条曲线,多线段等。说实话硬是肝,也能弄。但容易漏掉⼀些细节,导致解析不全。故不推荐肝,当然我在没有熟悉netDxf之前,确实有肝过⼏天,⼀⾏⼀⾏的读取,判断等等。很磨练⼈,,,
netDxf是个开源的DXF⽂件解析⼯具,源码链接如下:
这个⽹站都是英⽂,好怕
别怕,不管⿊猫⽩猫抓到耗⼦就是好猫,怕它做肾,只要能把源码下载下来,得到DLL,其他什么都没事。
就分三步,如下:
1、Code
2、Downlod ZIP
3、等待下载完成
还有个偷懒的办法,使⽤NuGet,项⽬右键,按着下⾯的图⽚,⼀步⼀步来即可。当然的,得有外⽹,没外⽹,这个⽅法忽略。
由于我已经下载,也就没有点开(点击5的位置),故上图的“6”是空⽩,点击5后会有下载按钮,点击下载后,想着静静,等待加载完成就好,就能直接在代码⾥使⽤。
以上和标题说的有出⼊,不符。⽆关的说太多了?
但会了之后,DXF的解析确实也就,想要什么就拿什么。开始我也是不相信的,这就看吧:
准备⼯作就不多说:
1、加载DXF⽂件:(就⼀⾏代码)
DxfDocument dxfDocument = DxfDocument.Load(dxfFileFullPath);
dxfFileFullPath:为DXF⽂件的完整路径
2、你想要什么?圆、样条曲线、标注?
2.1、解析圆的数据:
2.1.1、打开官⽅⽂档⽹站,去圆,图形对象是ENTITIES 段
2.1.2、通过netDxf⼯具读取圆的参数
IEnumerable<netDxf.Entities.Circle> circle =
(IEnumerable<netDxf.Entities.Circle>)dxfDocument.Circles.GetEnumerator(); foreach (netDxf.Entities.Circle item in circle)
{
item.Center.X.ToString();//圆⼼X
item.Center.Y.ToString();//圆⼼Y
item.Radius.ToString();//圆半径
}
dxf文件怎么打开圆的所有参数,开源F12查看Circle,即可,如:
namespace netDxf.Entities
{
public class Circle : EntityObject
{
public Circle();
public Circle(Vector3 center, double radius);
public Circle(Vector2 center, double radius);
public Vector3 Center { get; set; }
public double Radius { get; set; }
public double Thickness { get; set; }
public override object Clone();
public List<Vector2> PolygonalVertexes(int precision);
public LwPolyline ToPolyline(int precision);
public override void TransformBy(Matrix3 transformation, Vector3 translation);    }
}
2.2、解析样条曲线数据:不说太多,⼀样的⽅法,看 SPLINE;
2.7、获取标注:不说了,⼀样的⽅法,看 DIMENSION;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。