コマンドマクロとスクリプト
すべてのRhinoのコマンドはコマンドマクロで使用することができます。コマンドマクロは、コマンドプロンプトでコマンドをタイプして、ツールバーから、ショートカットキー、コマンドエイリアスを使用して、ReadCommandFileコマンドから、そしてPasteコマンドを使用してRhinoのコマンドストリームで実行できます。
コマンドマクロの記述
コマンドマクロは、コマンドラインでコマンドをタイプするのと同じように書くことができます。
特殊な文字 |
マクロでの意味 |
(スペース) |
マクロ中のスペース文字はEnterを押すのと同じ働きをします。 スペースを含む名前(またはテキスト文字列)をスクリプト化する場合は、コマンドシーケンスが壊れないように、名前を二重引用符で囲む必要があります。 例えば: _-SelName "Table 01" ✔ _-SelName Table 01 ✘ |
* |
Enterを押して再度実行しなくてもコマンドが自動的に繰り返されます。 |
! |
1つ前のコマンドをキャンセルします。 マクロの先頭にある感嘆符(!)は、前のコマンドをキャンセルします。他の場所にある場合は、マクロがキャンセルされます。感嘆符はマクロの最後に使用することもできます。 |
- |
ダイアログボックスを表示しません。 基本的にすべてのコマンドは、コマンドラインでマクロにできます(デフォルトでダイアログボックスを表示するコマンドも含む)。ダイアログボックスまたはウィンドウを表示せず、コマンドラインオプションを使うには、接頭辞としてコマンドの前にハイフン(-)を付けます。いくつかのコマンド(例えば、DevLoft)はコマンドラインでしか使用できないオプションを持ちます。 |
_ |
英語のコマンドやオプションを実行します。 Rhinoは多くの言語にローカライズされています。コマンドやオプションの翻訳はそれぞれの言語で異なります。マクロをワールドワイドで機能させるには、すべてのコマンドとオプションの前に下線を付けて英語でマクロを作成することをお勧めします。 例えば: Cerchio 3Punti 0,0,0 1,1,0 0,3,0 ❗ 下のマクロは、イタリア語バージョンのRhinoでのみ動作します。
_Circle _3Point 0,0,0 1,1,0 0,3,0 ✔ このマクロはすべての言語バージョンのRhinoで動作します。
|
' |
次のコマンドは、ネストすることが可能なコマンドです。 ビューと作業平面操作およびオブジェクトスナップはネストできます。ジオメトリ作成コマンドはネストできません。 一時オブジェクトスナップやサブオブジェクトのピックフィルタは、自動的にネストでき、アポストロフィーは必要ありません。 |
\ |
ツールバーボタンのマクロの最後の文字が「\」の場合、マクロは最後にEnterが押されない状態で実行されます。 例えば: 「5\」というマクロでツールバーボタンを作成します。ボタンをクリックすると、コマンドラインに5が入力され、次の入力を待ちます。この機能を使用すると、画面上でテンキーの機能を持つツールバーを作成することが可能です。
|
~ |
コマンドオプションを省略します。(コマンドのフィードバックがすっきりします。)オプションは通常通り動作します。 |
; (セミコロン) |
コメントです。 セミコロン(;)で始まる行はマクロの一部ではありませんが、マクロの説明などをコメントとして記入することができます。 例えば: ; This is a test macro |
:: (ダブルコロン) |
レイヤの入れ子(ネスト)をレイヤ名の間のダブルコロン("::")で表すことができます。-LayerコマンドでLayer 01の下に新しいレイヤを入れ子にするには次のようなマクロを作成してください: ! _-Layer New "Layer 01:: New Layer" Enter |
# (ハッシュマーク) |
続いて記述されるコマンドのヒストリの記録をオンにします。 例えば: #ArcBlend |
% (パーセント) |
続いて記述されるコマンドのヒストリの記録をオフにします。 例えば: %ArcBlend |
(感嘆符と + アンド) |
ヒストリのロックを一時的に無効にします。 例: !&_Deleteや!&_Join |
例
円を作成する
このマクロは中心が5,5、半径が10の円を作成します。
! _-Circle 5,5 10
各エントリ間のスペースは、手入力でコマンドをタイプする際にEnterキーを押す位置と同じです。
オブジェクトの選択を解除し、Moveコマンドを開始する
このマクロは、選択されているオブジェクトがある場合それを解除してから、Moveコマンドを実行します。
! _SelNone _Move
点を通る曲線を作成する
このマクロは、3つの点を作成、それらすべてを選択後、それらの点を通るポリラインを作成します。
! _SelAll _Points _Pause _Pause _Pause _Enter _Invert _CurveThroughPt _EnterEnd
スクリプトの動作:
! _SelAll |
前のコマンドすべてをキャンセルし、現在モデル内にあるすべてのオブジェクトを選択します。 |
_Points |
Pointsコマンドを実行します。 |
_Pause _Pause _Pause |
3点の位置をピックさせます。 |
_Enter |
Enterを押すことを意味し、点の作成を終了します。 |
_Invert |
選択を反転します。スクリプトの最初にシーン中のすべての表示オブジェクトが選択されていたので、Invertsコマンド実行後には選択が反転され、新しく作成された点オブジェクトだけが選択されます。 |
_CurveThroughPt |
点オブジェクトを通るポリラインを作成します。 |
_EnterEnd |
コマンドを完了します。 |
ダイアログボックスを回避する
! -_Rebuild _Pause _Points=10 _Degree=3 _Enter
曲線を選択し、このマクロを実行します。すべてのオプションはマクロによって設定されます。
これらのスクリプトを試してみよう
特殊なコマンドのスクリプトを作成する
Pause |
マクロの実行を一旦停止してユーザー入力を待ちます。 例: ! _Circle _Pause 50 このマクロは、点の入力を待ち、その点を中心とする半径50の円を作成します。 |
MultiPause |
Join、Polyline、FilletEdgeなどで複数の選択の間スクリプトを停止します。 |
Enter |
マクロの中でEnterを押す役割をします。 手で操作する時はEnterキーを押すと1つ前のコマンドが繰り返されますが、このコマンドにはその働きはありません。 |
EnterEnd |
コマンドを完了します。 |
SetRedrawOff |
マクロを実行する時、画面が再描画されない、また作業平面やカメラが変更されないようにします。 |
SetRedrawOn |
画面の再描画がSetRedrawOffコマンドでオフになっている時、このコマンドで再描画をオンにします。 |
NoEcho |
マクロのコマンドをコマンドヒストリウィンドウに表示する機能をオフにします。 |
Echo |
マクロのコマンドをコマンドヒストリウィンドウに表示する機能をオンにします。 |
マクロになんとタイプしてよいか分からない場合は、コマンドにハイフンを付けたバージョンを実行します。コマンドのシーケンスをハイライトしてからコピーし、マクロテキストにペーストします。
ツールバー | メニュー |
---|---|
|
ウィンドウ パネル > マクロエディタ |
MacroEditorコマンドは、マクロ作成とテストのための編集ウィンドウを開きます。
マクロエディタパネル
操作手順
-
マクロ編集ウィンドウにコマンドやオプションをタイプします。
-
ボタンをクリックしてマクロをテストします。
ツールバー
実行
マクロ全体、またはマクロのハイライトされた部分を実行します。
削除
編集ボックスをクリアします。
コンテクストメニュー
カット
選択したテキストをクリップボードにコピーし、テキストを削除します。
コピー
選択したものをクリップボードにコピーします。
ペースト
クリップボードに保存されているテキストをカーソル位置に挿入します。
ツールバー | メニュー |
---|---|
|
ツール コマンド > ファイルから読み込み |
ReadCommandFileコマンドは、テキストファイルからコマンドマクロを読んで実行します。
操作手順
- テキストファイルを開くダイアログボックスで、読み込むファイルを選択します。
ファイルの内容がコマンドラインにコピーされ、コピーされた内容は手作業でコマンドを入力した時と同じように解釈されます。
メモ
- テキストファイル作成時、コマンドを実行するために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
など
ツールバー | メニュー |
---|---|
|
|
NoEchoコマンドは、マクロのコマンドをコマンドヒストリウィンドウに表示する機能をオフにします。
- この機能をオンにするには、Echoコマンドを使用します。
マクロを正しく動作させるためには、NoEchoや_NoEchoがマクロの一番最初の言葉である必要があります。感嘆符を含むすべては、1つのスペースを置いて、続ける必要があります。
ツールバー | メニュー |
---|---|
|
|
Enterコマンドは、スクリプトやツールバーボタンのプログラミングでEnterキーを押すことを意味します。
例
このスクリプトは3つのピックされた点によって作業平面を設定します。
'_CPlane _3Point
_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
ツールバー |
メニュー |
ショートカット |
---|---|---|
|
Rhino Rhinocerosを終了 |
Ctrl (CMD) + Q |
Exitコマンドは、現在のRhinoのセッションを閉じます。
ツールバー | メニュー |
---|---|
|
|
Pauseコマンドは、マクロの実行を一旦停止してユーザー入力を待ちます。
例
このマクロは、点の入力を待ち、その点を中心とする半径50の円を作成します。
! _Circle _Pause 50
ツールバー | メニュー |
---|---|
|
|
MultiPauseコマンドは、マクロの実行を一旦停止してユーザー入力を待ちます。
例
このマクロは、結合する複数のオブジェクトの入力を促します。
! _Join _MultiPause
ツールバー | メニュー |
---|---|
|
|
SetRedrawOffコマンドは、スクリプトを実行中に、画面の再描画や作業平面やカメラの変更を不可能にします。
再描画をオンにするには
- SetRedrawOnコマンドを使用します。
ツールバー | メニュー |
---|---|
|
|
SetRedrawOnコマンドは、スクリプトを実行中に、画面の再描画や作業平面やカメラの変更を可能にします。
再描画をオフにするには
- SetRedrawOffコマンドを使用します。
Rhino特有のスクリプトについてはこちらをご覧ください: http://wiki.mcneel.com/rhino/basicmacros
ツールバー |
メニュー |
---|---|
|
RunPythonScriptコマンドは、Pythonのスクリプトを実行します。
オンラインのRhino.Pythonプログラマーのための参考資料に関してはこちらをご覧ください: http://developer.rhino3d.com/guides/rhinopython
-RunPythonScript
オプション
ResetEngine
Pythonエンジンを再初期化させます。これは、複数のファイルに渡るPythonスクリプトを書く/テストする時のみ便利です。
ツールバー |
メニュー |
---|---|
|
EditPythonScriptコマンドは、Pythonスクリプトを編集します。
Rhino.Python特有のスクリプトについてはhttp://developer.rhino3d.com/guides/rhinopythonをご覧ください。
ツールバー |
メニュー |
---|---|
|
ツール スクリプト > 編集 |
ScriptEditorコマンドは、PythonとC#プログラミングのためのスクリプトエディタウィンドウを開きます。
コマンドラインオプション
スクリプト用のコマンドである「-ScriptEditor」を実行した場合、コマンドラインオプションにアクセスできます。
編集
スクリプトエディタウィンドウを開きます。
実行
スクリプトファイルを実行します。
マクロを使用してスクリプトファイルを実行するには
スクリプトファイルのパスを指定するには、いくつかの方法があります。
-
完全なファイルパスを使用する:
_-ScriptEditor _Run "/Users/<ユーザー名>/Documents/My Script.py"
-
パスで環境変数を使用する:
_-ScriptEditor _Run "$HOME/Documents/My Script.py"
_-ScriptEditor _Run "~/Documents/My Script.py"
これらのマクロはドキュメントフォルダの「My Script.py」ファイルを実行します。
すべての環境変数のリストを表示するには、ターミナルで「Env」コマンドを実行します。
-
Rhinoの設定 > ファイルで設定されているフォルダ内のファイルを検索する:
_-ScriptEditor _Run "My Script.py"
開く
スクリプトファイルをスクリプトエディタウィンドウに読み込みます。