Grasshopper :: New Python Component ~part.2~

前回は新しくなったPythonコンポーネントの基本的な使い方について触れましが、今回はコンポーネント作成の応用編です。

Rhino Python Editorでコンポーネント作成

前回はGrasshopper内でPythonコンポーネントをコンパイルしましたが、新Pythonコンポーネントの他の機能を使ってRhinoのPython Editorでもコンポーネントを作成することができます。

Grasshopperで作成する場合との違いは、

  • 複数のコンポーネントを1つのghpyファイルで作成できる。
  • コードをモジュール化してghpyファイルに格納し、コンポーネントにインポートできる。

が挙げられるかと思われます。

それでは実際にやってみましょう。

作成手順

ここでは、2つのコンポーネントの同時作成と、モジュールを作ってghpyファイルに格納するということをやってみたいと思います。

コンポーネントの中身は、毎回多用しているリスト内の点をソートするコードと、そのソート結果が可視化されるものを作ってみたので、これらを例に進めていきます。

ざっくりの手順は以下の通りです。

  1. Grasshopperでコード生成
  2. Rhino Python EditorでPythonファイルを作成
  3. Rhino Python EditorでPythonファイルをコンパイル

Grasshopperでコード生成

まずは、Pythonコンポーネントに作成したい内容のコードを[Procedural Script Mode]の状態で入力します。

ここでは1.点をソート、2.ソートされた点のパスを表示、の2つのPythonコンポーネントを作成しました。

次に、1つ目の点をソートするPythonコンポーネントの[Mode]を[GH_Component SDK Mode]に切り替えます。

続いて[Mode]の[Copy Compilable Code]を選択すると、同じく[Mode]の[Compile]を選択した時のように、コンポーネントの設定画面が出てくるので、

コンポーネント名やカテゴリ、アイコンの設定を設定し、[Copy to Clipboard]を選択します。

これによって、VisualStudioで作成する時と同じようなコードが生成され、クリップボードにコピーされます。

それではここでRhino Python Editorに移ります。

Rhino Python EditorでPythonファイル作成

Rhino Python Editorでコンポーネントを作成するには、最低2つのPythonファイルが必要です。

一つはコンポーネントの中身を定義するファイル、もう1つはコンポーネントをコンパイルするためのファイルです。

ここではモジュールを自作して読み込むため、さらにもう1つ、計3つのPythonファイルを作成します。

ではまずコンポーネントの中身を定義するファイルを作成します。

コンポーネントの中身を定義

Rhinoでメニューバーの[ツール > Python Script > 編集]を選択してRhino Python Editorを開き、エディター上で新規ファイルにペーストを行うと、生成されたコードが貼り付けられます。

次にGrasshopperに戻り、2つ目のPythonコンポーネントも同様の手順でコードをコピーし、先ほどペーストしたコードの下にさらにペーストします。

ここで、重複したライブラリやAssemblyInfoクラスを削除し、必要に応じてコードを修正します。

コンパイル用のPythonファイル作成

続いてコンパイル用のPythonファイルを作成します。

これは決まったフォーマットがあるので、Rhino Python Editorでファイルを新規作成し、以下のコードを入力します。

CompileModule関数の引数に、.ghpyのファイル名、その後に格納するPythonファイルのファイル名を入力します。ちなみにghpyファイル名には、p2.7.5.0を必ず入力する必要があるようです。

モジュール作成

最後に、自作モジュール用のPythonファイルを作成します。

コードを分けたり、使い回したいシーン等で作成するかと思うのですが、ここではただポリラインを作成するだけのコードを入力しています。

コピペしたPythonファイルにモジュールを読み込んだコードは以下の通りです。(一部省略)

これで全てのPythonファイルが作成完了しました。この後はPythonファイルをコンパイルします。

Pythonファイルをコンパイル

まずはコンパイルする前に、作成したPythonファイルを全て同じフォルダに保存します。

次に、コンパイル用Pythonファイルのmain.pyをRhino Python Editorで表示し、debugボタンもしくは[F5]キーを押すと、Pythonファイルを格納しているフォルダに.ghpyファイルが作成されます。

これを Grasshopperにアドオンを追加する要領で、Canvasにドラッグか、Libraryフォルダに格納して作成したコンポーネントを追加完了です!

作成したコンポーネントの配置

ちなみに作成したコンポーネントを配置してみました。

こんな感じで、点をソートしてそのソート順にパスが描かれ、Timerコンポーネントに繋ぐと順にインデックスがハイライトされます。

終わりに

Rhino Python Editor でPythonコンポーネントをコンパイルする方法について説明しました。

ちょっと長くなり分かりづらかったかもしれませんが、とても便利な機能なのでぜひお試しください。

使用した主なコンポーネント
  • [Python Script] (Maths > Script > Python Script)
参考

コメントを残す