DXF文件结构
来源:互联网 发布:只有我知上海见面会 编辑:程序博客网 时间:2024/05/22 01:53
一.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—值”;等等数据(以”码—值”形式存储).
这样的好处是, 在解析图元时,所有图元的数据结构是一样的,只定义一个”码—值”列表变量来存储即可.而且解析流程统一.
在得到各个图元的”码—值”列表后,在根据图元的类型,解析出具体的图形.把解析流程与图形结构分离.
在其他段也有类似的解析, 都可以分离.
- DXF文件结构
- DXF文件结构
- 三维结构模型DXF文件绘制技巧
- PADS导入DXF结构(样条曲线不能导入 多线段和并)导出DXF(堆叠)文件
- C# 读取DXF文件
- WinAPI 读取DXF文件
- vb读dxf文件
- 解读DXF文件
- DXF文件解析
- CAM350 导出DXF文件
- PROE导出DXF文件
- AD10打开protel的“.DDB”格式文件和结构文件(DXF)的方法
- 用C读取DXF文件
- 用C读取DXF文件
- 用C读取DXF文件
- 判断dxf文件的版本
- 用C读取DXF文件
- java平台读写dxf文件
- [Android]-图片JNI(C++\Java)高斯模糊的实现与比较
- 如何防止表被清空
- Oracle的表结构:纵向和横向
- SPOJ - 1112. Number Steps 题解
- 人事和程序员分别是怎样读简历的
- DXF文件结构
- matlab2013a for linux/Ubuntu 安装步骤及创建快捷方式(ubuntu14.04下安装)
- uva - Magic Numbers(枚举、位运算)
- php_pdo 操作
- CSDN敏感词检测算法
- int型转字符串型函数itoa()实现
- POJ 1011 Sticks
- 人脸对齐ASM-AAM-CLM的一些总结
- Humble Numbers-类DP