Rhinoceros マクロ機能を使ってみる

Rhinocerosに関わらず、色々なアプリケーションでマクロを使っている人は多いと思います。繰り返しや決まった流れの処理には便利ですね。ただ、プラグインのように新しい機能を追加するわけではありませんので、その存在価値が薄れてしまっている感があります。それから前提としてマクロには以下のことは出来ません。

  • 演算・比較 (+、-、×、÷、>、<、=、など)
  • 条件分岐・ループ (プログラムの実行経路の変更)

このような処理を含めた複雑な機能が必要ならPythonなどプログラム言語が必要ですが、学習する時間と労力を考えるとハードルが高いと思います。

一方、マクロなら普段から慣れて使っているコマンドを繋げていくような処理なので、プログラムの挙動は把握できます。Rhinocerosを少しでも便利に使えれるよう、マクロの機能を見ていきましょう。

マクロとはどうやってできているのか

Rhinocerosはコマンドのとても多いアプリケーションです。私もすべてのコマンドは使っていませんし、このコマンドはまず使うことはないな、と思うものもあります。Rhinocerosを使い始めて最初の頃は、コマンドアイコンをクリックして操作している人が多いと思いますが、アイコンの場所にたどり着くのも時間が掛かることが多々あります。

慣れてくるとアイコンをクリックするのではなく、コマンドプロンプトからタイピングで実行する方が早い事に気が付きます。

例えば『円: 中心、半径指定』だと、コマンドプロンプトにCircleと入力します(大文字小文字は関係なし)。ちなみに実行中のコマンドが無ければカーソルの位置は関係なくコマンドプロンプトにタイピング入力され始めますのでありがたいです。この時、オートコンプリート機能が働き、入力文字に合わせて候補となるコマンドが絞られていきます。

オートコンプリート説明

Circleの場合は、『c, i』の2文字の入力でオートコンプリートされます。このようにコマンドをすべて入力する必要が無くなるので、コマンドが長くなればなるほど便利な機能です。そしてこの入力されたコマンドこそがRhinocerosを操作している本体です。

コマンドアイコンにマウスカーソルを合わせてshift+右クリックすると、ボタンエディタが立ち上がります。このときに左マウスボタンに設定されているコマンドを見てみると! _Circleとなっています。

コマンドエディタ解説

つまりコマンドアイコンはクリックすることで登録されているコマンドを実行させているのです。そしてコマンドを繋げたりオプション設定したりするのがマクロの機能です。

ではここから実際にマクロを組んでみましょう。

Rhinocerosにはマクロエディタという機能があります。MacroEditorとコマンドプロンプトに入力すれば立ち上がります(大文字小文字は関係なし)。コマンドアイコンは下図を参考に。メニューバーからだとツール→コマンド→マクロエディタです。『m, a, c』までキーボード入力すればオートコンプリート機能で立ち上がりますのでコマンドプロンプトが早いかと思います。

マクロエディタアイコンの位置

マクロエディタを起動したら以下のように入力してみてください。

! _Circle
マクロエディタ入力例

マクロエディタでは再生マークをクリックすると記述したものが実行されます。今は何も変更していないのでいつものCircleが実行されると思います。ではここから少し変更を加えます。0を追加します。

! _Circle 0

マクロを実行すると円の中心点座標が0に設定されて、次の円の大きさを決めるの操作まで省略されました。さらに10を追加します。

! _Circle 0 10

今度は 中心点座標が0 、直径もしくは半径が10の円が操作することなく描かれます。これはマクロでCircleコマンドの完了までの記述がされているためです。マクロの使い方としては有効性がないのでさらに変更を加えます。

! _Circle 0 D _Pause

これで中心点座標が0に設定され、直径を任意に指定して円を描くことが出来ました。 コマンドプロンプトで数値入力すれば、その直径の円が描けます。

Circleでは、Dは円を直径を指定で描くオプション設定です。そのあとの_Pauseはユーザーが任意の入力操作をすることを示しています。半径を指定のオプション設定の場合はRを記述します。オプション設定はコマンドによって様々あります。コマンドプロンプトに表示されていますので、それを踏まえれば難しいことはありません。

Circleの場合は下図のようになっています。

コマンドオプション説明1
コマンドオプション説明2

このようにオプション設定はコマンドプロンプトに表示されているオプション項目マウスクリックしても出来ますし、『半径(R)』と表示されている場合はRキーボード入力しても出来ます。マクロの場合は後者のキーボード入力のキーを利用して設定していきます。

今回は円を描く単純なマクロでしたが、応用次第でとても役に立つマクロを組むことが出来ます。気をつけなければならないのは、コマンドのオプション設定をきちんと指定していないと、複雑なマクロになっていくと思いも寄らない挙動になる事です。これはコマンドを実行したときのオプション設定が、同じコマンドを次に実行する時に引き継がれるために起こります。

通常は便利に思えるのですが、マクロでは困る場面があります。例えば、Circleコマンドの場合はオプション設定で直径指定なのか半径指定なのかを明確に記述していないと、思った円が描けません。

難しく思えてしまうかもしれませんが、しっかりポイントを理解さえすればマクロは難しいものではありません。