【AutoLISP入門】ssget関数で図形を自在に選択!

Autolisp

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を取り入れてみてください!

コメント

タイトルとURLをコピーしました