DXF
DXF 形式は、AutoCAD の図面ファイルに格納されるすべての情報をタグ付きデータで表現したもの。 「タグ付きデータ」とは、ファイル内の各データ要素の前に、「グループ コード」と呼ばれる整数が付いたデータのこと。グループ コードの値は、それに続くデータ要素のタイプを表し、この値は特定のオブジェクト(またはレコード)タイプのデータ要素の意味も表している。
実際には、図面内でユーザが指定したすべての情報は、DXF 形式で表現することができる。(一部を例外あり)
LISP や ObjectARX、SDS などで高度・高速なカスタマイズする際は、DXFの「グループ コード」に対する理解が必要といっていい。
ASCII DXF と バイナリ DXF
一般的にDXFファイル言うと、ASCII DXF となるが、バイナリ DXFというものもある。 バイナリ DXFにはASCII DXFのファイルに含まれる情報がすべて含まれているが、いくつかの特徴がある。
- ASCII DXF ファイルに比べて約25% 小さいファイルサイズになる。
- AutoCAD では約5倍程度高速に読み書きできる。(互換CADでも同様に高速に扱えるものもある)
- ASCII DXF ファイルでは、浮動小数点の精度を犠牲するが、バイナリ DXF ファイルでは、DWGと同様な精度が維持される。
バイナリ DXF ファイル形式を初めてサポートしたバージョンは、AutoCAD Release 10(日本だとGX-III)以降なので、それ以前のバージョンではない。また、DXFが扱えると謳っているソフトでもバイナリ DXFをサポートしていないケースが多い。
バイナリ DXF は次のようなヘッダになっている。
AutoCAD Binary DXF<CR><LF><NULL>
ヘッダの後にはグループコードと値のペアが続くが、バイナリ DXF ではバイナリ形式で表現される。 グループコードは 2バイトのバイナリ値(R14以前は1バイト)でそれに続く値はイカのいづれかの種類になる。
- 2バイト整数値。前が最下位バイト、後ろが最上位バイト。
- 8バイトの IEEE 倍精度浮動小数点数。初めが最下位バイト、最後が最上位バイト。
- 0(NULL)バイトで終了するASCII文字列。
文字の扱い
2007形式以降のDXFは図面内の文字データはユニコード(UTF-8)になっている。