【Rhino 6】コマンドマクロ機能を使って単純作業を半自動化するTips

McNeel Rhino6 logo

今回はかなりニッチな情報を備忘録的に残しておきます。
ライノ上で開いたDWGファイルを何倍かに拡大して再度保存するという作業をできるだけ自動化した経緯と実際のコマンドをメモとして残しておきます。

ARCHICADから書き出したDWG図面を人に渡したいときに考えたものです。

ARCHICADから図枠入りで書き出したDWG図面をもとのスケールに戻したい。

ARCHICADから図枠入り図面を書き出すには、DWGエクスポートのところで「ペーパースペースビュー一部」にすると、図枠と図面が同じペーパー空間に書き出されて無駄なリンクがなくシンプルで便利ですよね。

レイアウトからDWGへエクスポート
  レイアウトからエクスポート レイアウトから保存する場合、配置している各図面をモデル空間に配置するか、ペーパー空 間に配置するか、単一ファイル内か、外部参照するかを選択できます。設定は、DXF-DWG 変換設定で指定された設定で保存されます。   また出力の際、様々な設定が保存オプション内にて可能です。 ※長さ寸法...

設備さんやサブコンさんなどから図枠入り図面をシンプルな形でほしいと言われることがあったりするので、重宝しています。

Auto cadでいうと「EXPORTLAYOUT」コマンドとほぼ同じ機能ですね。

ただ、このとき一つ問題なのが、シート(ペーパー)をそのまま書き出しているので、例えば1/300図面の場合、そのまま1/300されて全体に小さくなっているところです。

これをそのまま設備に渡してもそれほど問題ないかもしれませんが、やはり少し気持ち悪いので、もう一度300倍してもとの縮尺に戻して渡したいところです。

おそらくこの作業はARCHICAD側ではできないので、私はいつもRhinoで何倍かして縮尺をもとに戻してから再びDWG保存して渡しています。

このひと手間が図面枚数が多かったりするとかなり面倒です。

これを少しだけ自動化しました。

Rhino 6のコマンドマクロを利用して作業を半自動化。

ライノにはコマンドプロンプトがありますが、ここにコマンドマクロを打ち込んで、一連の連続した作業をいちどきに行うことが可能です。

マクロの概要はRhino Wikiにわかりやすく載っています。マクロは、「最も単純なレベルのスクリプトであり、プログラミングの知識がなくても、平均的なRhinoユーザーが簡単にアクセスできます。」ということで、コマンドを組み合わせて行く感じで、GHを組むほどでもプログラマーに頼むほどでもないけど効率化したいときに便利そうです。

Creating Macros [McNeel Wiki]

具体的な使い方や後述する特殊文字の意味はヘルプページに記載があります。

今回は1/300などに小さくなった図面をもとに戻すために、以下の作業を連続して行えるようにしました。

  • すべての非表示レイヤを表示する。_-Layer _On *
  • すべてのロックされたレイヤをアンロックする。(_-Layer Unlock *
  • 画面上のすべての要素を選択する。(_-SelAll)
  • 選択した要素を平面的に(300)倍する。(_-Scale2D 0,0 1,0 300,0
  • 大きくなった全要素にズームする。(_-Zoom _All _Extents)
  • 別名で保存ダイアログを開く。(_SaveAs)
  • 次のファイルを開く。(_Open)

これをコマンドマクロにすると以下のようになります。

ここでは原点を起点に平面的に300倍しています。

Rhino コマンドマクロの基本記号など

ライノのコマンドマクロを使うにあたって知っておきたい基本の特殊文字をメモしておきます。(基本的にはヘルプページそのままで、少し補足しています)

特殊文字マクロでの意味
!ビックリマーク。1つ前のコマンドをキャンセル。
とりあえず一番最初につけておいたほうが良さそう。
_アンダーバー。英語のコマンド名を使ってコマンドを実行。
コマンドをマクロを使う際にライノの使用言語に関わらず強制的に英語でのコマンド名を使うようにする。
とりあえずすべてのコマンドの前にこれは必須。
(他の人に渡す可能性を考えても)
ハイフン。ダイアログボックスを表示しない。
ダイアログ中での選択肢はつづけてタイプしてしておくことで指定できる。多分。
*アスタリスク。コマンドの繰り返し。
これで指定したすべての要素に作業を繰り返したりできる。

その他は、先ほども挙げたヘルプに詳しく書いてあります。

アイコンにしてクリックで動かすこともできるよう。

コマンドマクロの動かし方は文字列をテキストエディタで書いておいて、それをライノのコマンドプロンプトにペーストすることで動かせますが、アイコン化してそれをクリックすることでもできるようです。

Rhino Wikiよりボタン編集ダイアログ

これも今度試してみようと思います。

できれば(できるのか知りませんが)Rhino ScriptやPython Scriptなどを使って複数ファイルのバッチ処理なんかもできればもっと効率化できると思われます。これも時間があればやり方を調べてみようと思います。

以上、『【Rhino 6】コマンド機能を使って単純作業を半自動化するTips』でした。

コメント