Graebert Japan ヘルプセンター

9/17開催 | 無料オンラインイベント「Graebert neXt Japan 2026」

  1. Home
  2. /
  3. FAQ
  4. /
  5. ARES LISP ガイド
  6. /
  7. 図形を編集する

図形を編集する

図形リストを更新して entmod関数を呼ぶか、VLAオブジェクトの vla-put-プロパティ名 でプロパティを変更します。

図形リストを使って図形を編集する

entget 関数を使って図形リストを取得します。

(setq el (entget (car (entsel))))

エンティティを指定»

1 個検出

((-1 . <EName:  000000356c215aa0>) (0 . “CIRCLE”) (5 . “115”) (330 . <EName:  000000356e703600>) (100 . “AcDbEntity”) (67 . 0) (410 . “Model”) (8 . “0”) (100 . “AcDbCircle”) (10 15.03090216 15.16946768 0.0) (40 . 1.27539337) (210 0.0 0.0 1.0))

画層 (グループコード 8) や 中心点(グループコード 10)や半径(グループコード 40)など、図形リストに含まれているものを編集するには、subst 関数が使えます。

(setq pt (getpoint “新しい位置”))

(setq el (subst (cons 10 pt) (assoc 10 el) el))

(entmod el)

getpoint 関数で新しい中心点をユーザーに入力させます。

subst 関数は (subst 新しい値 古い値 リスト) というパラメータが必要です。リストの中の古い値を新しい値に置き換え(substitute)ます。

assoc 関数は図形リストのようにそれぞれの要素が (キー . 値)の組み合わせになっているときに、キーの値を使って要素を返します。キーの値がなければ nil を返します。associate は関連づけるという意味で、キーに関連づけられた要素を取得するという意味です。

cons 関数は、リストを作るもう一つの関数です。(cons 追加する値  値やリスト) になります。追加する値はリストの先頭に入ります。construct は構築するという意味です。

subst 関数によって新しい位置を中心に持つ図形リストを作成し、entmod 関数で図形を修正します。画面で図形が移動するのを確認できます。

この図形の色は ByLayer 色、線種は ByLayer 線種なので図形リストには現れません。

そのようなプロパティを修正するには、append 関数を使います。

(setq el (append el (list (cons 62 1))))

(entmod el)

これで図形の色(グループコード 62)が 1 (赤) になります。

append 関数はリストにリストを結合します。

append 関数で結合したリストは、((-1 . <EName:  000000356c215aa0>) (0 . “CIRCLE”) (5 . “115”) (330 . <EName:  000000356e703600>) (100 . “AcDbEntity”) (67 . 0) (410 . “Model”) (8 . “0”) (100 . “AcDbCircle”) (10 17.65057941 12.2415931 0.0) (40 . 1.27539337) (210 0.0 0.0 1.0) (62 . 1))

ですが、変更後の図形リストを取得しなおすと、

(setq el (entget (car (entsel))))
((-1 . <EName:  000000356c215aa0>) (0 . “CIRCLE”) (5 . “115”) (330 . <EName:  000000356e703600>) (100 . “AcDbEntity”) (67 . 0) (410 . “Model”) (8 . “0”) (62 . 1) (100 . “AcDbCircle”) (10 17.65057941 12.2415931 0.0) (40 . 1.27539337) (210 0.0 0.0 1.0))

のように、色番号は正しい位置(画層の次)に入ります。

entmake 関数や entmod 関数に渡す図形リストは、自由度があります。

ポリライン図形( LWPOLYLINE ) のように座標値やふくらみ値が同じコードで複数含まれる図形リストもあります。その場合は、データの順序に注意して修正する必要があります。

図形オブジェクトを使って図形を編集する

円図形を選択して、中心点を変更するのをオートメーションでやってみましょう。

(setq ent (vlax-ename->vla-object (car (entsel))))

エンティティを指定»

1 個検出

#<VLA-OBJECT IAcadCircle 6b9544c0>

(setq pt (vlax-3d-point (getpoint “新しい位置”)))
新しい位置»

(vla-put-Center ent pt)

vla-put-Center 関数は円図形の中心点プロパティに新しい位置を設定します。
画面上で位置を指定する getpoint 関数は座標をリストで返すので、オートメーション用にセーフ配列に変換します。

図形リストを使うよりもオートメーションのほうが分かりやすいと思います。


図形を削除するに戻る 画層、線種などを調べるに進む

短縮URL: https://jp-help.graebert.com/?p=38978

ARES CAD 活用リソース

ARES Commander 2027 リリース

ARES の最新バージョン ARES 2027 がリリースされました。ARES 2027 は、AI・自 動化・BIM・クラウドという、CADの各領域を強化した最新版です。

DWG図面をリンク1つで共有

表示専用リンクを使えば、DWG図面をリンクだけで安全に共有できます。
CADソフトを持っていない相手でもブラウザから閲覧し、コメントやマークアップを追加できます。

DWG図面を無料でオンライン表示

ARES Kudoの無料ビューアーを使えば、DWG図面をブラウザから簡単に表示できます。
インストール不要で図面の確認や計測ができ、コメントやマークアップで共同作業も可能です。