Grasshopperを使っていると、「今開いているRhinoのファイル名って、Grasshopperから取得できないのかな?」と思うこと、ありますよね。特に、ファイル名に応じて処理を分岐させたり、出力ファイル名に現在のRhinoファイル名を組み込んだりしたい場合に、この機能は欠かせません。今回は、その方法について具体的に見ていきましょう。
なぜファイル名が必要なの?
Rhinoのファイル名をGrasshopperで取得できると、実は色々なメリットがあるんですよ。例えば、プロジェクトごとに異なる設定を適用したい場合や、ファイルを保存する際に自動的に現在のRhinoファイル名を含んだパスを生成したい場合などです。手動での入力ミスを防ぎ、ワークフローをよりスマートに自動化するための第一歩と言えるでしょう。
Elefrontコンポーネントを活用する
「Grasshopper Active Document Name」という話題でよく名前が挙がるのが、人気プラグインElefrontです。Elefrontには、まさにこの目的のために設計された便利なコンポーネントが用意されています。具体的には、Elefrontの「Info」タブにある「Document Info」コンポーネントを使うと、Rhinoドキュメントに関する様々な情報を取得できます。このコンポーネントの出力には、ファイルのフルパスやファイル名が含まれており、これを取り出すことで簡単に目的を達成できますよ。
C# Scriptで柔軟に対応する
もしElefrontをインストールしていない、または特定の情報だけを素早く取得したい場合は、C# Scriptコンポーネントを使うのが非常に強力な選択肢です。Grasshopperの標準機能であるC# Scriptコンポーネントに以下のコードを記述することで、アクティブなRhinoドキュメントのパスを直接取得できます。
```csharp
private void RunScript(ref object Output)
{
string docPath = Rhino.RhinoDoc.ActiveDoc.Path;
string fileName = System.IO.Path.GetFileNameWithoutExtension(docPath);
Output = fileName;
}
```
このスクリプトは、`Rhino.RhinoDoc.ActiveDoc.Path`でフルパスを取得し、`System.IO.Path.GetFileNameWithoutExtension`で拡張子なしのファイル名だけを抽出しています。これを`Output`に接続すれば、Rhinoのファイル名がGrasshopperの他のコンポーネントで使えるようになります。非常にシンプルですが、これだけでできることの幅は大きく広がります。
取得したファイル名の活用例
ファイル名を取得したら、具体的にどんなことに使えるでしょうか?
* 条件分岐: ファイル名が「_Final」で終わる場合にのみ特定の処理を実行する、といったロジックを組めます。
* 出力パスの自動生成: ベイクするオブジェクトのレイヤー名や、エクスポートするファイル名に現在のRhinoファイル名を自動で含めることで、管理が楽になります。
* データ連携: 外部のExcelファイルやデータベースと連携する際に、ファイル名をキーとして関連データを検索する、といった高度な使い方も可能です。
このように、Rhinoのアクティブファイル名を取得する機能は、Grasshopperでの作業の効率化と自動化において非常に重要な役割を果たします。ぜひ、あなたのワークフローに取り入れてみてくださいね。
