今回は Lunch Box というプラグインを使用して上画像の様なグラスを実装してみたいと思います。非常に便利なプラグインですので是非ご参考にしてください。Lunch Box は
インストールできます。こちらのチュートリアルは動画化しております、動画の方がよい方は以下のリンクからどうぞ!
概要
上画像がプログラムの全体像となっております。
各ブロックごとに説明していこうと思います。
基準となるサーフェイス作成
- Circle コンポーネントで 100mm の円を作成します。
- Scale コンポーネントで作成した円を 1.2 倍します
- Move コンポーネントで 1.2 倍した円を Z 方向に 200mm 移動させます。
- Ruled Surface コンポーネントで 100mm の円と移動させた円との間にサーフェイスを張ります。
基準サーフェイスを Lunch Box で分割
- 作成したサーフェイスを Lunch Box を使用して分割していきます。今回は 4 種類の模様で分割していきます。
- Random Quad Panels / Skewed Quads / Triangle Panels B / Quad Panels コンポーネントを用意し、先ほど作成した基準サーフェイスを接続します。
- それぞれに u 方向の分割数 v 方向の分割数を入力します。今回は u,v(22, 10)としました。
- Skewed Quads コンポーネントのみ、三角形と平行四辺形のサーフェイスが別の出力端子から取得できるので、Surface コンポーネントでまとめます。
- Stream Filter コンポーネントと Value list コンポーネントで 4 種類のサーフェイスを切り替えられるようにします。
分割したサーフェイスを縮小してオフセット
- Area コンポーネントで分割したサーフェイスの中心点を取得します。
- Scale コンポーネントで分割したサーフェイスを各中心点において縮小します。今回は 0.7 倍しました。
- Offset Surface コンポーネントで縮小したサーフェイスを基準サーフェイスの外側にオフセットしていきます。
- オフセット距離は 10mm としたいのですが、Random Quad Panels コンポーネントのみ、-10mm としないと外側へオフセットしなかったので、Bool 値を使用して少し工夫します。Boolean コンポーネントを接続します。0 ⇒ False,0 以外は True を返してくれるので、 Stream Filter コンポーネントで 0 の場合(False のとき)は -10mm、それ以外(True のとき)は 10mm とします。
外形をサーフェイス化
- Brep Edge コンポーネントを2つ用意し、分割したサーフェイスとオフセットしたサーフェイスのエッジを取得します。
- Ruled Surface コンポーネントで 2 つのエッジ間にサーフェイスを張り外形が完成です。
グラスに厚みを持たせる ①
- Cap コンポーネントで最初に作成した基準サーフェイスに蓋をします。
- Area コンポーネントで基準サーフェイス上面の円の中心点を取得します
- Scale コンポーネントで取得した中心点において蓋をしたサーフェイスを縮小します。
- Solid Union コンポーネントで Lunch Box で分割したサーフェイスを結合します。
- Cap コンポーネントで結合したサーフェイスに蓋をします。
- Solid Difference コンポーネントで蓋をしたサーフェイスから、先ほど縮小したサーフェイスを引きます。
出力結果の整理
- 出力結果を整理して完成です。
Rhinoceros でレンダリング
- 最後に Rhinoceros でマテリアルを割り当てます。外部に突き出た部分のサーフェイスは色付きのガラスを割り当て、そのほかは透明のガラスを割り当てます。
- グラスの下に長方形サーフェイスを敷いて、金属のマテリアルを割り当てます。
- レンダリングツールで斜め上ぐらいから光を当ててあげて、レンダリングすれば完成です。
完成
以上になります。Lunch Box は他にも色々な機能がありますので、是非使いこなしてみてください。