拡張データ

提供:GizmoLabs - だいたい CAD LISP なサイト
2012年7月25日 (水) 14:38時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「拡張データ(Xdata)は、AutoLISP などの API を利用して作成される。 図形に拡張データが含まれている場合は、図形の標準定義デ...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

拡張データ(Xdata)は、AutoLISP などの API を利用して作成される。 図形に拡張データが含まれている場合は、図形の標準定義データの後に拡張データが続く。 グループ コード 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 を追加してはならない。 追加すると、CAD はそれを、新しいアプリケーション拡張データの開始とみなす。
  • 制御文字列 … 1002 … 拡張データの制御文字列は、"{" か "}" のどちらかが可能。これらの括弧により、アプリケーションは、そのデータをリストに細分化して組織化できるようになる。 左側の中括弧はリストの始まりで、右側の中括弧はリストを終了する。リストはネストできる。CAD は、個々のアプリケーションに対する拡張データを読み込むとき、括弧の数が合っているかどうかを調べる。
  • 画層名 … 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 ビット符号付き(長)整数