ssget (AutoLISP)

選択されたオブジェクトから選択セットを作成します。

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

構文と要素

(ssget [sel-method] [pt1 [pt2]] [pt-list] [filter-list])
sel-method

タイプ: 文字列

オブジェクト選択方法。

有効な選択方法は、次のとおりです。

C: 交差選択。

CP: ポリゴン交差選択(指定されたポリゴンの内部とポリゴンと交差するすべてのオブジェクト)。

F: フェンス選択。

I: 暗黙選択(AutoCAD のシステム変数 PICKFIRST が有効な間に選択されたオブジェクト)。

L: データベースに最後に追加された可視オブジェクト。

P: 最後に作成された選択セット。

W: 窓選択。

WP: ポリゴン窓選択(指定されたポリゴンに完全に含まれるすべてのオブジェクト)。

X: データベース全体。X 選択方法を指定し、filter-list 引数を指定しなかった場合、ssget 関数は非表示の画層上の図形、フリーズされた画層上の図形、表示しているスクリーンの外にある図形を含む、データベース内のすべての図形を選択します。

:E: オブジェクト選択ピックボックス内のすべて。

:N: ssget 関数操作によって選択された任意の図形の、コンテナ ブロックの追加情報および変換マトリックスを ssnamex 関数を呼び出して取得できます。この追加情報は、窓、交差、点クリックなどのグラフィカル選択方法で選択された図形に対してのみ使用できます。

他のオブジェクト選択方法とは異なり、:N は選択セット内で同じ図形名を持った図形を複数返すことがあります。たとえばユーザが、ブロック参照、ポリゴン メッシュ、以前のスタイルのポリラインなどの複合図形の従属図形を選択した場合、ssget 関数は選択された従属図形に基づいて、それが既に選択されているかどうかを決定します。しかし、実際には主図形(ブロック参照、ポリゴン メッシュなど)が選択セットに追加されます。この結果、選択セットに同じ図形名の複数の図形が含まれることになります(それらの図形は異なる従属図形情報を持っており、ssnamex 関数を使用してそれらの情報を取得できます)。

:R: 長いトランザクション内の図形が選択されるようにします。

:S: 単一図形選択に限定します。

:U: 従属図形の選択を可能にします。重複(":D")またはネスト(":N")選択モードと結合することはできません。このモードでは、既定でトップ レベルの図形が選択されますが、ユーザは選択中に[Ctrl]キーを押すことにより、従属図形を選択することができます。このオプションは、窓選択、交差選択、ポリゴン選択などの対話的な選択に対してのみサポートされています。すべて選択、フィルタ選択、グループ選択に対しては、サポートされていません。

pt1

タイプ: リスト

選択に関する点。

pt2

タイプ: リスト

選択に関する点。

pt-list

タイプ: リスト

点のリスト。

filter-list

タイプ: リスト

オブジェクトのプロパティを指定する連想リスト。filter-list 引数に該当するオブジェクトが、選択セットに追加されます。

戻り値

タイプ: ads_name または nil

成功した場合は、作成された選択セットの名前。オブジェクトが何も選択されなかった場合は nil

注意

選択セットにはペーパー空間とモデル空間の両方のオブジェクトを含めることができますが、その選択セットを使用するときに、ssget 関数は現在有効でない空間のオブジェクトを除外します。ssget 関数が返す選択セットには、主図形のみが含まれます(属性やポリラインの頂点は含まれません)。

すべての引数を省略すると、ssget 関数はプロンプト「オブジェクトを選択:」を表示し、選択セットを対話的に作成できるようにします。

点を指定し、オブジェクト選択方法を指定しなかった場合、AutoCAD は、ユーザが単一点をクリックしてオブジェクトを選択するものとみなします。

選択セットに含めるオブジェクトを選択するよう、ユーザにプロンプトを表示します。

(ssget)
<Selection set: 2>

点(2, 2)を通るオブジェクトの選択セットを作成します。

(ssget '(2 2))
nil

もっとも最近選択されたオブジェクトの選択セットを作成します。

(ssget "_P")
<Selection set: 4>

(0, 0)から(1, 1)のボックスに含まれる、またはそのボックスと交差するオブジェクトの選択セットを作成します。

(ssget "_C" '(0 0) '(1 1))
<Selection set: b>

(0, 0)から(5, 5)の窓の内側のオブジェクトの選択セットを作成します。

(ssget "_W" '(0 0) '(5 5))
<Selection set: d>

フィルタを使用することにより、特定のタイプ、特定の画層上、特定の色のオブジェクトすべてを含んだ選択セットを取得することができます。次の例は、暗黙の選択セット(AutoCAD のシステム変数 PICKFIRST が有効なときに選択されたオブジェクト セット)に含まれる青の線分だけで構成される選択セットを返します。

(ssget "_I" '((0 . "LINE") (62 . 5)))
<Selection set: 4>

次の ssget 関数の例では、点のリストを関数に渡す必要があります。変数 pt_list に含まれる点によって定義されるセグメントの長さが 0(ゼロ)となるような指定はできません。

まず、点のリストを作成します。

(setq pt_list '((1 1)(3 1)(5 2)(2 4)))
((1 1) (3 1) (5 2) (2 4))

次に、pt_list で定義されるポリゴンの内側に含まれる、またはそのポリゴンと交差するすべてのオブジェクトの選択セットを作成します。

(ssget "_CP" pt_list)
<Selection set: 13>

pt_list 引数で定義されるポリゴンの内側に含まれたすべての青色の線分の選択セットを作成します。

(ssget "_WP" pt_list '((0 . "LINE") (62 . 5)))
<Selection set: 8>

選択されたオブジェクトは、引数を指定せずに ssget 関数を使用したときにのみ、ハイライト表示されます。選択セットは AutoCAD のテンポラリ ファイル スロットを使用するので、AutoLISP では同時に 128 までしか選択セットを開くことができません。この制限に達すると、AutoCAD はそれ以上の選択セットの作成を拒否し、すべての ssget 関数の呼び出しに対して nil を返します。不要な選択セットを閉じるには、それを nil に設定してください。

プロンプト「オブジェクトを選択:」で[最後(L)]オプションが有効な場合、このプロンプトに応答することで、選択セット変数を AutoCAD に渡すことができます。これにより、選択セット変数内のすべてのオブジェクトは AutoCAD によって選択されます。

特に要求しない限り、ssget 関数はオブジェクト スナップ モードの現在の設定を無視します。