人気ブログランキング | 話題のタグを見る

Rhino+

Rhinoceros plugin開発日記
by rhino-plus
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Link
最新の記事
bbpl バグ修正
at 2013-12-26 14:28
bansen バグ修正
at 2013-12-26 14:22
53_offc (offse..
at 2012-10-18 15:19
以前の記事
ブログパーツ
夢見る外国為替
検索
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

delp(delete points)

コマンドの中でも頻繁に使う「削除」ですが、特定のオブジェクトのみ削除することも多いと思います。前回delesを作成しましたがこのプログラムを応用して他のオブジェクトも削除するプログラムに変更したいと思います。

*************************************************

Sub delp
<---①ここはコマンドの定義です。好きな名前を入れてください

Dim Object,arrObjects2,LockedObjects,allObjects,preLockedObjects

preLockedObjects = Rhino.LockedObjects

allObjects = Rhino.SelectedObjects
Rhino.command "selnone"

If Not IsNull(allObjects) Then
allObjects = Rhino.NormalObjects
If IsNull(NormalObjects) Then
Rhino.print "There are no objects"
Exit Sub
End If
End If

Rhino.Command "'_SelPt"
 <---②ここでポイントのみ選択
Rhino.Command "'_Invert"
 <---③反転選択にてポイント以外のオブジェクトを削除できるようにします。

arrObjects = Rhino.SelectedObjects
If Not IsNull(arrObjects) Then
Rhino.LockObjects arrObjects
End If


arrObjects2 = Rhino.GetObjects("Select delete points",1 )
<---④ここが重要です。ポイントを選択するのですが「、1」がポイントのみを選択する呪文になります。下の画像のvalueがこの数値に対応しています。
詳しくはライノセラスeditscriptのHelp項目GetObjectsを参考にしてください。Helpはライノセラスのコマンドラインでeditscriptと打ちこんで立ち上がったダイアログよりHelpを呼び出せます。


If IsArray(arrObjects2) Then
Rhino.DeleteObjects arrObjects2
End If

LockedObjects = Rhino.LockedObjects

If Not IsNull(LockedObjects ) Then Rhino.unLockObjects LockedObjects

If Not IsNull(preLockedObjects) Then
Rhino.LockObjects preLockedObjects
End If

End Sub

delp
<---⑤ここはコマンドの定義です。好きな名前を入れてください。

*************************************************

どうですか?
少しの変更で新らしいコマンドが作成できます。②を「'_SelCrv」に変更して④を「'4」にすることでカーブを削除するコマンドになります。

ダウンロードは創造社HPの左下のRhino+リンクからどうぞ


delp(delete points)_d0189213_7355314.jpg


by rhino-plus | 2010-11-30 07:27 | 06_delp
<< 半角/全角キーを解除 clc(Change laye... >>