
AutoCAD 2005 で導入されたフィールドは、特定の情報を文字(MTEXT)として作図する機能を提供すると同時に、元の情報ソースを監視して、常に最新の情報を文字に反映する機能も持ち合わせたインテリジェントな能力を持ち合わせています。
例えば、表題欄に現在の時刻を示す文字オブジェクトを挿入したい場合、FIELD[フィールド] コマンドで [フィールド] ダイアログを表示させて、日付フィールドを挿入することで、日付が自動更新して表示されるので、以前のように手作業で修正する必要がなく、手間が省け直し忘れもなくなります。

フィールドの特筆 すべき点が、オブジェクト プロパティを文字化して、常に最新の情報を維持出来る点です。
例えば、[フィールド] ダイアログの「フィールド名」で「オブジェクト」を選択して作図済の円オブジェクトを選択すると、ダイアログ中央に円オブジェクトが持つプロパティが表示されます。「面積」を選択後、[その他の形式(O)…] ボタンで接尾語の “㎡” を指定してフィールドを作図すると、円の面積に “㎡” が付加された MTEXT が作図されます。

作図された面積は、選択した円を監視して、常に最新の面積を反映します。反映のタイミングは REGEN[再作図] コマンドの実行、あるいは、再作図が自動的におこなわれる図面の印刷時や図面のオープン時になります。

指定したオブジェクトのプロパティを自動的に反映するオブジェクト フィールドは、図面を開き直しても維持されます。このような機能を AutoCAD API でゼロから実装するには、C++ 言語を用いる ObjectARX の不変リアクタの利用が必要になるため、比較的、難易度の高い API カスタマイズが必要です。
そういった意味も含め、フィールドは AutoCAD の高機能なノーコード ソリューションということが出来ます。
なお、AutoCAD 画面上のフィールド文字の背景は、通常の MTEXT オブジェクトと区別するためにグレーで表示されますが、印刷時には背景は印刷されずに文字のみが表現されます。
そんな高機能なフィールドは、AutoCAD の様々な機能で活用されています。AutoCAD 2022 で導入された COUNT[カウント] コマンドでは、ブロック集計で作図出来る表オブジェクトの値にフィールドが使われています。これによって、図面内で集計済のブロック数が編集で増減しても集計表を維持することが出来るようになっています。

フィールドの機能は、AutoCAD API からも利用することが出来ます。もちろん、s製品機能を流用するかたちになるので、不変リアクタを意識する必要はなく、ObjectARX を使用する必要もありません。
オブジェクト フィールドは、特定のオブジェクトを監視するために、内部的に対象オブジェクトの ObjectId 識別子を参照・利用します。
フィールドの機能は、AutoCAD API からも利用することが出来ます。もちろん、その機能を流用するかたちになるので、不変リアクタを利用する必要はなく、ObjectARX を使用する必要もありません。
オブジェクト フィールドは特定のオブジェクトを監視するために、内部的に対象オブジェクトのオブジェクト ID 識別子を使用します。あとは、オブジェクト フィールドを作成する際に [フィールド] ダイアログ下部に表示される「フィールド式」を MText オブジェクトのコンテンツに設定するだけです。
By Toshiaki Isezaki

Leave a Reply