今回は上画像の様な、ベンチを作成していきたいと思います。さほど難易度も高くないので、Grasshopper を学習し始めの方も是非挑戦してみてください。こちらのチュートリアルは動画化してるので動画の方がいい方は以下のリンクからご覧いただければと思います。
概要
上画像がプログラムの全体像となっております。大まかな流れは以下の様になっております。
- ベンチ足元の外形を作成
- ベンチ座面の外形を作成
- ベンチ足元のプレート作成 ①
- ベンチ足元のプレート作成 ②
- ベンチ座面に厚みを持たせる
- 完成
ベンチ足元の外形を作成
- 「Circle コンポーネント」で円を作成します。今回は、半径 2000、中心点は「Construct Point コンポーネント」・「XY Plane コンポーネント」を使用し(0,0,0)を指定します。
- 「Divide Curve コンポーネント」で作成した円を分割します。今回は 100 分割しています。
- 「Move コンポーネント」に「Divide Curve コンポーネント」で取得した分割点を接続します。これらの点を sin 波を使用して波打たせていきます。
- 「Divide Curve コンポーネント」の出力端子 t から取得できる値を「Remap Numbers コンポーネント」で角度にリマップしていきます。target には「360×N(上画像では 5)」を接続します。
- 角度のリストが取得できたので、「Radians コンポーネント」でラジアンに変換します。
- 「Sine コンポーネント」で sine 波を取得します。
- 取得した sine 波の振幅が負の値は 0 として移動させないようにします。「Maximum コンポーネント」で取得した sine 波のリストから負の値を 0 に置き換えます。
- 「Multiplication コンポーネント」を使用して sine 波の振幅を大きくします。
- 「UnitZ コンポーネント」で Z 方向のベクトルとします。
- 「Move コンポーネント」にベクトルを接続します。点が波打ったかと思います。
- 「Scale コンポーネント」で波打たせた点を縮小し、ベンチの内側を取得します。今回は 0.5 倍としています。
ベンチ座面の外形作成
- 波打たせた点、それを縮小させた点をそれぞれ「Interpolate コンポーネント」で曲線化します。入力端子 Periodic を「Invert」して閉じた曲線とします。
- 「Scale コンポーネント」でそれぞれ拡大します。今回は 1.2 倍しています。
- 「Rotate コンポーネント」で回転させます。上画像では 0 度としてますが、座面を回転できるようにしておきます。
- 「Move コンポーネント」で Z 方向に移動させます。今回は 400 移動させています。
ベンチ足元のプレート作成 ①
- 「Line コンポーネント」で最初に波打たせた点、それを縮小した点をそれぞれ直線で結びます。出力端子は「Simplify」しておきます。
- 次に前項で Z 方向に移動させた座面の曲線を「Divide Curve コンポーネント」で分割していきます。分割数は一番最初に円を分割ときの分割数を使用します。
- 「Explode Tree コンポーネント」で内側の曲線の分割点、外側の曲線の分割点をそれぞれ取得します。
- 「Line コンポーネント」で内側の曲線の分割点、外側の曲線の分割点を直線でつなぎます。出力端子は「Simplify」しておきます。
- 「Ruled Surface コンポーネント」で2つの「Line コンポーネント」で作成した直線の間にサーフェイスを張ります。上画像の様にサーフェイスができていれば OK です。
ベンチ足元のプレート作成 ②
- 前項で作成したサーフェイスに厚みを持たせていきます。「Extrude コンポーネント」に作成したサーフェイスを接続します。
- 「Evaluate Surface コンポーネント」でサーフェイスに沿った平面を取得していきます。入力端子 S を「reparametrized」して、入力端子 uv に「MDslider コンポーネント」で(0.5,0.5)を入力していきます。
- 「Evaluate Surface コンポーネント」の出力端子 F からサーフェイスに対して垂直なベクトルが取得できています。「Amplitude コンポーネント」に接続してベクトル長さを再設定します。今回は 20 としています。
- 「Reverse コンポーネント」でベクトルの正負を逆転して「Extrude コンポーネント」の押し出し方向に接続します。
ベンチ座面に厚みを持たせる
- 「List Item コンポーネント」を2つ用意し、ベンチ座面の外側曲線・内側曲線をそれぞれ取得します。
- 「Ruled Surface コンポーネント」で取得した曲線の間にサーフェイスを張ります。
- 「Extrude コンポーネント」で Z 方向に押し出します。今回は 20 押し出しています。
完成
以上になります!「Number Slider コンポーネント」で設定したパラメーターを変更していろんな形状を試してみてください。