
フィールドダイアログボックスを使わずに図形のプロパティを含むフィールドを作成するにはどうすればいいですか。

フィールドダイアログボックスを使わずにフィールドを含む注釈や簡易注釈を作成するには、コマンドラインインタフェースの注釈 (-NOTE) コマンドや簡易注釈(-SIMPLENOTE)コマンドを使います。
図形のプロパティを参照するには、 %<\AcObjProp.16.2 Object(%<_ObjId 2181777952656>%).Area >% のようなフィールド式が必要です。オブジェクトID ( _ObjId ) は 64ビット整数を10進数で指定します。
VLAオブジェクトのオブジェクトIDプロパティは 32ビット整数に切り詰められるため、ユーティリティオブジェクトの getObjectIdString メソッドを使って 64ビット整数の10進数表記の文字列を取得する必要があります。
テキストファイルに次のLISPコマンドを用意し、AREATEXT.LSP という名前でサポートフォルダに保存します。
;;; AREATEXT.LSP フィールドを使って図形の面積を記入する
(defun C:AREATEXT ( /en pt obj util oid param )
(if (setq en (car (entsel “\n計測図形を指定”)))
(if (setq pt (getpoint “\n始点を指定”))
(progn
(setq obj (vlax-ename->vla-object en))
(setq util (vla-get-Utility (vla-get-Document obj)))
(setq oid (vla-getObjectIdString util obj :Vlax-False))
(setq param (strcat
“%<\\AcObjProp.16.2 Object(%<\\_ObjId “
oid
“>%).Area \\f \”%lu2\”>%”
))
(command “-SIMPLENOTE” pt “” “” param)
)
)
)
)
AREATEXT コマンドを使って、閉じた図形の面積を記入します。
- アプリケーションのロード (LOADAPPLICATION) コマンドで、AREATEXT.LSP ファイルを読み込みます。
- コマンドラインに AREATEXT [Enter] と入力します。
- 計測図形を指定して、文字の基点を指定します。
- 簡易注釈は現在の画層、文字スタイル、文字高さで記入されます。

選択した図形によっては Area プロパティが存在しないものもあります。
ミリメートル単位の図面では平方ミリメートルの値になります。
これを平方メートルに変換するには面積の値に 0.000001 をかける必要があります。
“>%).Area \\f \”%lu2\”>%” の部分を “>%).Area \\f \”%lu2%ps[,㎡]%ct8[1e-006]\”>%” に変更します。

書式指定 \f の後に続く式の意味は、長さ単位 Linear Unit = 2 (十進指定)、前後の文字列 Pre-Post String = なし と ㎡、計算方法 Calcurate Type = 8 係数をかける 係数は 10のマイナス6乗 となります。
関連 FAQ:
・フィールドを手入力で指定するには