コマンドマクロとスクリプト作成

コマンドの位置

_a_blank.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

すべてのRhinoのコマンドはコマンドマクロで使用することができます。コマンドマクロは、コマンドプロンプトでコマンドをタイプして、ツールバーから、ショートカットキーコマンドエイリアスを使用して、ReadCommandFileコマンドから、そしてPasteコマンドを使用してRhinoのコマンドストリームで実行できます。

コマンドマクロの記述

コマンドマクロは、コマンドラインでコマンドをタイプするのと同じように書くことができます。文字と文字の間にあるスペースや新規の行(改行)は、コマンドラインでEnterを押すのと同じ働きをします。

特殊な文字

文字

マクロでの意味

* (アスタリスク)

Enterキーを押して再度実行しなくてもコマンドが自動的に繰り返されます。

!
(感嘆符)

1つ前のコマンドをキャンセルします。

マクロの始めにあるスペースや感嘆符(!)は、その前に実行されたどのコマンドもキャンセルします。他の場所にある場合は、マクロがキャンセルされます。感嘆符はマクロの最後に使用することもできます。

_
(下線)

英語のコマンド名を使ってコマンドを実行します。

Rhinoは多くの言語にローカライズされています。日本語版では、プロンプト、コマンドオプション、ダイアログボックス、メニューなどが翻訳されています。英語、そして日本語を含むいくつかの言語以外の言語版では、コマンドも翻訳されています。そのため、これらの言語版では英語のコマンドをそのまま使うことはできません。

英語で書かれたスクリプトをRhinoの言語に関わらずすべてのコンピュータ上で実行できるようにするには、スクリプトは強制的にRhinoがすべてのコマンドを英語のコマンド名で認識するようにしなければなりません。

例えば:Rhinoの英語版では、次のマクロを実行することができます。

Circle 3Point 0,0,0 1,1,0 0,3,0

しかし、フランス語版のRhinoでは、このマクロは動作しません。代わりに、次のマクロのどちらかを使う必要があります。

Cercle 3Point 0,0,0 1,1,0 0,3,0
_Circle _3Point 0,0,0 1,1,0 0,3,0

マクロが確実に別の言語バージョンで動作するようにするには、マクロを英語で書き、すべてのコマンド名とオプションの前に_を付けます。

-
(ハイフン)

ダイアログボックスを表示しません。

すべてのコマンドは、コマンドラインでマクロにできます(デフォルトでダイアログボックスを表示するコマンドも含む)。ダイアログボックスまたはウィンドウを表示せず、コマンドラインオプションを使うには、接頭辞としてコマンドの前にハイフン(-)を付けます。

'
(アポストロフィー)

次のコマンドは、ネストすることが可能なコマンドです。

ビューと作業平面操作およびオブジェクトスナップはネストできます。ジオメトリ作成コマンドはネストできません。

一時オブジェクトスナップやサブオブジェクトのピックフィルタは、自動的にネストでき、アポストロフィーは必要ありません。

\
(バックスラッシュ)

ツールバースマクロの最初の文字が"!"でなく、最後が" \"で終わっていれば、Enterキーを押さなくてもでコマンドライン上でスクリプトが動きます。これでより多くの情報を追加できます。

これは数値、小数点、角度("<45"など)をボタンに表示して、画面上に"テンキー"を作成するのに便利です。

~
(チルダ)

コマンドオプションを省略します。(コマンドのフィードバックがすっきりします。)オプションは通常通り動作します。

;

(セミコロン)

コメント

セミコロン(;)で始まる行はマクロの一部ではありませんが、マクロの説明などをコメントとして記入することができます。

例えば:

; This is a test macro
_Circle 0,0,0 15
_Line 0,0,0 pause ;15,0,0
; Line 0,0,0 0,15,0
_Line 0,0,0 -15,0,0

円を作成する

このマクロは中心が5,5、半径が10の円を作成します。

!_-Circle 5,5 10

各エントリ間のスペースは、手入力でコマンドをタイプする際にEnterキーを押す位置と同じです。

オブジェクトの選択を解除し、Moveコマンドを開始する

このマクロは、選択されているオブジェクトがある場合それを解除してから、Moveコマンドを実行します。

!_SelNone _Move

点を通る曲線を作成する

このマクロは、複数の点を作成、それらすべてを選択後、それらの点を通るポリラインを作成します。

!_SelAll !_Points _Pause _Pause _Pause _Enter _Invert _CurveThroughPt _Enter

スクリプトの動作:

!_SelAll

前のコマンドすべてをキャンセルし、現在モデル内にあるすべてのオブジェクトを選択します。

!_Points

Pointsコマンドを実行します。

_Pause

_Pause

_Pause

3点の位置をピックさせます。

_Enter

Enterを押すことを意味し、点の作成を終了します。

_Invert

選択を反転します。スクリプトの最初にシーン中のすべての表示オブジェクトが選択されていたので、Invertコマンド実行後には選択が反転され、新しく作成された点オブジェクトだけが選択されます。

_CurveThroughPt

点オブジェクトを通るポリラインを作成します。

_EnterEnd

コマンドを完了します。

ダイアログボックスを回避する

!-_Rebuild _Pause _Points=10 _Degree=3 _Enter

曲線を選択し、このマクロを実行します。すべてのオプションはマクロによって設定されます。

これらのスクリプトを試してみよう

number-1.pngこのヘルプトピックからマクロを選択します。

number-2.pngCtrl + Cを押してクリップボードにコピーします。

number-3.pngRhinoコマンドプロンプトをクリックし、Ctrl + Vを押してマクロをペーストします。

特殊なコマンドのスクリプトを作成する

一時停止

マクロの実行を一旦停止してユーザー入力を待ちます。

!_Circle _Pause 50

このマクロは、点の入力を待ち、その点を中心とする半径50の円を作成します。

Enter

マクロの中でEnterを押す役割をします。

手で操作する時はEnterキーを押すと1つ前のコマンドが繰り返されますが、このコマンドにはその働きはありません。

EnterEnd

コマンドを完了します。

SetRedrawOff

マクロを実行する時、画面が再描画されない、また作業平面やカメラが変更されないようにします。

SetRedrawOn

画面の再描画がSetRedrawOffコマンドでオフになっている時、このコマンドで再描画をオンにします。

NoEcho

マクロのコマンドをコマンドヒストリウィンドウに表示する機能をオフにします。

Echo

マクロのコマンドをコマンドヒストリウィンドウに表示する機能をオンにします。

メモ:マクロになんとタイプしてよいか分からない場合は、コマンドにハイフンを付けたバージョンを実行します。コマンドのシーケンスをハイライトしてからコピーし、マクロテキストにペーストします。

open_macro_editor.pngMacroEditor

コマンドの位置

open_macro_editor.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

MacroEditorコマンド

マクロ作成とテストのための編集ウィンドウを開きます。

マクロエディタパネル

paneloptions.pngオプション

操作手順

number-1.pngマクロ編集ウィンドウにコマンドをタイプします。

number-2.pngテストを行うには、実行をクリックします。

number-3.pngマクロを削除するには、削除をクリックします。

メモ

round_bullet.gifテキストの一部を選択し、実行をクリックすると、マクロの選択された部分だけが実行されます。

round_bullet.gif右クリックすると、コンテクストメニューが表示され、すべて選択、コピー、ペースト、削除、実行等を行うことができます。

read_command_file....pngReadCommandFile

コマンドの位置

read_command_file....pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

ReadCommandFilesコマンド

テキストファイルからコマンドマクロを読んで実行します。

操作手順

number_onestep.gifテキストファイルを開くダイアログボックスで、読み込むファイルを選択します。

ファイルの内容がコマンドラインにコピーされ、コピーされた内容は手作業でコマンドを入力した時と同じように解釈されます。

メモ

round_bullet.gifテキストファイル作成時、コマンドを実行するためにEnterキーを押す操作を記述するにはEnterコマンドを使ってください。

round_bullet.gifある特定のファイルを頻繁に読み込むことがある場合、ReadCommandFileをファイル名と一緒にツールバーに割り当てておくことをお勧めします。例えば:

-readcommandfile myfile.txt

ファイル名にスペースが含まれる場合、引用符でそれを囲んでください。例えば:

-readcommandfile "my file.txt"

テキストファイルを次のようにタイプして作成した後、ReadCommandFileコマンドを実行します。このテキストファイルの内容は、複数の曲線を一度に作成するものです。

!_interpcrv
23,5,0
23.2,5,0
23.7,5.2,1
_Enter
_interpcrv
26.1,4.9,1.1
26.8,4.9,1.0
27.1,4.8,0.9
_Enter

など

Echo

コマンドの位置

_nobutton.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

Echoコマンド

マクロのコマンドをコマンドヒストリウィンドウに表示する機能をオンにします。

この機能をオフにするには、NoEchoコマンドを使用します。

NoEcho

コマンドの位置

_nobutton.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

NoEchoコマンド

マクロのコマンドをコマンドヒストリウィンドウに表示する機能をオフにします。

この機能をオンにするには、Echoコマンドを使用します。

Enter

コマンドの位置

_nobutton.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

Enterコマンド

スクリプトやツールバーボタンのプログラミングでEnterキーを押すことを意味します。

このスクリプトは3つのピックされた点によって作業平面を設定します。

'_CPlane _3点

_Pause _Pause _Pause _Enter

メモ:Enterコマンドは、Enterキーを押した時のように1つ前のコマンドを繰り返すことはしません。

EnterEnd

コマンドの位置

_nobutton.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

EnterEndコマンド

マクロやツールバーボタンのプログラミングでEnterキーを押してコマンド文字列を完了することを意味します。EnterEndは、例えばOptionsまたはDocumentPropertiesのコマンドオプションを使用する際に、Enterを何度か繰り返してコマンドを終了しなくても、コマンドから「抜け出す」ことができます。例えば:

!_-DocumentProperties _Mesh _Custom _MaxEdgeSrf .01

は、コマンドを終了するのに少なくとも2つか3つのEnterが必要です。EnterEndを使用すると、この手間がありません。

!_-DocumentProperties _Mesh _Custom _MaxEdgeSrf .01 _EnterEnd

Exit

コマンドの位置

_nobutton.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

Exitコマンド

現在のRhinoのセッションを閉じます。

Pause

コマンドの位置

_nobutton.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

Pauseコマンド

マクロの実行を一旦停止してユーザー入力を待ちます。

このマクロは、点の入力を待ち、その点を中心とする半径50の円を作成します。

!_Circle _Pause 50

Run

コマンドの位置

_nobutton.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

Runコマンド

Rhinoのから他のアプリケーションを実行します。

操作手順

number_onestep.gif実行するファイルの名前とパスをタイプします。

set_redraw_off.pngSetRedrawOff

コマンドの位置

set_redraw_off.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

SetRedrawOffコマンド

スクリプトを実行中に、画面の再描画や作業平面やカメラの変更を不可能にします。

number_onestep.gif再描画をオンにするにはSetRedrawOnコマンドを使用します。

set_redraw_off.pngSetRedrawOn

コマンドの位置

set_redraw_off.png_rightbuttononly.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

SetRedrawOnコマンド

スクリプトを実行中に、画面の再描画や作業平面やカメラの変更を可能にします。

number_onestep.gif再描画をオフにするにはSetRedrawOffコマンドを使用します。

スクリプト作成

RhinoScriptは、スクリプトを実行するためのプラグインです。スクリプト言語では、ループ、変数名、ファイルの参照、クエリー、その他を使用することができます。

次のコマンドを使用します。

LoadScript

RunScript

EditScript

基本操作ステップ

number-1.pngスクリプト関数を記述します。

RhinoScriptは、.rvbのファイル拡張子を使用します。

number-2.pngLoadScriptコマンドを実行してメモリにスクリプトを読み込みます。

number-3.pngRunScriptコマンドを実行して、関数名を実行します。

メモ:.rvbファイルをRhinoウィンドウにドラッグすると、スクリプトがロード、実行されます。

スクリプトに関してのヘルプを表示するには

number_onestep.gifRhinoのヘルプメニューのプラグインをクリックし、RhinoScriptをクリックします。

Rhino特有のスクリプトについてはこちらをご覧ください:http://www.rhino3d.com/scripting/

LoadScript

コマンドの位置

_nobutton.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

LoadScriptコマンド

スクリプトをディスクから読み取り、スクリプトのインタプリタにロードし、実行します。

メモ:.rvbファイルをRhinoウィンドウにドラッグすると、スクリプトがロード、実行されます。

操作手順

number_onestep.gifスクリプトファイルのロードダイアログボックスでヘルプメニューをクリックします。

Rhino特有のスクリプトについてはこちらをご覧ください:http://www.rhino3d.com/scripting/

オンラインのRhinoScriptプログラマーのための参考資料に関してはこちらをご覧ください:http://www.rhino3d.com/5/rhinoscript/index.html

RunScript

コマンドの位置

_nobutton.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

RunScriptコマンド

ロードしているスクリプトを実行します。

メモ:.rvbファイルをRhinoウィンドウにドラッグすると、スクリプトがロード、実行されます。

操作手順

number_onestep.gifスクリプトサブルーチンダイアログボックスでヘルプメニューをクリックします。

Rhino特有のスクリプトについてはこちらをご覧ください:http://www.rhino3d.com/scripting/

EditScript

コマンドの位置

_nobutton.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

コマンドマクロとスクリプト作成コマンド

RhinoScriptファイルを編集するテキストエディタユーティリティを開きます。

操作手順

number_onestep.gifEdit Script ダイアログボックスのヘルプメニューをクリックしてください。

Rhino特有のスクリプトについてはこちらをご覧ください:http://www.rhino3d.com/scripting/

RunPythonScript

コマンドの位置

_nobutton.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

RunPythonScriptコマンド

Pythonのスクリプトを実行します。

Rhino特有のスクリプトについてはこちらをご覧ください:http://www.rhino3d.com/scripting/

オンラインのRhino.Pythonプログラマーのための参考資料に関してはこちらをご覧ください:

http://www.rhino3d.com/5/ironpython/index.html

-RunPythonScript

オプション

ResetEngine

Pythonエンジンを再初期化させます。これは、複数のファイルに渡るPythonスクリプトを書く/テストする時のみ便利です。

EditPythonScript

コマンドの位置

_nobutton.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

EditPythonScriptコマンド

Pythonスクリプトを編集します。

Rhino特有のスクリプトについてはこちらをご覧ください:http://wiki.mcneel.com/developer/python

SetUserText

コマンドの位置

_nobutton.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

SetUserTextコマンド

オブジェクトにテキスト情報を付加します。

この情報は、Windowsのレジストリが使用するのに似たキー/値形式に格納されます。

情報を取り出すには、GetUserTextコマンドを使用します。この情報は、.NETプラグインやVisualBasicスクリプトを使用しても付加できます。

この情報は、.NETプラグインやVisualBasicで簡単にアクセスできます。

テキストキー = Weight

テキスト = Kilograms

操作手順

number-1.pngオブジェクトを選択します。

number-2.pngテキストキーをタイプします。

number-3.pngテキストを入力します。

キーを削除するには

number-1.pngオブジェクトを選択します。

number-2.pngテキストキーをタイプします。

number-3.png""(二重引用符)をタイプします。

オプション

アタッチ先

オブジェクト

オブジェクトジオメトリにテキスト情報を付加します。

情報がジオメトリに密接な関係がある場合にジオメトリにアタッチします。例えば、円の半径はジオメトリにアタッチするべきです。円が制御点編集されNURBS曲線に変更された場合、情報が無効になるからです。

属性

オブジェクトの属性にテキスト情報を付加します。

情報がハイレベルの属性情報(色など)の場合、オブジェクトの属性にアタッチされるべきです。オブジェクトが制御点編集、トリム、コピーなどされても、属性情報は維持されます。

GetUserText

コマンドの位置

_nobutton.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

GetUserTextコマンド

SetUserTextコマンドでオブジェクトにアタッチされたテキスト情報を取り出します。この情報は、.NETプラグインやVisualBasicスクリプトを使用しても取り出せます。

操作手順

number-1.pngオブジェクトを選択します。

number-2.pngテキストキーをタイプします。すべてのキーの場合は、Enterキーを押します。

SetDocumentUserText

コマンドの位置

_nobutton.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

SetDocumentUserTextコマンド

Rhino .3dmファイルにテキスト情報をアタッチします。

この情報は、Windowsのレジストリが使用するのに似たキー/値形式に格納されます。

情報を取り出すには、GetDocumentUserTextコマンドを使用します。この情報は、.NETプラグインやVisualBasicスクリプトを使用しても付加できます。

この情報は、.NETプラグインやVisualBasicで簡単にアクセスできます。

操作手順

number-1.pngテキストキーをタイプします。

number-2.pngテキストを入力します。

GetDocumentUserText

コマンドの位置

_nobutton.pngツールバー

menuicon.pngメニュー

ctrlplus.pngショートカット

GetDocumentUserTextコマンド

SetDocumentUserTextコマンドでアタッチされたテキスト情報を取り出します。この情報は、.NETプラグインやVisualBasicスクリプトを使用しても取り出せます。

操作手順

number_onestep.gifテキストキーをタイプします。すべてのキーの場合は、Enterキーを押します。