entmod (AutoLISP)

オブジェクト(図形)の定義データを修正します。

サポートされているプラットフォーム: Windows および Mac OS

構文と要素

(entmod elist)
elist

タイプ: リスト

entget 関数が返すのと同じ形式の図形定義データ。

浮動小数点値の図形フィールド(厚さなど)に整数値を与えた場合、entmod 関数はその値を受け入れて浮動小数点値に変換します。同様に、整数の図形フィールド(色番号など)に浮動小数点値を与えた場合は、entmod 関数は、その値を受け入れ、小数部を切り捨てて整数に変換します。

戻り値

タイプ: リストまたは nil

成功した場合、entmod 関数は、与えられた elist を返します。図形を更新できなかった場合、関数は nil を返します。

注意

entmod 関数は、elist 引数のグループ コード -1 で指定された図形名のデータベース情報を更新します。AutoLISP でデータベースを更新するときの基本的な手順は、entget 関数で図形を取得し、図形の定義リストを修正し、次に entmod 関数を使用してデータベース内の図形を更新するというものです。entmod 関数は、グラフィカル オブジェクトと非グラフィカル オブジェクトのどちらも更新できます。

entmod 関数で行える変更の制限は、次のとおりです。

図形の空間表示フィールドを 0(ゼロ)または 1 に変更することは可能です(ただし、ビューポート オブジェクトを除きます)。ブロック定義内で entmod 関数を使用して図形を変更すると、その変更は図面内のそのブロックのすべてのインスタンスに影響します。

頂点図形に対して entmod 関数を使用する場合は、あらかじめポリライン図形のヘッダの読み込みか書き出しを行わなければなりません。直前に処理されたポリライン図形と、頂点が属するポリライン図形とが異なっていると、幅情報(グループ 40 と 41)が失われる可能性があります。

注意: entmod 関数を使用してブロック定義内の図形を変更することは可能です。ただし、これを行うと自己参照ブロックが作成される可能性があり、そうなった場合には AutoCAD が停止します。
注: AutoCAD 2004 以降のリリースでは、entmod 関数には、色操作に関する新しい機能があります。DXF グループ コード 62 は AutoCAD カラー インデックス(ACI)値を保持しますが、グループ コード 420 は True Color 値を保持します。True Color 値と ACI 値が矛盾する場合、AutoCAD は 420 の値を使用します。そのため、コード 62 の値を使用する場合は、その前にコード 420 の値を削除してください。

次のコマンド シーケンスは、図形のプロパティを取得し、その図形を修正します。

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))