[Grasshopper]木の幹と枝を作成する方法[データも配布]

[Grasshopper]木の幹と枝を作成する方法[データも配布] grasshopper
本サイトはプロモーションが含まれています

今回は、グラスホッパーで木の幹と枝を作成する方法について解説します。

本記事では、コンポーネントはアイコン表示になっています。


↑YouTube始めました。

本サイトIArchwayでは、仕事の依頼、GrasshopperやRhinocerousのサポート、相談を受け付けています。


全体の様子

全体の様子1
全体の様子2

上2枚の画像は、グラスホッパーの様子です。

全体の様子3
全体の様子4

上2枚の画像は、ライノセラス上に書き出した様子です。

今回使用したグラスホッパーとライノセラスのデータダウンロードはこちら

ダウンロードできるデータのご利用に関しては、利用規約をご覧ください。

全体コンポーネント

全体コンポーネント:①Fibonacci ②Cull IndexList Length ④Number ⑤DivisionSeriesUnit ZRectangleMoveAreaPopulate 2D ⑫Closest Points ⑬Tree Statistics ⑭Boolean ToggleShift ListTree BranchClosest PointLineFlip Curve ⑳Control Points ㉑PointList ItemDistanceBoundsConstruct DomainRemap NumbersMultiPipe

全体コンポーネント1
画像をクリックして拡大して見る
全体コンポーネント2
画像をクリックして拡大して見る
全体コンポーネント3
画像をクリックして拡大して見る
全体コンポーネント4
画像をクリックして拡大して見る
全体コンポーネント5
画像をクリックして拡大して見る
全体コンポーネント6
画像をクリックして拡大して見る

複数の四角形内にランダムな点を作成する

最初に、複数の四角形内にランダムな点を作成していきます。

フィボナッチ数列

まず、自然界に存在する数列である、フィボナッチ数列を作成していきます。

この数列の数値を利用し、枝分かれする枝を作成することができます。

Fibonacci(N)に、個数を入力します。

今回は、13を入力しています。

すると、上の画像のように、0,1,1,2,3,5のように、前の数値を足していく数値が13個作成されます。

その後、Fibonacciを、Cull Index(L)につなげます。

さらに、0を、Cull Index(I)につなげます。

すると、一番最初の0の数値を削除することができます。

その後、Cull Indexを、List lengthにつなげます。

すると、上の画像のように、データの個数が出力されます。

さらに、Cull Indexを、Division(A)につなげます。

さらに、任意の数値を、Division(B)につなげます。

これにより、Division(B)で入力した数値で割り算されます。

この数値は、ランダムさを変えるシード値として、後程使います。

Graft

さらに、Cull Indexを、Numberにつなげます。

この際に、Numberを右クリックし、Graftに設定してください。

四角形

その後、Rectangle(X)(Y)に、辺の長さを入力します。

今回は、どちらにも5000を入力しています。

すると、上の画像のように、5000×5000の正方形の線データが作成されます。

Graft

その後、List Lengthを、Series(C)につなげます。

さらに、移動させる距離の数値を、Series(N)につなげます。

今回は、200をつなげています。

すると、0から200ずつ増加する数値が、今回は14個作成されます。

その後、Seriesを、Unit Zにつなげます。

その後、Unit Zを、Move(T)につなげます。

この際に、Move(T)を右クリックし、Graftに設定してください。

複数

さらに、Rectangle(R)を、Move(G)につなげます。

すると、上の画像のように、正方形が真上方向に複数コピーされます。

Graft

その後、Move(G)を、Populate 2D(R)につなげます。

さらに、点の個数を、Populate 2D(N)につなげます。

さらに、作成したシード値を持つDivisionを、Populate 2D(S)につなげます。

この際に、Populate 2D(S)を右クリックし、Graftに設定してください。

ランダムな点

すると、上の画像のように、ランダムな点が正方形内に作成されました。

これで、複数の四角形内に、ランダムな点を作成できました。

点を取得し、前後の点をつなぐ線を作成する

次に、点を取得し、前後の点をつなぐ線を作成していきます。

中心点

Rectangle(R)を、Areaにつなげます。

すると、上の画像のように、一番下の正方形の中心点を取得できます。

点を取得
点を取得2

その後、Area(C)を、Closest Points(P)につなげます。

さらに、Populate 2D(P)を、Closest Points(C)につなげます。

さらに、先程のNumberを、Closest Points(N)につなげます。

すると、上の2枚の画像のように、フィボナッチ数列に応じて、各四角形内の点を取得できます。

線

その後、Closest Points(P)を、2つのTree Statisticsにつなげます。

これにより、データの階層を取得することができます。

その後、1つ目のTree Statistics(P)を、Cull Index(L)につなげます。

さらに、-1を、Cull Index(I)につなげます。

これにより、一番最後の階層を削除できます。

その後、2つ目のTree Statistics(P)を、Shift List(L)につなげます。

さらに、1を、Shift List(S)につなげます。

さらに、Falseの情報を、Shift List(W)につなげます。

今回は、Boolean ToggleでFalseの情報を作成しています。

これにより、階層データを1つずつずらすことができました。

その後、Cull IndexShift Listを、それぞれTree Branch(T)につなげます。

さらに、Closest Points(P)を、2つのTree Branch(P)につなげます。

これにより、指定した階層の点データのみを取得できます。

その後、1つ目のTree Branchを、Closest Point(C)につなげます。

さらに、2つ目のTree Branchを、Closest Point(P)につなげます。

すると、1つ上の点から、下の近い点を取得できます。

その後、2つ目のTree Branchを、Line(A)につなげます。

さらに、Closest Point(P)を、Line(B)につなげます。

すると、上の画像のように、前後の点をつなぐ線が作成されます。

Flatten

この際に、Line(L)を右クリックし、Flattenに設定してください。

これで、点を取得し、前後の点をつなぐ線を作成することができました。

線に厚みを与える

最後に、線に厚みを与えていきます。

Flatten

Closest Points(P)を、Pointにつなげます。

この際に、Pointを右クリックし、Flattenに設定してください。

一番下の点

その後、Pointを、List Item(L)につなげます。

さらに、0を、List Item(i)につなげます。

すると、上の画像のように、一番下の点を取得できます。

制御点

その後、Lineを、Flip Curve(C)につなげます。

これにより、線の向きが逆になります。

その後、Flip Curve(C)を、Control Pointsにつなげます。

すると、上の画像のように、各線の制御点を取得できます。

Flatten

この際に、Control Points(P)を右クリックし、Flattenに設定してください。

その後、List Itemを、Distance(A)につなげます。

さらに、Control Points(P)を、Distance(B)につなげます。

すると、一番下の点から、各制御点までの距離を取得できます。

その後、Distanceを、Boundsにつなげます。

すると、取得した距離の最小値と最大値からできる数値範囲が作成されます。

その後、厚みの最大値の数値を、Construct Domain(A)につなげます。

今回は、50をつなげています。

さらに、厚みの最小値の数値を、Construct Domain(B)につなげます。

今回は、1をつなげています。

すると、50 To 1という数値範囲が作成されます。

その後、Distanceを、Remap Numbers(V)につなげます。

さらに、Boundsを、Remap Numbers(S)につなげます。

さらに、Construct Domainを、Remap Numbers(T)につなげます。

すると、距離の数値が、0から50の範囲で変換されました。

完成

その後、Lineを、MultiPipe(Curves)につなげます。

さらに、Remap Numbers(R)を、MultiPipe(NodeSize)につなげます。

さらに、Control Points(P)を、MultiPipe(SizePoints)につなげます。

さらに、2を、MultiPipe(Caps)につなげます。

すると、上の画像のように、線から上に行くほど細くなる幹と枝を作成できました。

今回は以上になります。

Comment

Translate »