PythonでGrasshopperコンポーネントを利用する方法

Grasshopper

Pythonコンポーネントを利用する目的の一つに,複雑になったGrasshopperコンポーネント群をまとめたいというのがあります。例えば、次のようなピラミッドを曲面にそって並べる場合を考えます。

結果はこんな感じ

これをGrasshopperで書くと最低でもこれくらいは書く必要があるでしょう。

まぁ読みにくい。これくらいのサイズなら忍耐力があれば追跡は可能ですが、実際はもっと面倒なことになることが常です。

そこでPythonコンポーネントの最初に次のような一文を加えましょう

import ghpythonlib.components as gh 

これは,Grasshopperのコンポーネントの計算をPythonの中で扱うための文です。

実際のコードはこんな感じ(適当ですが)

__author__ = "yjtkc"
__version__ = "2019.01.20"

import ghpythonlib.components as gh

origin = gh.ConstructPoint(0.0,0.0,0.0)
rect = gh.Rectangle(gh.XYPlane(origin),baseDomainXY,baseDomainXY,0).rectangle
geo = gh.RectangularArray(pyramid,rect,x,y).geometry //ピラミッドを平面的に並べる

boxDomX = gh.ConstructDomain(baseDomainXY.T0,baseDomainXY.T1*x)
boxDomY = gh.ConstructDomain(baseDomainXY.T0,baseDomainXY.T1*y)
refbox = gh.DomainBox(gh.XYPlane(origin),boxDomX,boxDomY,baseDomainZ)
udom = gh.ConstructDomain(0.0,1.0)
vdom = udom
wdom = udom
a = gh.SurfaceMorph(geo,refbox,srf,udom,vdom,wdom) // Surface上に並べる

いかがでしょうか。コード自体は20行もありません。

今回はRhinoSyntaxを全く用いずにGrasshopperのコンポーネントの利用だけで書いてみました。Grasshopperのコンポーネントに比べてRhinoSyntaxやC#やVBで用いるRhinoCommonはより複雑で細やかな関数があるように思います。

なので、個人的にはGrasshopperだけで書けるけどめんどくさくなった時はPython、それでもかゆいところに手が届かなかったらRhinoCommonとかをするとよいのかなぁとおもっています。まぁ言語の得意不得意もあります。

コメント

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