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]コンポーネントを繋いでも、円弧に交差するような曲線は作成されません。
[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コンポーネントを動画で見る▼