Grasshopperコンポーネント基礎講座では、Grasshopper Indexページで紹介されているコンポーネントを解説していきます。
第7回目は「Twist コンポーネント」です。
Twist コンポーネントってなあに?
[Twist]コンポーネントは簡単にいうと、
入力したジオメトリを、指定した軸を元に、指定した値でひねるように回転・変形させるコンポーネントです。
G端子には[回転させるジオメトリ]を、X端子には[回転軸]を、A端子には[回転させる値]を入力します。
I端子にはTrue/Falseを入力することで、[ジオメトリ全てをツイストさせるか/回転軸までツイストさせるか]を切り替えられます。
R端子にはTrue/Falseを入力することで、ツイストする際に[ジオメトリを変形させないか/変形させるか]を切り替えられます。
どうやって使うの?
実際に使ってみましょう。
今回は、半球形のサーフェス上に曲線を作成し、それを回転させます。
Step1
まずはベースとなる半球型状のサーフェスを作成していきます。
[Sphere]コンポーネントで球形のサーフェス作成します。今回は原点を中心に、半径20の球を作成しました。
これを[Plane Through Shape]コンポーネント、[Split Brep]コンポーネントを使って分割します。
[Plane Through Shape]とは、入力したジオメトリを貫通するように、指定した基準平面に、サーフェスを作成するコンポーネントです。
P端子には基準平面を、S端子にはジオメトリを、I端子にはオーバーする長さ寸法値を入力します。
今回は球を、ワールド座標のx,y平面で2分割したいので、P端子には[Plane Normal]コンポーネントを繋ぎます。
これで球の外周より[2]大きい平面サーフェスが、ワールド座標のx,y上に作成されました。次に[Split Brep]コンポーネントを繋ぎます。
[Split Brep]は、入力したBrepを、入力したオブジェクトでカットするコンポーネントです。
B端子には球を、C端子には平面サーフェスを入力します。さらに[List Item]コンポーネントを接続します。
[List Item]は、入力したリストの、Index番号を指定し、その番号のアイテムを出力するコンポーネントです。
[Plane Through Shape]で作成した平面サーフェスによって[Split]された上部がIndex0番、下部がIndex1番として出力されます。
今回はIndex0番:上部の半球形を出力します。これでベースのサーフェスが完成しました。
Step2
次に、作成したサーフェス上に曲線を作成します。
まず、[Divide Surface]コンポーネントを使ってU方向・V方向に分割点を作成します。
[Divide Surface]は、入力したサーフェスを、指定した数でU方向/V方向に分割し、その[分割点(P)]・[法線ベクトル(V)]・[UV値(uv)]を出力するコンポーネントです。
▼例:サーフェスをU方向に3、V方向に2、分割する点が出力されている
S端子には作成した半球形のサーフェスを、U端子・V端子にはそれぞれ分割数を入力します。
この分割点を通る曲線を作成するために[Interpolate]コンポーネントを繋ぎます。
[Interpolate]コンポーネントは、入力した点を通る曲線を作ります。V端子には点群を、D端子には次数を入力します(デフォルトは次数3)。P端子では曲線を閉じるように、K端子ではノットの間隔を指定することもできます。
[Divide Surface]コンポーネントのP端子を、[Interpolate]コンポーネントのV端子に接続し、曲線の完成です。
Step3
最後に、作成した曲線を[Twist]コンポーネントで回転・変形させます。
G端子には回転させるジオメトリを入力するので、[Interpolate]コンポーネントのC端子を入力します。
X端子には回転軸を入力するので、[Line SDL]コンポーネントを使って垂直線を作成します。[Line SDL]は、[始点]・[方向]・[長さ]を指定して直線を作成するコンポーネントです。S端子は始点を入力するので原点を、D端子は方向を入力するので[Unit Z]コンポーネントを接続します。L端子は長さを入力します。半球形の高さと揃えるために、Step1で作成した球の半径と同じ値を入力します。作成した曲線を[Twist]コンポーネントのX端子に接続します。
A端子には回転させる値を入力します。今回は90°回転させるので、値[90]を入力した後にA端子の[Degrees]を有効にして度数として認識させます。
▼A端子を右クリックして[Degrees]をクリックする
これで曲線の[Twist]は完成しましたが、さらに逆回転させた曲線も作成していきます。[Negative]コンポーネントを使うことで値の正負を反転させることができます。
▼[Twist]コンポーネントをコピーし、値[90]を[Negative]で[-90] に反転させ、逆回転の曲線を作成する
仕上げに[Pipe]コンポーネントを接続してパイプ形状にします。C端子には2種類の曲線を、R端子にはパイプの半径を入力して完成です。
▲綺麗な形状だったのでBake(Rhinoで編集できるようにオブジェクトとして出力すること)してレンダリングしてみました。
今回は[Twist]コンポーネントをメインに、
[Plane Through Shape]、[Split Brep]、[List Item]、[Divide Surface]、[Interpolate]、[Negative]コンポーネントを紹介しました。
▼Grasshopperコンポーネント基礎講座⑦Twistコンポーネントを動画で見る▼