拡張データは 1 つまたは複数の 1001 グループ コードから構成され、それぞれ一意のアプリケーション名で始まります。
entget によって返される Xdata グループは、データベースに保存されている順で定義データに続きます。 各アプリケーションのグループ内で、データの内容、意味、編成は、アプリケーションが定義します。AutoCAD はこの情報を保持しますが、それを使用することはありません。次に、1000 ~ 1071 の範囲の Xdata に対するグループ コードを示します。これらのグループ コードの多くは、次に示すように、通常のデータ タイプです。
1000。拡張データ内の文字列は、最大 255 バイトの長さです(256 番目のバイトは null 文字用に確保されています)。
1001 (これも文字列値です)。アプリケーション名は最大 31 バイトで(32 番目のバイトは null 文字用に確保されています)、シンボル テーブル名(画層名など)の規則に従わなくてはなりません。アプリケーション名には、文字(全角文字と半角カタカナを含む)、数字、特殊文字 $ (ドル記号)、 - (ハイフン)、 _ (アンダースコア)を使用できます。スペースを含めることはできません。
1003。Xdata に関連する画層の名前。
1005。図面データベース内の図形のハンドル。
1010。点に含まれている 3 つの実数値。
1040。実数値。
1070。16 ビット整数(符号付きまたは符号なし)。
1071。32 ビット符号付き(長)整数。1071 グループ コード内の値が通常の 16 ビット整数か実数値の場合、その値は長整数に変換され、無効な場合(たとえば文字列)は、長整数のゼロ(0L)に変換されます。
(1071 . 12.0)
entmake や entmod を使用して図形内の 1071 グループ コードを作成する場合、次の例に示すとおり、実数と整数のどちらを使用してもかまいません。
(entmake '((..... (1071 . 12) .... ))) (entmake '((..... (1071 . 12.0) .... ))) (entmake '((..... (1071 . 65537.0) .... ))) (entmake '((..... (1071 . 65537) .... )))
しかし、AutoLISP はそれでもグループ コード値を実数として返します。
(entmake '((..... (1071 . 65537) .... )))
上の文は、次を返します。
(1071 . 65537.0)
ObjectARX および Managed .NET は常に、1071 グループ コードを長整数として管理します。
他の拡張データ グループ コードの中には、次に示すように、特殊な意味を持っているものもあります(アプリケーションがそのグループ コードを使用する場合)。
1002。Xdata のコントロール文字列には、"{" または "}" を使用します。これらの中括弧を使用すると、アプリケーションはそのデータをリストに小分割して編成できるようになります。 左側の中括弧はリストの始まりで、右側の中括弧はリストを終了します。リストはネストすることができます。
1004。可変長のチャンクに編成されているバイナリ データ。チャンクは、ads_binary 構造を使用して ObjectARX および Managed .NET で処理できます。各チャンクは、最大 127 バイトです。
1011。単純な 3D 点とは異なり、WCS 座標は、拡張データが属する親図形とともに移動、尺度変更、回転、鏡像化されます。WCS の位置は、親図形に AutoCAD の STRETCH[ストレッチ]コマンドを適用したときや、この点が選択窓内にあるときにもストレッチされます。
1012。親図形とともに尺度変更、回転、鏡像化されますが、ストレッチや移動は行われない 3D 点です。
1013。親図形とともに回転、鏡像化されますが、尺度変更、ストレッチ、移動は行われない 3D 点です。WCS の方向は、常に単位長の標準化された変位です。
1041。親図形とともに尺度変更される実数値です。
1042。親図形とともに尺度変更される実数値です。