+CADLabo.comCAD / LISP / AUTOMATION
AutoLISP初心者講座

ssget|条件と範囲を指定して図形を選ぶ

AutoLISPの基本・図形操作のTips一覧
要点

ssgetで選択セットを取得します。対話選択、図形種別・画層のフィルター、範囲選択を使い分け、処理する対象を絞ります。

始める前に

先に確認すると読み進めやすい記事:

確認の手順

  1. 線と円を含む練習図面を用意します。
  2. 対話選択でssgetを実行し、選択セットが返るか確認します。
  3. 図形種別や画層のフィルターを追加し、選択数を確認します。
  4. 範囲選択と全図面選択の違いを確認してから、一括処理へ進みます。

ssgetとは?

ssgetは、AutoLISPで図形を選択するための関数です。選択セット(Selection Set)を作成し、後続処理に渡すことができます。

掲載コード
(ssget [mode] [pt1 [pt2]] [pt-list] [filter])
  • mode:選択方法(例:”W”=ウィンドウ選択、”C”=交差選択)
  • pt1, pt2:選択範囲の座標
  • pt-list:複数点による選択
  • filter:図形の種類や画層などの条件フィルター

基本の使い方

① すべての図形を選択する

掲載コード
(ssget "X")

これは、現在の図面上に存在するすべての図形を選択します。

② 特定の画層の線分だけを選択

掲載コード
(setq filter (list (cons 0 "LINE") (cons 8 "寸法")))
(ssget "X" filter)
  • (cons 0 "LINE"):線分のみ
  • (cons 8 "寸法"):画層「寸法」のみ

③ ウィンドウ選択で範囲指定

掲載コード
(setq pt1 (getpoint "1点目:"))
(setq pt2 (getpoint pt1 "2点目:"))
(ssget "W" pt1 pt2)

指定した2点で囲まれた矩形内の図形を選択します。

応用編:選択モードのバリエーション

モード意味
"C"交差選択(範囲にかかっていれば選択)
"CP"ポリゴン交差選択
"W"ウィンドウ選択(完全に含まれる図形のみ)
"WP"ポリゴンウィンドウ選択
"F"フェンス選択
"L"最後に追加された図形
"P"直前の選択セット
"I"PICKFIRSTによる選択

例:

掲載コード
(ssget "_+.:E:S") ; 点クリック選択モード

フィルターの活用

フィルターリストを使えば、図形の種類や画層、色などで選別できます。

掲載コード
(setq filter (list (cons 0 "CIRCLE") (cons 62 1))) ; 赤い円のみ
(ssget "X" filter)

実践サンプル:寸法線を一括削除

掲載コード
(setq filter (list (cons 0 "DIMENSION")))
(setq ss (ssget "X" filter))
(if ss
  (command "ERASE" ss "")
)

まとめ

  • ssgetは図形選択の中心的関数
  • 選択方法とフィルターを組み合わせることで柔軟な操作が可能
  • 実務では「画層別選択」「範囲選択」「属性フィルター」などが頻出

AutoLISPの自動化は、選択の精度が命。

結果の確認

選択セットの件数と、意図した図形の数が一致するか確認します。削除の例は図面のコピーで試し、先に選択結果だけを確認してください。

参照資料

対象環境・動作確認

AutoLISP対応環境(関数・OSごとの対応は要確認)。内容更新:2026年10月5日。掲載コードのCAD実機検証は未実施です。図形を変更する例は、コピーした図面で結果を確認してください。