二进制 DXF 文件

AutoCAD DXF Format

 
二进制 DXF 文件
 
 
 

ASCII DXF 文件格式是 ASCII 文字格式的 AutoCAD 图形的完整表示,这种格式易于被其他程序处理。此外,AutoCAD 可以生成或读取二进制格式的完整 DXF 文件,并接收其他二进制文件格式的有限输入。

SAVE 和 SAVEAS 命令提供了“二进制”选项,可用来写入二进制 DXF 文件。二进制格式的 DXF 文件与 ASCII 格式的 DXF 文件包含的信息相同,但格式上前者比后者更精简,能够节省百分之二十五的文件空间。AutoCAD 能够更快地对其进行读写操作(通常能够快五倍)。与 ASCII DXF 文件(该文件需要在文件大小和浮点运算精度之间权衡)不同,二进制 DXF 文件能够在图形数据库中保持精度。(AutoCAD R10 是支持这种格式的 DXF 文件的第一个版本,以前的版本无法读取这种格式的 DXF 文件。)

二进制 DXF 文件以 22 个字节的标记开始,此标记包含下列内容:

AutoCAD Binary DXF<CR><LF><SUB><NULL>

标记之后是位于 ASCII DXF 文件中但以二进制格式表示的数据对(组、值)。组码是双字节的二进制值(在 AutoCAD Release 14 之前的 DXF 文件中是单字节),其后的值为下列值之一:

  • 双字节整数,低位字节在前,高位字节在后
  • 存储的 8 字节 IEEE 双精度浮点数,低位字节在前,高位字节在后
  • 以 0(空)字节结束的 ASCII 字符串

组后面的数据类型由组码决定,所依据的规则与解码 ASCII DXF 文件时使用的规则相同。二进制文件和 ASCII DXF 文件中都可以进行角度到度的转换和日期到分数形式的公历日期表示的转换。在二进制 DXF 文件中,不使用注释组 999。

在二进制 DXF 文件中,扩展数据组代码表示为值为 255 的单字节数据,后面是双字节的整数值,其中包含实际组码(后跟实际值)。

扩展数据长值(组码 1071)占据 4 个数据字节。扩展数据二进制数据块(组码 1004)表示为单字节无符号整数长度,后跟指定字节数目的数据块数据。例如,要转换扩展数据长值组,将出现以下值,分别占据 1 个字节、2 个字节和 4 个字节。

255 Escape 组码
1071 True 组码
999999 1071 组码值

SAVEAS 写入二进制 DXF 文件的文件类型 (.dxf) 与写入 ASCII DXF 文件的文件类型相同。OPEN 和 INSERT 命令会根据文件的标签字符串自动识别二进制文件。用户不需要将其标识为二进制文件。

如果在二进制 DXF 文件中执行 OPEN 和 INSERT 命令时出错,AutoCAD 将报告文件中检测到错误的字节地址。