最近做的一个项目,需要一个功能就是用WPF读取DXF文件。查找了很多文献都没有这方面的东西。于是不得不亲手打造一个。下面介绍一下自己的思路。
首先,DXF文件的格式必须的明白。
DXF格式是AutoCAD图形的一种格式,DXF 文件可以是 ASCII 格式,也可以是二进制格式。 ASCII DXF 文件格式比二进制文件格式更常用,它可以用记事本打开。
打开一个DXF文件:DXF文件的最小单位是"代码关联值对",两行为一对。第一个值都是数字,表示组码,每个组码有其不同的意义;第二个值即为这个组码的值。由于是两行为一个单位,所以DXF文件都是偶数行的。开始是笔者遇到了空行(没有任何值),还以为是有意空出一行,其实不是,空行的原因是这组组码的值为空。
为了方便表达,本文均以{code,data}形式表示一组代码。code为组码,data为改组的值。
DXF文件以{0,EOF}结尾,一共有7个段,分别是:
- HEADER 段。 包含有关图形的基本信息。它由 AutoCAD 数据库版本号和一些系统变量组成。每个参数都包含一个变量名称及其关联的值。
- CLASSES 段。包含应用程序定义的类的信息,这些类的实例出现在数据库的 BLOCKS、ENTITIES 和 OBJECTS 段中。类定义在类的层次结构中是固定不变的。
- TABLES 段。 包含以下符号表的定义:
APPID(应用程序标识表)
BLOCK_RECORD(块参照表)