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

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

第9回目は「Seam コンポーネント」です。

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

[Seam]コンポーネントは簡単にいうと、
曲線のシーム点を指定した位置に変更するコンポーネントです。
元となる曲線をC端子に入力して、パラメータ値をt端子に入力すると、その値をシーム点とした曲線が出力されます。

Rhinoの[Sweep1]、[Sweep2]コマンドではコマンド実行時にシーム点の編集ができますが、
Grasshopperの[Sweep1]、[Sweep2]コンポーネントにはシーム点の編集機能が付いていないため、
シーム点編集には[Seam]コンポーネントが必要になります。

例えば、閉じた曲線を元にしてサーフェスを作成した時
閉じた曲線の継ぎ目(シーム点)の影響を受けてサーフェスがねじれる場合があります。
[Seam]コンポーネントはパラメータ値でシーム点を移動させ、そのねじれを修正する事ができます。

どうやって使うの?

実際に使ってみましょう。
今回は、Rhinoで作成したレール曲線と、断面曲線を使って、キャップの開口部のような形状のサーフェスを作成していきます。

Step1

まずはベースとなるレール曲線と、断面曲線をRhinoで作成し、[Curve]コンポーネントにセットします。

Step2

次に[Sweep1]コンポーネントを使ってサーフェスを作成してみます。
[Sweep1]は、指定した1本のレールに沿って、断面形状を通過するサーフェスを作成するコンポーネントです。
R端子にはレール曲線を、S端子には断面曲線を入力します。
Step1で作成したレール曲線と、断面曲線をそれぞれ入力してみます。


エラーが表示され、サーフェスの作成に失敗している事がわかります。

 [End Points]コンポーネントを使って、それぞれの曲線のシーム点を確認してみます。
[End Points]とは、入力した曲線の始点と終点を出力するコンポーンネントです。
C端子にそれぞれの曲線を入力すると、レール曲線のシーム点が断面曲線から離れた位置にある事がわかります。


レール曲線のシーム点が、断面曲線と一致していないため[Sweep1]でエラーが出ているようです。

[Curve Closest Point]コンポーネントと[Seam]コンポーネントを使って、
レール曲線のシームの位置を、断面曲線に接するように変更してみましょう。

Step3

[Curve Closest Point]は、指定した座標に最も近い曲線上の点を出力するコンポーネントで
P端子には点(座標値)を、C端子には曲線を入力します。
P端子から点(座標値)を、t端子からパラメータ値を、D端子から距離を出力できます。
今回はP端子に断面曲線のシーム点座標を入力し、C端子にはレール曲線を入力します(クリックで拡大)。

座標値を確認すると、断面曲線のシーム点から最も近いレール曲線上の座標が出力された事がわかります。
この座標を始点としたレール曲線に変更するために、[Seam]コンポーネントを使います。
[Seam]コンポーネントのC端子には、元となるレール曲線を入力します。
t端子には、曲線の始点位置をパラメータ値(t)で指定するため、[Curve Closest Point]のt端子を繋ぎます(クリックで拡大)。

これで断面曲線に接する位置を始点としたレール曲線が作成されました。

新しいレール曲線を使って、もう一度[Sweep1]を試してみましょう(クリックで拡大)。

レール曲線のシームが、断面曲線と一致しているため、エラーが解消されています。
最後にBakeしてマテリアルを割り当てて完成です。

今回は[Seam]コンポーネントをメインに、
[Sweep1]、[End Points]、[Curve Closest Point]コンポーネントを紹介しました。

▼Grasshopperコンポーネント基礎講座⑨Seamコンポーネントを動画で見る▼