「Sssetfirst」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
(ページの作成: ; 構文 : (sssetfirst ''gripset'' [''pickset'']) ; 機能 : オブジェクトを選択したり、グリップする。 : gripset 引数で指定されたオブジェクト…)
 
編集の要約なし
18行目: 18行目:


; サンプル
; サンプル
: まず、正方形を描き、3 つの選択セットを作成します。第 1 の辺を描き、描いた線分を含む選択セットを作成する。
<pre class="brush:autolisp;">
(entmake (list (cons 0 "line") '(10 0.0 0.0 0.0)'(11 0.0 10.0 0.0)))
; まず、正方形を描き、3 つの選択セットを作成します。第 1 の辺を描き、描いた線分を含む選択セットを作成する。
((0 . "line") (10 0.0 0.0 0.0) (11 0.0 10.0 0.0))
(entmake (list (cons 0 "line") '(10 0.0 0.0 0.0)'(11 0.0 10.0 0.0)))
(setq pickset1 (ssget "_l"))
              ((0 . "line") (10 0.0 0.0 0.0) (11 0.0 10.0 0.0))
 
(setq pickset1 (ssget "_l"))
  <Selection set: a5>
  <Selection set: a5>
: 変数 pickset1 は、作成した選択セットを示している。
 
: 第 2 の辺を描き、選択セット pickset1 に追加する。
; 変数 pickset1 は、作成した選択セットを示している。
(entmake (list (cons 0 "line") '(10 0.0 10.0 0.0)'(11 10.0 10.0 0.0)))
; 第 2 の辺を描き、選択セット pickset1 に追加する。
((0 . "line") (10 0.0 10.0 0.0) (11 10.0 10.0 0.0))
(entmake (list (cons 0 "line") '(10 0.0 10.0 0.0)'(11 10.0 10.0 0.0)))
(ssadd (entlast) pickset1)
              ((0 . "line") (10 0.0 10.0 0.0) (11 10.0 10.0 0.0))
<Selection set: a5>
 
: 第 2 の辺のみを含む他の選択セットを作成する。
(ssadd (entlast) pickset1)
(setq 2onlyset (ssget "_l"))
<Selection set: a5>
<Selection set: a8>
 
: 第 3 の辺を描き、選択セット pickset1 に追加する。
; 第 2 の辺のみを含む他の選択セットを作成する。
(entmake (list (cons 0 "line") '(10 10.0 10.0 0.0)'(11 10.0 0.0 0.0)))
(setq 2onlyset (ssget "_l"))
((0 . "line") (10 10.0 10.0 0.0) (11 10.0 0.0 0.0))
<Selection set: a8>
(ssadd (entlast) pickset1)
 
<Selection set: a5>
; 第 3 の辺を描き、選択セット pickset1 に追加する。
: 他の選択セットを作成し、第 3 の辺をその選択セットに含める。
(entmake (list (cons 0 "line") '(10 10.0 10.0 0.0)'(11 10.0 0.0 0.0)))
(setq pickset2 (ssget "_l"))
              ((0 . "line") (10 10.0 10.0 0.0) (11 10.0 0.0 0.0))
<Selection set: ab>
 
: 変数 pickset2 は、新しい選択セットを示している。
(ssadd (entlast) pickset1)
: 第 4 の辺を描き、選択セット pickset1 と pickset2 に追加する。
<Selection set: a5>
(entmake (list (cons 0 "line") '(10 10.0 0.0 0.0)'(11 0.0 0.0 0.0)))
 
((0 . "line") (10 10.0 0.0 0.0) (11 0.0 0.0 0.0))
; 他の選択セットを作成し、第 3 の辺をその選択セットに含める。
(ssadd (entlast) pickset1)
(setq pickset2 (ssget "_l"))
<Selection set: a5>
<Selection set: ab>
(ssadd (entlast) pickset2)
 
<Selection set: ab>
; 変数 pickset2 は、新しい選択セットを示している。
: この時点で、pickset1 には辺 1 ~ 1 が含まれ、pickset2 には辺 3 と 4 が含まれ、2onlyset には辺 2 のみが含まれている。
; 第 4 の辺を描き、選択セット pickset1 と pickset2 に追加する。
: pickset1 内のすべてのオブジェクトを選択し、それらのグリップ ハンドルをオンに切り替える。
(entmake (list (cons 0 "line") '(10 10.0 0.0 0.0)'(11 0.0 0.0 0.0)))
(sssetfirst nil pickset1)
              ((0 . "line") (10 10.0 0.0 0.0) (11 0.0 0.0 0.0))
'''(nil <Selection set: a5>)'''
 
: pickset2 内のすべてのオブジェクトを選択し、それらのグリップ ハンドルをオンに切り替える。
(ssadd (entlast) pickset1)
<Selection set: a5>
 
(ssadd (entlast) pickset2)
<Selection set: ab>
 
; この時点で、pickset1 には辺 1 ~ 1 が含まれ、pickset2 には辺 3 と 4 が含まれ、2onlyset には辺 2 のみが含まれている。
; pickset1 内のすべてのオブジェクトを選択し、それらのグリップ ハンドルをオンに切り替える。
(sssetfirst nil pickset1)
(nil <Selection set: a5>)
 
; pickset2 内のすべてのオブジェクトを選択し、それらのグリップ ハンドルをオンに切り替える。
  (sssetfirst nil pickset2)
  (sssetfirst nil pickset2)
  '''(nil <Selection set: ab>)'''
  (nil <Selection set: ab>)
: 2onlyset 内のすべてのオブジェクトを選択し、それらのグリップ ハンドルをオンに切り替える。
 
(sssetfirst nil 2onlyset
; 2onlyset 内のすべてのオブジェクトを選択し、それらのグリップ ハンドルをオンに切り替える。
'''(nil <Selection set: a8>)'''
(sssetfirst nil 2onlyset
: それぞれの sssetfirst 関数呼び出しは、先の sssetfirst 関数呼び出しから、グリップおよび選択された選択セットを置き換える。
(nil <Selection set: a8>)


; それぞれの sssetfirst 関数呼び出しは、先の sssetfirst 関数呼び出しから、グリップおよび選択された選択セットを置き換える。
</pre>
* 注:CAD のコマンド実行中に sssetfirst 関数を呼び出してはならない。
* 注:CAD のコマンド実行中に sssetfirst 関数を呼び出してはならない。



2013年2月15日 (金) 12:15時点における版

構文
(sssetfirst gripset [pickset])


機能
オブジェクトを選択したり、グリップする。
gripset 引数で指定されたオブジェクトの選択セットを、グリップする。pickset 引数で指定されたオブジェクトの選択セットは、選択かつグリップする。両方の選択セットに共通のオブジェクトが存在しない場合、pickset 引数で指定された選択セットのみを選択かつグリップする(gripset 引数のセットはグリップしない)。
有効な選択セットを作成しなければならない。たとえば、背景ペーパー空間ビューポート(DXF グループコード 69)が選択セットに含まれないように注意する必要がある。選択されたオブジェクトが現在のレイアウトに確実に属するように、次のコードを使用する必要がある。
(setq ss (ssget (list (cons 410 (getvar "ctab")))))
引数
  • gripset : グリップする選択セット。 gripset 引数がnil で pickset 引数が指定されている場合、pickset を選択し、かつグリップする。 gripset 引数が nil でpickset 引数が指定されていない場合、グリップハンドルと以前にオンにされていた選択セットをオフに切り替える。
  • pickset : 選択する選択セット。
戻り値
指定された選択セット。


サンプル
; まず、正方形を描き、3 つの選択セットを作成します。第 1 の辺を描き、描いた線分を含む選択セットを作成する。
(entmake (list (cons 0 "line") '(10 0.0 0.0 0.0)'(11 0.0 10.0 0.0)))
               ((0 . "line") (10 0.0 0.0 0.0) (11 0.0 10.0 0.0))

(setq pickset1 (ssget "_l"))
 <Selection set: a5>

; 変数 pickset1 は、作成した選択セットを示している。
; 第 2 の辺を描き、選択セット pickset1 に追加する。
(entmake (list (cons 0 "line") '(10 0.0 10.0 0.0)'(11 10.0 10.0 0.0)))
               ((0 . "line") (10 0.0 10.0 0.0) (11 10.0 10.0 0.0))

(ssadd (entlast) pickset1)
<Selection set: a5>

; 第 2 の辺のみを含む他の選択セットを作成する。
(setq 2onlyset (ssget "_l"))
<Selection set: a8>

; 第 3 の辺を描き、選択セット pickset1 に追加する。
(entmake (list (cons 0 "line") '(10 10.0 10.0 0.0)'(11 10.0 0.0 0.0)))
               ((0 . "line") (10 10.0 10.0 0.0) (11 10.0 0.0 0.0))

(ssadd (entlast) pickset1)
<Selection set: a5>

; 他の選択セットを作成し、第 3 の辺をその選択セットに含める。
(setq pickset2 (ssget "_l"))
<Selection set: ab>

; 変数 pickset2 は、新しい選択セットを示している。
; 第 4 の辺を描き、選択セット pickset1 と pickset2 に追加する。
(entmake (list (cons 0 "line") '(10 10.0 0.0 0.0)'(11 0.0 0.0 0.0)))
               ((0 . "line") (10 10.0 0.0 0.0) (11 0.0 0.0 0.0))

(ssadd (entlast) pickset1)
<Selection set: a5>

(ssadd (entlast) pickset2)
<Selection set: ab>

; この時点で、pickset1 には辺 1 ~ 1 が含まれ、pickset2 には辺 3 と 4 が含まれ、2onlyset には辺 2 のみが含まれている。
; pickset1 内のすべてのオブジェクトを選択し、それらのグリップ ハンドルをオンに切り替える。
(sssetfirst nil pickset1)
(nil <Selection set: a5>)

; pickset2 内のすべてのオブジェクトを選択し、それらのグリップ ハンドルをオンに切り替える。
 (sssetfirst nil pickset2)
 (nil <Selection set: ab>)

; 2onlyset 内のすべてのオブジェクトを選択し、それらのグリップ ハンドルをオンに切り替える。
(sssetfirst nil 2onlyset
(nil <Selection set: a8>)

; それぞれの sssetfirst 関数呼び出しは、先の sssetfirst 関数呼び出しから、グリップおよび選択された選択セットを置き換える。 
  • 注:CAD のコマンド実行中に sssetfirst 関数を呼び出してはならない。

関連事項