拡張データ(Xdata)は、AutoLISP やオブジェクト ObjectARX アプリケーションで作成されます。図形に拡張データが含まれている場合は、図形の標準定義データの後に拡張データが続きます。グループ コード 1000 から 1071 は拡張データを表します。次に DXF 形式で、拡張データを含む図形の例を示します。
標準図形定義データ:
0 INSERT 5 F11 100 AcDbEntity 8 TOP 100 AcDbBlockReference 2 BLOCK_A 10 0.0 20 0.0 30 0.0
拡張図形定義データ:
1001 AME_SOL 1002 { 1070 0 1071 1.95059E+06 1070 519 1010 2.54717 1020 2.122642 1030 2.049201 1005 ECD 1005 EE9 1005 0 1040 0.0 1040 1.0 1000 MILD_STEEL
グループ コード 1001 は、拡張データの開始を示します。標準図形データとは異なり、拡張データでは同じグループ コードが 「複数回」現れることがあり、その 「順序」が重要になります。
拡張データは、登録されたアプリケーション名により、グループ化されます。登録された各アプリケーションのグループは、文字列値としてアプリケーション名を伴ったグループ コード 1001 で始まります。登録されたアプリケーション名は、APPID シンボル テーブル項目と一致します。
アプリケーションは、必要なだけ多くの APPID 名を使用できます。APPID 名は永続的ですが、図面内で使用されなくなった場合には、パージ(名前削除)されることがあります。各 APPID 名は、各図形にアタッチされた 1 つのデータ グループだけを持つことができます。アプリケーションのグループ内では、拡張データ グループのシーケンスおよびその意味は、そのアプリケーションによって定義されます。
拡張データのグループ コードを、次の表に示します。
拡張データのグループ コードと意味 |
||
---|---|---|
図形名 |
グループ コード |
意味 |
文字列 |
1000 |
拡張データ内の文字列は、最大 255 バイトの長さです(256 番目のバイトは null 文字用に確保されています)。 |
アプリケーション名 |
1001 これも文字列値 |
アプリケーション名は、最大 31 バイトです(32 バイト目は null 文字のために予約されています)。 注:
ユーザ独自の拡張データにグループ 1001 を追加しないでください。追加すると、AutoCAD はそれを、新しいアプリケーション拡張データ グループの開始とみなします。 |
制御文字列 |
1002 |
拡張データの制御文字列は、"{" か "}" のどちらかが可能です。これらの括弧により、アプリケーションは、そのデータをリストに細分化して組織化できるようになります。 左側の中括弧はリストの始まりで、右側の中括弧はリストを終了します。リストはネストできます。 AutoCAD は、個々のアプリケーションに対する拡張データを読み込むとき、括弧の数が合っているかどうかを調べます。 |
画層名 |
1003 |
拡張データに関連付けられた画層の名前 |
バイナリ データ |
1004 |
バイナリ データは、可変長の 「チャンク」に組織化されます。各チャンクは、最大 127 バイトです。ASCII DXF ファイルでは、バイナリ データは、バイナリ バイト当り 2 文字の 16 進数文字列で表されます。 |
データベース ハンドル |
1005 |
図面データ内の図形のハンドル 注:
ハンドルおよび拡張データ ハンドルを有する図面が、INSERT[ブロック挿入]コマンド、INSERT *(挿入時にブロック内のオブジェクトを分解)コマンド、XREF[外部参照]/[バインド(B)]コマンド、XBIND[個別バインド]コマンド、または OPEN[開く]コマンドの[部分的に開く]オプションを使用して他の図面に読み込まれるとき、拡張データ ハンドルは、一致する図形ハンドルと同じ方法で変換されるので、これらの結合は維持されます。これは、ブロックに対する EXPLODE[分解]コマンドや他の AutoCAD の操作に対しても行われます。AUDIT[監査]コマンドにより、図面内の図形のハンドルと一致しない拡張データ ハンドルが検出されると、エラーとみなされます。AUDIT が図形を修復すると、ハンドルは 0 に設定されます。 |
3 つの実数 |
1010, 1020, 1030 |
3 つの実数、 X、Y、Z の順。これらは点またはベクトル レコードとして使用できます。AutoCAD が値を変更することは決してありません。 |
ワールド空間の位置 |
1011, 1021, 1031 |
単純な 3D 点とは違い、ワールド空間座標は、拡張データが属する親図形とともに移動され、尺度変更され、鏡像化されます。ワールド空間位置は、STRETCH[ストレッチ]コマンドが親図形に適用されこの点が選択窓内にある場合も、ストレッチされます。 |
ワールド空間の変位 |
1012, 1022, 1032 |
これも、親図形とともに尺度変更、回転、鏡像化される 3D 点(移動やストレッチはされません) |
ワールド方向 |
1013, 1023, 1033 |
これも、親図形とともに回転および鏡像化される 3D 点(移動、尺度変更、ストレッチはされません) |
実数 |
1040 |
実数値 |
距離 |
1041 |
親図形とともに尺度変更される実数値 |
尺度係数 |
1042 |
親図形とともに尺度変更される実数値。距離と尺度係数の違いは、アプリケーション定義です。 |
整数 |
1070 |
16 ビット整数(符号付きまたは符号なし) |
長整数 |
1071 |
32 ビット符号付き(長)整数 |