Rhinoでスクリプトを作成する
すべてのRhinoのコマンドはコマンドスクリプトで使用することができます。 コマンドスクリプトは、コマンドプロンプトでコマンドをタイプして、ショートカットキー
、コマンドエイリアス
を使用して、ReadCommandFile
コマンドから、そしてPaste
コマンドを使用してRhinoのコマンドストリームで実行できます。
コマンドスクリプトの書き方
コマンドスクリプトは、コマンドラインでコマンドをタイプするのと同じように書くことができます。 文字と文字の間にあるスペースや新規の行(改行)は、コマンドラインでEnter
を押すのと同じ働きをします。
特殊な文字
文字 |
スクリプトでの意味 |
! |
感嘆符(!)やスクリプトの始めにあるスペースは、その前に実行されたどのコマンドもキャンセルします。 他の場所にある場合は、スクリプトがキャンセルされます。 感嘆符はスクリプトの最後に使用することもできます。 |
_ |
Rhinoは多くの言語にローカライズされています。 日本語のバージョンでは、プロンプト、コマンドオプション、ダイアログボックス、メニューなどが翻訳されています。英語、日本語以外の言語バージョンでは、コマンドも翻訳されています。 そのため、英語、日本語以外の言語バージョンでは英語のコマンドをそのまま使うことはできません。 英語で書かれたスクリプトをRhinoの言語バージョンに関わらずすべてのコンピュータ上で実行できるようにするには、スクリプトは強制的にRhinoがすべてのコマンドを英語のコマンド名で認識するようにしなければなりません。 例:Rhino 3.0の英語バージョンでは、次のスクリプトを実行することができます。 Circle 3Point 0,0,0 1,1,0 0,3,0 しかし、フランス語バージョンのRhino 3.0では、このスクリプトは動作しません。 代わりに、次のスクリプトのどちらかを使う必要があります。 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 |
次にリストされているそれぞれの座標(x,y)に点オブジェクトを作成します。 |
_Enter |
Enter を押すことを意味し、点の作成を終了します。 |
_Invert |
選択を反転します。 スクリプトの最初にシーン中のすべての表示オブジェクトが選択されていたので、Invertコマンド実行後には選択が反転され、新しく作成された点オブジェクトだけが選択されます。 |
_CurveThroughPt |
点オブジェクトを通るポリラインを作成します。 |
ダイアログボックスを回避する
! -_Helix _pause _-pause _Turns=8.2 _ReverseTwist=Yes
軸の始点と終点の入力を促すプロンプトが表示されます。 他のオプション(回転数と回転を反転)はスクリプトで設定されます。 Helix
コマンドでは、これらのオプションはダイアログボックスを使って設定されます。
これらのスクリプトを試してみよう
-
このヘルプトピックからスクリプトを選択します。
-
Ctrl
+ C
を押してクリップボードにコピーします。 -
Rhinoコマンドプロンプトをクリックし、Ctrl + Vスクリプトをペーストします。
特殊なコマンドのスクリプトを作成する
Pause |
スクリプトの実行を一旦停止してユーザー入力を待ちます。 例: ! _Circle _Pause 50 このスクリプトは、点の入力を待ち、その点を中心とする半径50の円を作成します。 |
Enter |
Enterキーを押すことを意味します。 手で操作する時はEnter キーを押すと1つ前のコマンドが繰り返されますが、このコマンドにはその働きはありません。 |
SetRedrawOff |
スクリプトを実行する時、画面が再描画されない、また作業平面やカメラが変更されないようにします。 |
SetRedrawOn |
画面の再描画がSetRedrawOffコマンドでオフになっている際、このコマンドで再描画をオンにします。 |
NoEcho |
スクリプトのコマンドをコマンドヒストリウィンドウに表示する機能をオフにします。 |
Echo |
スクリプトのコマンドをコマンドヒストリウィンドウに表示する機能をオンにします。 |
メモ
-
スクリプトになんとタイプしてよいか分からない場合は、コマンドにハイフンを付けたバージョンを実行します。 コマンドのシーケンスをハイライトしてからコピーし、スクリプトテキストにペーストします。
スクリプト作成とテストのための編集ウィンドウを開きます。
操作方法:
-
マクロ編集ウィンドウにコマンドをタイプします。
-
テストを行うには、実行をクリックします。
-
マクロを削除するには、削除をクリックします。
メモ
-
テキストの一部を選択し、実行をクリックすると、マクロの選択された部分だけが実行されます。
-
右クリックすると、コンテクストメニューが表示され、すべて選択、コピー、ペースト、削除、実行等を行うことができます。
ユーティリティ > マクロエディタを開く
ツール > コマンド > マクロエディタ 関連トピック… |
テキストファイルからコマンドスクリプトを読んで実行します。
操作方法:
-
コマンドファイルを読み込みダイアログボックスで、読み込むファイルを選択します。
-
ファイルの内容がコマンドラインにコピーされ、コピーされた内容は手作業でコマンドを入力した時と同じように解釈されます。
メモ
-
テキストファイル作成時、コマンドを実行するために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
など
ツール > コマンドファイルを読み込み
ツール > コマンド > ファイルから読み込み 関連トピック… |
スクリプトの実行を一旦停止してユーザー入力を待ちます。
例:
このスクリプトは、点の入力を待ち、その点を中心とする半径50の円を作成します。
! _Circle _Pause 50
なし
なし 関連トピック… |
スクリプトやツールバーボタンのプログラミングでEnterキーを押すことを意味します。
例
このスクリプトはz軸によって作業平面を設定します。
‘_CPlane _3点
_Pause _Pause _Enter
メモ
-
Enterコマンドは、Enter
キーを押した時のように1つ前のコマンドを繰り返すことはしません。
なし
なし 関連トピック… |
スクリプトのコマンドをコマンドヒストリウィンドウに表示する機能をオンにします。
なし
なし 関連トピック… |
スクリプトのコマンドをコマンドヒストリウィンドウに表示する機能をオフにします。
なし
なし 関連トピック… |
スクリプトを実行中に、画面の再描画や作業平面やカメラの変更を可能にします。
メモ
-
画面の再描画がSetRedrawOff コマンドでオフになっている際、このコマンドで再描画をオンにします。
ビュー > 再描画オンに設定(右クリック)
なし 関連トピック… |
スクリプトを実行中に、画面の再描画や作業平面やカメラの変更を不可能にします。
メモ
-
再描画をオンにするにはSetRedrawOn コマンドを使用します。
ビュー > 再描画オフに設定
なし 関連トピック… |
現在のコマンドをキャンセルし、オブジェクトの選択を解除します。
メイン1 > キャンセル
なし
キーボードショートカット: Esc 関連トピック… |
現在のRhinoのセッションを閉じます。
なし
なし 関連トピック… |
Rhinoのから他のアプリケーションを実行します。
操作方法:
-
実行するファイルの名前とパスをタイプします。
なし
なし 関連トピック… |
オブジェクトにテキスト情報を付加します。
情報はWindowsのレジストリを使用する時のように、キー/値に保管されます。
情報を取り出すには、GetUserText
コマンドを使用します。 この情報は、.NETプラグインやVisualBasicスクリプトを使用しても付加できます。
この情報は、.NETプラグインやVisualBasicで簡単にアクセスできます。
例
Text key = Weight
Text = Kilograms
操作方法:
-
オブジェクトを選択 します。
-
テキストキーをタイプします。
-
テキストをタイプします。
オプション
アタッチ先
ジオメトリ
オブジェクトジオメトリにテキスト情報を付加します。
情報がジオメトリに密接な関係がある場合にジオメトリにアタッチします。 例えば、円の半径はジオメトリにアタッチするべきです。円が制御点編集されNURBS曲線に変更された場合、情報が無効になるからです。
属性
オブジェクトの属性にテキスト情報を付加します。
情報がハイレベルの属性情報(色など)の場合、オブジェクトの属性にアタッチされるべきです。 オブジェクトが制御点編集、トリム、コピーなどされても、属性情報は維持されます。
なし
なし 関連トピック… |
SetUserText
コマンドを使用してアタッチされたテキスト情報を取り出します。 この情報は、.NETプラグインやVisualBasicスクリプトを使用しても取り出せます。
操作方法:
-
オブジェクトを選択 します。
-
テキストキーをタイプします。すべてのキーの場合は、Enter
キーを押します。
なし
なし 関連トピック… |