AutoCADの自動化に欠かせない「ssget」関数。図形選択の要となるこの関数を使いこなせば、LISPスクリプトの自由度が一気に広がります。本記事では、ssgetの基本構文から応用テクニックまでを、初心者にもわかりやすく解説します。
🧠 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の自動化は、選択の精度が命。ぜひこのチュートリアルを参考に、あなたのスクリプトにssgetを取り入れてみてください!
コメント