【集中講座】Grasshopperコンポーネント基礎:Flip Matrix

Grasshopperコンポーネント基礎講座では、Grasshopper Indexページで紹介されているコンポーネントを解説していきます。

第8回目は「Flip Matrix コンポーネント」です。

Flip Matrix コンポーネントってなあに?

[Flip Matrix]コンポーネントは簡単にいうと、
入力したデータの階層構造を並べ替えるコンポーネントです。

例えば、サーフェスをU方向に2分割、V方向に3分割したとき、



実際に出力されているデータは階層でわかれ、階層の中の値(アイテム)にはインデックス番号が振られています。階層の中の値は、

1つ目の階層のIndex0番が(Ax,Ay,Az)、Index1番が(Bx,Ay,Az)、Index2番が(Cx,Ay,Az)、
2つ目の階層のIndex0番が(Ax,By,Az)、Index1番が(Bx,By,Az)、Index2番が(Cx,By,Az)・・・、

という順列で並んでいることが解ります。

ここに[Flip Matrix]コンポーネントを繋ぐと、同じインデックス番号のアイテムを集めた階層に変換されます。階層の中の値は、

1つ目の階層のIndex0番が(Ax,Ay,Az)、Index1番が(Ax,By,Az)、Index2番が(Ax,Cy,Az)、
2つ目の階層のIndex0番が(Bx,Ay,Az)、Index1番が(Bx,By,Az)、Index2番が(Bx,Cy,Az)・・・

と順列が変わったことがわかります。

このように[階層]と[アイテム]を反転させるのが[Flip Matrix]コンポーネントです。
階層のしくみについて、より詳しく知りたいかたはこちらのTipsもご覧ください。

どうやって使うの?

実際に使ってみましょう。
今回は、2つの自由曲線をもとに作った円弧と、円弧の分割点のデータを[Flip Matrix]で反転して作った曲線で、格子状のアーチを作成します。

Step1

まずはベースとなる2つの自由曲線をRhinoで作成し、[Curve]コンポーネントを右クリックして[Set Multiple Curves]で2本ともセットします。



次に、この曲線間を通る円弧を作っていきます。

Step2

曲線上に円弧の始点と終点を作るために、[Divide Curve]コンポーネントを使って曲線を等分割していきます。[Divide Curve]コンポーネントで出力された情報を[Panel]コンポーネントで見てみると、1つ目の階層が左側の曲線の分割点、2つ目の階層が右側の曲線の分割点である事がわかります。

左側の曲線の分割点を始点に、右側の曲線の分割点を終点にして円弧を作成したいので[Explode Tree]コンポーネントを使います。
[Explode Tree]とは、入力したデータを階層で分解して出力するコンポーネントです。

 [Divide Curve]コンポーネントのP端子に接続して、左の曲線の分割点と、右の曲線の分割点をそれぞれ別のデータとして出力します。このデータを元に[Arc SED]コンポーネントで円弧を作成します。
[Arc SED]は、[始点]・[終点]・[方向]を入力する事で円弧を作成するコンポーネントです。
S端子には始点を入力するので、左の曲線の分割点リストを入力します。
E端子には終点を入力するので、右の曲線の分割点リストを入力します。
D端子には方向を入力するので、[Unit Z]コンポーネントを接続します。

これで円弧が完成しました。

Step3

最後に、円弧と交差する曲線を作成します。
円弧上の座標を出力するために、また[Divide Curve]コンポーネントで円弧を分割します。

この分割点をつなぐ曲線を作るために[Interpolate]コンポーネントを接続します。しかし、このまま[Interpolate]コンポーネントを繋いでも、円弧に交差するような曲線は作成されません。

[Panel]コンポーネントと[Point List]コンポーネントを使って、[Divide Curve]コンポーネントから出力されている分割点のデータがどのように処理されているのか確認してみます。[Point List]は、入力された点群のインデックス番号をRhino上に表示するコンポーネントです。P端子には点群を、S端子には値を入力してフォントサイズを指定できます。さらにP端子を[Flatten]する事で、階層がなくなり通し番号を確認することもできます。

 [Point List]コンポーネントで分割点のインデックス番号を見てみると、[Interpolate]コンポーネントは[0番→1番→2番、3番→4番→5番・・・]と、このリストの階層とIndexの順番で曲線を作成している事がわかります。この階層の構造を変えるために[Flip Matrix]コンポーネントを使います。

これで各階層にあった同一Index番号のアイテムが集められたリストが出力されました。
最後に[Interpolate]コンポーネントを接続し、円弧の数、交差する曲線の数を調整します。

仕上げに[Pipe]コンポーネントを接続してパイプ形状にして完成です。

今回は[Flip Matrix]コンポーネントをメインに、
[Explode Tree]、[Arc SED]、[Point List]コンポーネントを紹介しました。

▼Grasshopperコンポーネント基礎講座⑧Flip Matrixコンポーネントを動画で見る▼

~スキルアップ集中講座TOP~