コマンドマクロとスクリプト作成
ツールバー |
メニュー |
ショートカット |
すべてのRhinoのコマンドはコマンドマクロで使用することができます。コマンドマクロは、コマンドプロンプトでコマンドをタイプして、ツールバーから、ショートカットキー、コマンドエイリアスを使用して、ReadCommandFileコマンドから、そしてPasteコマンドを使用してRhinoのコマンドストリームで実行できます。
コマンドマクロは、コマンドラインでコマンドをタイプするのと同じように書くことができます。文字と文字の間にあるスペースや新規の行(改行)は、コマンドラインでEnterを押すのと同じ働きをします。
特殊な文字
文字 |
マクロでの意味 |
* (アスタリスク) |
Enterキーを押して再度実行しなくてもコマンドが自動的に繰り返されます。 |
! |
マクロの始めにあるスペースや感嘆符(!)は、その前に実行されたどのコマンドもキャンセルします。他の場所にある場合は、マクロがキャンセルされます。感嘆符はマクロの最後に使用することもできます。 |
_ |
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 マクロが確実に別の言語バージョンで動作するようにするには、マクロを英語で書き、すべてのコマンド名とオプションの前に_を付けます。 |
- |
すべてのコマンドは、コマンドラインでマクロにできます(デフォルトでダイアログボックスを表示するコマンドも含む)。ダイアログボックスまたはウィンドウを表示せず、コマンドラインオプションを使うには、接頭辞としてコマンドの前にハイフン(-)を付けます。 |
' |
ビューと作業平面操作およびオブジェクトスナップはネストできます。ジオメトリ作成コマンドはネストできません。 一時オブジェクトスナップやサブオブジェクトのピックフィルタは、自動的にネストでき、アポストロフィーは必要ありません。 |
\ |
ツールバースマクロの最初の文字が"!"でなく、最後が" \"で終わっていれば、Enterキーを押さなくてもでコマンドライン上でスクリプトが動きます。これでより多くの情報を追加できます。 これは数値、小数点、角度("<45"など)をボタンに表示して、画面上に"テンキー"を作成するのに便利です。 |
~ |
|
; (セミコロン) |
セミコロン(;)で始まる行はマクロの一部ではありませんが、マクロの説明などをコメントとして記入することができます。 例えば: ; This is a test macro |
例
円を作成する
このマクロは中心が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
曲線を選択し、このマクロを実行します。すべてのオプションはマクロによって設定されます。
これらのスクリプトを試してみよう
このヘルプトピックからマクロを選択します。
Ctrl + Cを押してクリップボードにコピーします。
Rhinoコマンドプロンプトをクリックし、Ctrl + Vを押してマクロをペーストします。
特殊なコマンドのスクリプトを作成する
一時停止 |
マクロの実行を一旦停止してユーザー入力を待ちます。 例 !_Circle _Pause 50 このマクロは、点の入力を待ち、その点を中心とする半径50の円を作成します。 |
Enter |
マクロの中でEnterを押す役割をします。 手で操作する時はEnterキーを押すと1つ前のコマンドが繰り返されますが、このコマンドにはその働きはありません。 |
EnterEnd |
コマンドを完了します。 |
SetRedrawOff |
マクロを実行する時、画面が再描画されない、また作業平面やカメラが変更されないようにします。 |
SetRedrawOn |
画面の再描画がSetRedrawOffコマンドでオフになっている時、このコマンドで再描画をオンにします。 |
NoEcho |
マクロのコマンドをコマンドヒストリウィンドウに表示する機能をオフにします。 |
Echo |
マクロのコマンドをコマンドヒストリウィンドウに表示する機能をオンにします。 |
メモ:マクロになんとタイプしてよいか分からない場合は、コマンドにハイフンを付けたバージョンを実行します。コマンドのシーケンスをハイライトしてからコピーし、マクロテキストにペーストします。
MacroEditorコマンド
マクロ作成とテストのための編集ウィンドウを開きます。
マクロエディタパネル
操作手順
マクロ編集ウィンドウにコマンドをタイプします。
テストを行うには、実行をクリックします。
マクロを削除するには、削除をクリックします。
メモ
テキストの一部を選択し、実行をクリックすると、マクロの選択された部分だけが実行されます。
右クリックすると、コンテクストメニューが表示され、すべて選択、コピー、ペースト、削除、実行等を行うことができます。
ReadCommandFilesコマンド
テキストファイルからコマンドマクロを読んで実行します。
操作手順
テキストファイルを開くダイアログボックスで、読み込むファイルを選択します。
ファイルの内容がコマンドラインにコピーされ、コピーされた内容は手作業でコマンドを入力した時と同じように解釈されます。
メモ
テキストファイル作成時、コマンドを実行するためにEnterキーを押す操作を記述するにはEnterコマンドを使ってください。
ある特定のファイルを頻繁に読み込むことがある場合、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コマンド
マクロのコマンドをコマンドヒストリウィンドウに表示する機能をオンにします。
この機能をオフにするには、NoEchoコマンドを使用します。
ツールバー |
メニュー |
ショートカット |
NoEchoコマンド
マクロのコマンドをコマンドヒストリウィンドウに表示する機能をオフにします。
この機能をオンにするには、Echoコマンドを使用します。
ツールバー |
メニュー |
ショートカット |
Enterコマンド
スクリプトやツールバーボタンのプログラミングでEnterキーを押すことを意味します。
例
このスクリプトは3つのピックされた点によって作業平面を設定します。
'_CPlane _3点
_Pause _Pause _Pause _Enter
メモ:Enterコマンドは、Enterキーを押した時のように1つ前のコマンドを繰り返すことはしません。
ツールバー |
メニュー |
ショートカット |
EnterEndコマンド
マクロやツールバーボタンのプログラミングでEnterキーを押してコマンド文字列を完了することを意味します。EnterEndは、例えばOptionsまたはDocumentPropertiesのコマンドオプションを使用する際に、Enterを何度か繰り返してコマンドを終了しなくても、コマンドから「抜け出す」ことができます。例えば:
!_-DocumentProperties _Mesh _Custom _MaxEdgeSrf .01
は、コマンドを終了するのに少なくとも2つか3つのEnterが必要です。EnterEndを使用すると、この手間がありません。
例
!_-DocumentProperties _Mesh _Custom _MaxEdgeSrf .01 _EnterEnd
ツールバー |
メニュー 終了 |
ショートカット |
Exitコマンド
現在のRhinoのセッションを閉じます。
ツールバー |
メニュー |
ショートカット |
Pauseコマンド
マクロの実行を一旦停止してユーザー入力を待ちます。
例
このマクロは、点の入力を待ち、その点を中心とする半径50の円を作成します。
!_Circle _Pause 50
ツールバー |
メニュー |
ショートカット |
Runコマンド
Rhinoのから他のアプリケーションを実行します。
操作手順
実行するファイルの名前とパスをタイプします。
ツールバー |
メニュー |
ショートカット |
SetRedrawOffコマンド
スクリプトを実行中に、画面の再描画や作業平面やカメラの変更を不可能にします。
再描画をオンにするにはSetRedrawOnコマンドを使用します。
ツールバー |
メニュー |
ショートカット |
SetRedrawOnコマンド
スクリプトを実行中に、画面の再描画や作業平面やカメラの変更を可能にします。
再描画をオフにするにはSetRedrawOffコマンドを使用します。
RhinoScriptは、スクリプトを実行するためのプラグインです。スクリプト言語では、ループ、変数名、ファイルの参照、クエリー、その他を使用することができます。
次のコマンドを使用します。
基本操作ステップ
スクリプト関数を記述します。
RhinoScriptは、.rvbのファイル拡張子を使用します。
LoadScriptコマンドを実行してメモリにスクリプトを読み込みます。
RunScriptコマンドを実行して、関数名を実行します。
メモ:.rvbファイルをRhinoウィンドウにドラッグすると、スクリプトがロード、実行されます。
スクリプトに関してのヘルプを表示するには
Rhinoのヘルプメニューのプラグインをクリックし、RhinoScriptをクリックします。
Rhino特有のスクリプトについてはこちらをご覧ください:http://www.rhino3d.com/scripting/
ツールバー |
メニュー RhinoScript ロード |
ショートカット |
LoadScriptコマンド
スクリプトをディスクから読み取り、スクリプトのインタプリタにロードし、実行します。
メモ:.rvbファイルをRhinoウィンドウにドラッグすると、スクリプトがロード、実行されます。
操作手順
スクリプトファイルのロードダイアログボックスでヘルプメニューをクリックします。
Rhino特有のスクリプトについてはこちらをご覧ください:http://www.rhino3d.com/scripting/
オンラインのRhinoScriptプログラマーのための参考資料に関してはこちらをご覧ください:http://www.rhino3d.com/5/rhinoscript/index.html
ツールバー |
メニュー RhinoScript Run |
ショートカット |
RunScriptコマンド
ロードしているスクリプトを実行します。
メモ:.rvbファイルをRhinoウィンドウにドラッグすると、スクリプトがロード、実行されます。
操作手順
スクリプトサブルーチンダイアログボックスでヘルプメニューをクリックします。
Rhino特有のスクリプトについてはこちらをご覧ください:http://www.rhino3d.com/scripting/
ツールバー |
メニュー RhinoScript 編集 |
ショートカット |
コマンドマクロとスクリプト作成コマンド
RhinoScriptファイルを編集するテキストエディタユーティリティを開きます。
操作手順
Edit Script ダイアログボックスのヘルプメニューをクリックしてください。
Rhino特有のスクリプトについてはこちらをご覧ください:http://www.rhino3d.com/scripting/
ツールバー |
メニュー PythonScript Run |
ショートカット |
RunPythonScriptコマンド
Pythonのスクリプトを実行します。
Rhino特有のスクリプトについてはこちらをご覧ください:http://www.rhino3d.com/scripting/
オンラインのRhino.Pythonプログラマーのための参考資料に関してはこちらをご覧ください:
http://www.rhino3d.com/5/ironpython/index.html
-RunPythonScript
オプション
ResetEngine
Pythonエンジンを再初期化させます。これは、複数のファイルに渡るPythonスクリプトを書く/テストする時のみ便利です。
ツールバー |
メニュー PythonScript 編集 |
ショートカット |
EditPythonScriptコマンド
Pythonスクリプトを編集します。
Rhino特有のスクリプトについてはこちらをご覧ください:http://wiki.mcneel.com/developer/python
ツールバー |
メニュー |
ショートカット |
SetUserTextコマンド
オブジェクトにテキスト情報を付加します。
この情報は、Windowsのレジストリが使用するのに似たキー/値形式に格納されます。
情報を取り出すには、GetUserTextコマンドを使用します。この情報は、.NETプラグインやVisualBasicスクリプトを使用しても付加できます。
この情報は、.NETプラグインやVisualBasicで簡単にアクセスできます。
例
テキストキー = Weight
テキスト = Kilograms
操作手順
オブジェクトを選択します。
テキストキーをタイプします。
テキストを入力します。
キーを削除するには
オブジェクトを選択します。
テキストキーをタイプします。
""(二重引用符)をタイプします。
オプション
アタッチ先
オブジェクトジオメトリにテキスト情報を付加します。
情報がジオメトリに密接な関係がある場合にジオメトリにアタッチします。例えば、円の半径はジオメトリにアタッチするべきです。円が制御点編集されNURBS曲線に変更された場合、情報が無効になるからです。
オブジェクトの属性にテキスト情報を付加します。
情報がハイレベルの属性情報(色など)の場合、オブジェクトの属性にアタッチされるべきです。オブジェクトが制御点編集、トリム、コピーなどされても、属性情報は維持されます。
ツールバー |
メニュー |
ショートカット |
GetUserTextコマンド
SetUserTextコマンドでオブジェクトにアタッチされたテキスト情報を取り出します。この情報は、.NETプラグインやVisualBasicスクリプトを使用しても取り出せます。
操作手順
オブジェクトを選択します。
テキストキーをタイプします。すべてのキーの場合は、Enterキーを押します。
ツールバー |
メニュー |
ショートカット |
SetDocumentUserTextコマンド
Rhino .3dmファイルにテキスト情報をアタッチします。
この情報は、Windowsのレジストリが使用するのに似たキー/値形式に格納されます。
情報を取り出すには、GetDocumentUserTextコマンドを使用します。この情報は、.NETプラグインやVisualBasicスクリプトを使用しても付加できます。
この情報は、.NETプラグインやVisualBasicで簡単にアクセスできます。
操作手順
テキストキーをタイプします。
テキストを入力します。
ツールバー |
メニュー |
ショートカット |
GetDocumentUserTextコマンド
SetDocumentUserTextコマンドでアタッチされたテキスト情報を取り出します。この情報は、.NETプラグインやVisualBasicスクリプトを使用しても取り出せます。
操作手順
テキストキーをタイプします。すべてのキーの場合は、Enterキーを押します。