オブジェクト(図形)の定義データを修正します。
サポートされているプラットフォーム: Windows および Mac OS
(entmod elist)
タイプ: リスト
entget 関数が返すのと同じ形式の図形定義データ。
浮動小数点値の図形フィールド(厚さなど)に整数値を与えた場合、entmod 関数はその値を受け入れて浮動小数点値に変換します。同様に、整数の図形フィールド(色番号など)に浮動小数点値を与えた場合は、entmod 関数は、その値を受け入れ、小数部を切り捨てて整数に変換します。
タイプ: リストまたは nil
成功した場合、entmod 関数は、与えられた elist を返します。 図形を更新できなかった場合、関数は nil を返します。
entmod 関数は、elist 引数のグループ コード -1 で指定された図形名のデータベース情報を更新します。AutoLISP でデータベースを更新するときの基本的な手順は、entget 関数で図形を取得し、図形の定義リストを修正し、次に entmod 関数を使用してデータベース内の図形を更新するというものです。entmod 関数は、グラフィカル オブジェクトと非グラフィカル オブジェクトのどちらも更新できます。
entmod 関数で行える変更の制限は、次のとおりです。
図形の空間表示フィールドを 0(ゼロ)または 1 に変更することは可能です(ただし、ビューポート オブジェクトを除きます)。ブロック定義内で entmod 関数を使用して図形を変更すると、その変更は図面内のそのブロックのすべてのインスタンスに影響します。
頂点図形に対して entmod 関数を使用する場合は、あらかじめポリライン図形のヘッダの読み込みか書き出しを行わなければなりません。直前に処理されたポリライン図形と、頂点が属するポリライン図形とが異なっていると、幅情報(グループ 40 と 41)が失われる可能性があります。
次のコマンド シーケンスは、図形のプロパティを取得し、その図形を修正します。
en1 変数に、図面内の最初の図形の名前を代入します。
(setq en1 (entnext)) <Entity name: 2c90520>
ed という名前の変数に、図形 en1 の図形データを代入します。
(setq ed (entget en1)) ((-1 . <Entity name: 2c90520>) (0 . "CIRCLE") (5 . "4C") (100 . "AcDbEntity") (67 . 0) (8 . "0") (100 . "AcDbCircle") (10 3.45373 6.21635 0.0) (40 . 2.94827) (210 0.0 0.0 1.0))
ed 内の画層グループを、画層 0 から画層 1 に変更します。
(setq ed (subst (cons 8 "1") (assoc 8 ed) ed )) ((-1 . <Entity name: 2c90520>) (0 . "CIRCLE") (5 . "4C") (100 . "AcDbEntity") (67 . 0) (8 . "1") (100 . "AcDbCircle") (10 3.45373 6.21635 0.0) (40 . 2.94827) (210 0.0 0.0 1.0))
図面内の en1 図形の画層を変更します。
(entmod ed)((-1 . <Entity name: 2c90520>) (0 . "CIRCLE") (5 . "4C") (100 . "AcDbEntity") (67 . 0) (8 . "1") (100 . "AcDbCircle") (10 3.45373 6.21635 0.0) (40 . 2.94827) (210 0.0 0.0 1.0))