DXF文件结构

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

一.Dxf文件简介

就是CAD生成的一种文件格式, 使用非常普遍. 以字符形式存储(二进制形式存储也有, 但少用). 例如机械加工的设备中, 可以导入dxf文件, 解析文件, 然后加工出该dxf文件中的有的零件.

 

二. Dxf文件格式

2.1. Dxf文件中的最小单元

Dxf文件的最小单元是”码---值”. 码和值各占一行.  代表某种意思;  代表这个意思

例如

/////////////////////////////////////////////

2                                            //2, 这个在这里的意思代表段名

HEARER                               //这里,段名的值是” HEARER”

/////////////////////////////////////////////

 

同一个在不同的上下文代表不同的意思.

 

 

2.2. Dxf文件的整体结构

dxf文件就是由这7个段组成.

 

2.3. dxf文件中的字符格式结构

///////////////////////////////////////////////////////////////////////////

0                                            //0--SECTION码值代表"段开始"

SECTION

2                                            //2--段名码值代表"段名";这里是HEADER

HEADER                              //例如2--HEADER (HEADER);2--BLOCKS(BLOCKS)

                                          //各段的不同的"--"

...

...

0                                            //0--ENDSEC码值代表"段结束"

ENDSEC

0                                            //0--SECTION码值代表"段开始"

SECTION

2                                            //2--段名码值代表"段名";这里是CLASSES

CLASSES                              //例如2--HEADER (HEADER);2--BLOCKS(BLOCKS)

                                          //各段的不同的"--"

...

...

0                                            //0--ENDSEC码值代表"段结束"

ENDSEC

...

......

其他段

......

0                                            //0--EOF码值代表"整个文件结束"

EOF

///////////////////////////////////////////////////////////////////////////

 

其中每个段在文件中的结构都是这样:

///////////////////////////////////////////////////////////////////////////

0                                            // 0--SECTION码值代表"段开始"

SECTION

2                                            // 2--段名码值代表"段名";这里是HEADER

HEADER                               // 例如2--HEADER (HEADER); 2--BLOCKS(BLOCKS)

                                          //各段的不同的"--"

...

...

0                                            // 0--ENDSEC码值代表"段结束"

ENDSEC

///////////////////////////////////////////////////////////////////////////

 

2.4. ENTITIES 段

ENTITIES 段包含图形数据. 例如LINE 直线, ARC圆弧


2.4.1 ENTITIES段中图元数据说明

看图元数据(LINE和ARC)在文件中的格式

////////////////////////////////////////////////////////////////////////////////////////////////

0                                                               // 0--图元码值代表"新图元开始"

LINE                                                         //0--LINE代表直线

5                                                               // 5--代表"句柄"

D640

8                                                               // 8--代表"图层名"

BOT-AL-FRAME

6                                                               //具体其他的"码值"意思可参考DXF的说明文档,因为太多了

CONTINUOUS

10

2232.4029275168591

20

1056.158312627997

30

0.0

11

2256.9029153003012

21

1056.158315364697

31

0.0

0                                                               //0--图元码值代表"新图元开始"       

ARC                                                         //0--ARC代表圆弧

5                                           

D641

8

BOT-AL-FRAME

6

CONTINUOUS

10

1870.4529275168611

20

1059.908312627997

30

0.0

40

3.750000000000032

50

138.18968510434721

51

270.0

////////////////////////////////////////////////////////////////////////////////////////////////

 

2.4.2 LINE和ARC图元


LINE图元中, 包含两个端点的坐标值; ARC图元中包含圆心, 半径, 起始角度等. 每中图元都有它对应的”码—值”数据.


2.5. 其他段

和ENTITIES段一样, 其他段也有它的数据和结构, 都可以参考DXF的说明文档来了解. 但是无论有多少段,这些段的结构式怎样的, 最小单元都是由的形式组成的.

 

三.解析DXF文件

3.1 解析


其实解析的最主要明白的就是dxf文件的最小单元是”码—值”, 然后文件里面的任何结构都是由”码—值”组成.


A.     读取一个”码—值”(也就是读取两行).

B.     判断”段”开始

C.     根据”段”类型, 进入对应的”段”解析函数.

D.     在进入”段开始”后, 要时刻判断”段结束”.

E.      在进入”段开始”后, 你要根据该段的结构去解析. 例如HEADER段的结构与ENTITIES段的结构是不一样的, HEADER包含了很多变量信息; 而ENTITIES段包含了图元信息, 而且不同的图元, 其结构也不一样(例如LINE和ARC).

所以你在解析不同的段甚至是图元时,你的解析流程可能都不一样.

 

3.2 图元的解析


我自己的实现中, 为了简单和通用性,在解析图元时, 我使用相同的结构来存储图元.就是在图元中, 我存储的是”,而不是对应图元具体结构值. 例如: LINE图元有两个端点的坐标,在解析过程中我只存储”10—”; “11—”;等等数据(形式存储).

这样的好处是, 在解析图元时,所有图元的数据结构是一样的, 只定义一个列表变量来存储即可.而且解析流程统一.

在得到各个图元的列表后,在根据图元的类型, 解析出具体的图形.把解析流程与图形结构分离.

         在其他段也有类似的解析, 都可以分离.

 

 

 

 

利用dxflib实现dxf文件的读写与可视化 dxflib是开源的读写dxf文件的库,在QCAD上可以直接下载(dxf作为一种通用的绘图文件格式,包含的信息量非常大,要去理解文件的内容也比较受苦,详细的解释在论坛里可以找到(使用dxflib库的优势在于它很好地简化了各部分的读写,代码可读性很强,同时配库只需要将压缩包下的src文件包含在目录中即可。在给导师做一个简易的CAD软件时用到了包括dxf文件的读写,利用MFC做可视化,还做了一个尺寸修改的交互。 阅读详情

相关推荐

CAD中的dxf文件解析(三):多段线篇

不想工作了,那就来写点文字吧!很久没更新,以至于自己都忘记了自己想要写的东西 1.前言 在前面的CAD中的dxf文件解析(二)中讲到了一些CAD的dxf文件解析点、线、圆弧、圆、块等的思路。下面提供链接: (二):https://blog.csdn.net/weixin_40196271/article/details/106431821 (一):https://blog.csdn.net/weixin_40196271/article/details/106411...

weixin_40196271的博客 1万+

dxf文件结构.pdf

dxf文件结构.pdf

用Python的ezdxf解析CAD图纸:从DXF文件结构到实体属性提取的完整指南

本文详细介绍了如何使用Python的ezdxf解析CAD图纸,从DXF文件结构到实体属性提取的完整指南。通过实战示例,展示了如何高效处理DXF文件,包括实体遍历、属性提取、坐标系转换等关键技术,帮助工程师和分析师实现CAD数据的自动化处理与分析。

weixin_30279315的博客 463

DXF文件解析

JAVA解析dxf文件,获取图形坐标数据。可以使用IDEA打开,修改解析文件路径。

DXF文件分析

本文转载自:http://cn.newmaker.com/art_16653.html 作者:昆明 翟系淞 随CAD与CAM技术的不断发展,DXF文件作为一种通用格式在CAD与CAM之间传递应用,但由于不同软件之间的结构或处理方式的差异,使得DXF文件在读取中经常会出现一些故障。现将DXF文件结构与表达关系分析如下,希望对需要处理DXF文件的读者有所帮助。 一、DXF文件结构 D...

weixin_30663471的博客 992

【CAD】【手把手带你写一个DXF&JAVA解析框架】01——DXF文件组码详细说明,清晰易懂

DWG格式数据是AutoCAD图形文件,内部工作格式,以二进制方式存储,格式不开源。 DXF格式是AutoCAD(Drawing Exchange Format) 绘图交换文件,主要作用就是用于与其他软件进行数据交互。 对外交互,说明格式标准稳定,并可解析,所以如果自己开发CAD文件的读写软件需要从.dxf文件入手。下面我们就一起来揭开.dxf文件格式的面纱 文末附DXF文件格式白皮书 一、数据结构 就如文本章节一般,任何数据内容都有一个格式让你去认识它,dwf文件数据结构简单,行递进式结构,.

Wonder ZH 8003

DXF文件结构与示意

DXF文件解析 DXF文件中几种主要数据的定义方法,以及数据的保存方式 各section的作用 TABLE用于保存各种类型数据的属性,相当于dxf中各种数据的元数据,如TABLE中的layer中保存各个图层的名字、ID、图形类型(线性或弧形)等等与图层有关的数据 图层 图层的属性保存在table中的layer中,具体开始的位置在table中的 0 TABLE 2 ...

greatathrun的博客 6762

DXF 格式详解

BLOCKS 段中始终出现三个空定义。即 *Model_Space、*Paper_Space 和 *Paper_Space0。这些定义在内部将模型空间和图纸空间的表示显示为块定义。第一个图纸空间布局的内部名称是 *Paper_Space,第二个是 *Paper_Space0,第三个是 *Paper_Space1,依此类推。

陨星落云的博客 7758

ezdxf开发者指南:深入理解DXF文件结构与API设计

ezdxf是一个功能强大的Python库,为开发者提供了读取、修改和创建DXF(绘图交换文件)的完整解决方案。无论你是CAD软件开发者还是需要处理工程图纸的技术人员,掌握ezdxf的核心概念和API设计都能显著提升工作效率。本文将带你深入探索DXF文件的内部结构,详解ezdxf的API设计理念,并通过实用示例展示如何高效操作DXF文件。 ## DXF文件结构解析:从基础到进阶 DXF文件本质上

gitblog_00919的博客 364

DXF官方帮助文件下载介绍:掌握DXF文件结构,提升图形数据操作能力

DXF官方帮助文件下载介绍:掌握DXF文件结构,提升图形数据操作能力 【下载地址】DXF官方帮助文件下载介绍 DXF文件格式是二维和三维图形数据交换的开放标准,广泛应用于设计和工程领域。本资源提供了DXF官方帮助文件,深入解析文件结构的各个组成部分,包括HEADER、CLASSES、TABLES、BLOCKS、ENTI...

gitblog_06785的博客 573

DXF官方帮助文件下载介绍

DXF官方帮助文件下载介绍 【下载地址】DXF官方帮助文件下载介绍 DXF文件格式是二维和三维图形数据交换的开放标准,广泛应用于设计和工程领域。本资源提供了DXF官方帮助文件,深入解析文件结构的各个组成部分,包括HEADER、CLASSES、TABLES、BLOCKS、ENTITIES、OBJECTS和THUMBNAI...

gitblog_06718的博客 774

CDxfFileWrite类,用CabLib创建DXF(绘图交换格式)文件

介绍   什么是DXF   绘图交换格式(DXF)文件允许在AutoCAD和其它程序进行图形交换。DXF文件即可以是ASCII格式也可以是二进制格式。 因为ASCII格式的DXF文件比二进制格式更加通用,所以CadLib使用ASCII的DXF格式。   什么是CadLib   CadLib不是计算机辅助设计(CAD)程序。它是创建用于CAD程序DXF文件的工具。它由两部分组成,一部分是用于

WELOVE20101的专栏 2234

深入解析DXF文件格式:从基础结构到实际应用

深入解析DXF文件格式:从基础结构到实际应用

2501_91537435的博客 7701

DXF文件详解

一个DXF文件由若干个组构成,每个组占两行,第一行为组的代码,第二行为组值。组代码相当于数据类型的代码,它由CAD图形系统所规定,而组值为具体的数值,二者结合起来表示一个数据的含义和值。例如,代码10代表一个点的X坐标,占一行,而其第二行4.5425则是点X坐标的具体数值,二者结合表示一点,其X坐标值为4.5425。 (1)组代码和组值的类型组代码为一个非负的不超过三位的整数,而组值由组代码的类型决定。例如: 代码0~9组值类型为字符型。 代码10~59组值类型为实型。 代码60~79组值类型...

ghhong1988的专栏 1万+

DXF文件格式白皮书

DXF文件格式白皮书 【下载地址】DXF文件格式白皮书 本开源项目提供了一份详尽的《DXF文件格式白皮书》,深入解析DXF文件数据结构和详细说明。DXF(Drawing Exchange Format)是计算机辅助设计(CAD)中常用的数据交换格式。白皮书涵盖了文件结构、数据类型、实体定义等核心内容,帮助用户全面理解...

gitblog_06760的博客 289

DXF文件解析G代码

格式和格式;ASCII具有可读性好的特点,但占用的空间较大;二进制格式则占用的空间小、读取速度快。由于AutoCAD是最流行的CAD系统,DXF也被广泛使用,成为事实上的标准。绝大多数都能读入或输出DXF文件DXF文件是由很多的“代码”和“值”组成的“数据对”构造而成,这里的代码称为“”(group code),指定其后的值的类型和用途。每个组码和值必须为单独的一行的。DXF文件被组织成为多个“段”(section),每个段以组码“0”和”开头,紧接着是组码“2”和表示段名的字符串(如HEADER)

qq_61899321的博客 2584

DXF参考手册中文版下载:助力DXF格式深入理解和应用

DXF参考手册中文版下载:助力DXF格式深入理解和应用 去发现同类优质开源项目:https://gitcode.com/ DXF参考手册中文版下载,提供全方位DXF格式解析,助您轻松掌握DXF文件结构和组成。 项目介绍 在现代设计与工程领域,DXF(Drawing Exchange Format)格式作为一种通用的绘图交换格式,被广泛应用于各种CAD软件中。为了帮助广大用户更好地理解和使用DXF格...

gitblog_06717的博客 869

经典资源DXF文件格式实例:助您深入理解CAD图形交换

经典资源DXF文件格式实例:助您深入理解CAD图形交换 【下载地址】经典资源DXF文件格式实例 探索DXF文件格式的奥秘,本开源项目为您精心准备了经典的DXF文件实例资源。DXF(Drawing Exchange Format)作为一种开放的图形交换格式,广泛应用于CAD程序之间的数据共享。本资源包含丰富的DXF格式示例...

gitblog_06713的博客 732
上一篇: CMenu 菜单操作
下一篇: 分割含有中英文的字符串
小大小丑
博客等级 码龄18年 483粉丝 425原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值