CAD的DXF之C#netDxf解析

接到DXF文件解析任务后,就在什么都有的万能互联网上找,找得顺利还好,不顺利的话,看10多篇博文,下载十多个例子都没能找到合适自己要的。很是折腾。

以下为DXF文件格式的解析,也能说是DXF数据的提取,得到DXF的数据后,爱什么的就什么的。

数据提取,肯定要有个规范的数据格式。有找到官方文档,就基本不需要看其他的资料,看看以下的链接就好。

DXF格式官方说明:http://docs.autodesk.com/ACD/2011/CHS/filesDXF/WSfacf1429558a55de185c428100849a0ab7-5f35.htm

数据格式知道了,那就完成了?

当然可以这么做,但你得有10天,半个月的时间去深入研究。虽然说直线很简单,但直线有很多类型,比如:样条曲线,多线段等。说实话硬是肝,也能弄。但容易漏掉一些细节,导致解析不全。故不推荐肝,当然我在没有熟悉netDxf之前,确实有肝过几天,一行一行的读取,判断等等。很磨练人,,,

netDxf是个开源的DXF文件解析工具,源码链接如下:

解析工具netDxf源代码:https://github.com/haplokuon/netDxf

这个网站都是英文,好怕!!!

别怕,不管黑猫白猫抓到耗子就是好猫,怕它做肾,只要能把源码下载下来,得到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();//圆半径
}

圆的所有参数,开源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;

是不是DXF文件解析也没有说明的。

到了这里,是不是DXF想要什么就拿什么,对吧,没错吧,应该没错的。

 

  • 24
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值