Grasshopperコンポーネントの自作方法 -その3-

C#

今回は前回までと違って、Pythonによるコンポーネントの作成方法について説明します。

Rhino6からはPythonコンポーネントが最初から入っているのでPythonでコードを書くという人が一番多いんじゃないかと思います。PythonコンポーネントにはProcedual Script Mode と,GH_Component SDK Modeが存在します。前者は、スクリプトを書く場合,後者はコンポーネントを自作する場合に使っています。

デフォルトではPythonコンポーネントはProcedual Script Mode になっていますのでPythonコンポーネントをダブルクリックすると次のような画面になるはずです。

ここでツールバーのModeからGH_Component SDK Modeをクリックすると

from ghpythonlib.componentbase import executingcomponent as component
import Grasshopper, GhPython
import System
import Rhino
import rhinoscriptsyntax as rs

class MyComponent(component):
    
    def RunScript(self, x, y):
        """Provides a scripting component.
            Inputs:
                x: The x script variable
                y: The y script variable
            Output:
                a: The a output variable"""
        
        __author__ = "yjtkc"
        __version__ = "2019.01.20"
        
        import rhinoscriptsyntax as rs
        
        # return outputs if you have them; here I try it for you:
        return a

こんな感じに値が変わっているはずです。このプログラムでは最終行にreturn aとなっていますが,a に値が入っていないので適当に入れてあげましょう

from ghpythonlib.componentbase import executingcomponent as component
import Grasshopper, GhPython
import System
import Rhino
import rhinoscriptsyntax as rs

class MyComponent(component):
    
    def RunScript(self, x, y):
        """Provides a scripting component.
            Inputs:
                x: The x script variable
                y: The y script variable
            Output:
                a: The a output variable"""
        
        __author__ = "yjtkc"
        __version__ = "2019.01.20"
        
        import rhinoscriptsyntax as rs
        a = "hello world"
        # return outputs if you have them; here I try it for you:
        return a

とすると、”hello world”を返すだけの無意味なコンポーネントが出来上がります。もちろん、入力を変えて中で計算を色々変えてやることで、良いコンポーネントも作れます。

コンポーネントのコンパイル方法

ツールバーのModeよりCompileを押すと次のような画面が出てきます。

Name, Nickname, Category, SubCategoryの設定はC#でやったものとほぼ同じですね。IconはデフォルトでPythonアイコンが用意されています。色も変えれる笑

ここでCompileを押すと,コンポーネントの作成は完了です。

GrasshopperのMenuバーからFile -> Special Folder -> Component Folder を選択するとあるパスのフォルダがファイルエクスプローラーに立ち上がります。このパスにpythonで作ったコンポーネントのコンパイルにより生成されたバイナリファイル(拡張子.ghpy)も残っています。

今回の例のような無意味なコンポーネントを作ってしまった場合は、このフォルダから対象となるghpyファイルを削除することでアンインストールできます。

コメント

タイトルとURLをコピーしました