お知らせ

--------------------------------------------------

プログラム作成/コンサルティングの申し込みはこちら

--------------------------------------------------

2010年2月6日土曜日

ssget、ssname、sslength 関数(AutoCAD 2010)

 ユーザにオブジェクトを複数選択させたり、ある条件にあったオブジェクトを複数選択してそれらの情報を取得したいことがあると思います。

例えば、ユーザが選択した複数のオブジェクトの画層、色、線種などの情報を取得したり、図面の中の寸法図形のみを抽出して、その画層などの上方を取得したいといったような時です。

使用例
(ssget)
コマンド ラインに「オブジェクトを選択:」と表示されます。
ここで、オブジェクトを選択すると、選択したオブジェクトの選択セットが返されます。


(ssget "X" <条件>)
<条件> の部分に当てはまるすべてのオブジェクトを含んだ選択セットが返されます。
例えば、(ssget "X" '((0 . "DIMENSION"))) と実行すると、図面中に含まれるすべての寸法図形を含んだ選択セットが返されます。


(ssname ss index)
選択セット ss の index で指定した番号の要素の図形名が返されます。
index は、0 から始まります。

例えば、以下を実行したとします。

(setq ss (ssget "X" '((0 . "LINE"))))
(setq obj_1 (ssname ss 0))
(setq obj_2 (ssname ss 1))

そうすると、変数 ss に図面中のすべての線分を含んだ選択セットが設定され、変数 obj_1 にはその選択セットの 最初の線分の図形名、変数 obj_2 にはその選択セットの 2 番目の図形名が設定されます。


(sslength ss)
選択セット ss に含まれるオブジェクトの数が返されます。

0 件のコメント:

コメントを投稿