今回は、立体トラスの作り方を解説します。


最終的には、上の2枚の画像のような立体トラスが作成されます。
それでは順番に解説していきます。
今回使用したグラスホッパーとライノセラスのデータダウンロードはこちら
ダウンロードできるデータのご利用に関しては、利用規約をご覧ください。
動画で見る
全体コンポーネント

全体コンポーネント:①Surface ②Divide Domain² ③Isotrim ④Deconstruct Brep ⑤MD Slider ⑥Evaluate Surface ⑦Multiplication ⑧Move ⑨Point ⑩Partition List ⑪Flip Matrix ⑫PolyLine ⑬Line ⑭Pipe ⑮Cap Holes ⑯Sphere ⑰Extrude ⑱Division ⑲Negative
こちらが、立体トラスを作成するコンポーネントになります。
トラスを作成する

最初は、上の画像のトラス部分を作成します。

トラスを作成するコンポーネント:①Surface ②Divide Domain² ③Isotrim ④Deconstruct Brep ⑤MD Slider ⑥Evaluate Surface ⑦Multiplication ⑧Move ⑨Point ⑩Partition List ⑪Flip Matrix ⑫PolyLine ⑬Line ⑭Pipe ⑮Cap Holes

まずは、ライノセラス上でサーフェスを用意します。
今回は、上の画像のサーフェスを使います。

ライノセラス上のサーフェスを、Surfaceに格納します。

次に、Divide Domain²とIsotrimを使うことで、サーフェスを分割します。
SurfaceをDivide Domain²のI端子につなげます。
サーフェスの分割数の数値を、Divide Domain²のUとV端子につなげます。
今回は10をつなげているので、サーフェスを10×10の分割数に指定しています。
しかし、Divide Domain²だけでは分割の範囲を指定しているだけなので、まだ分割されません。
そこで、SurfaceをIsotrimのS端子に、Divide Domain²をD端子につなげます。
これにより、指定した分割数でサーフェスが分割されます。

その後、IsotrimをDeconstruct Brepにつなげます。
これにより、分割されたサーフェスを点・線・サーフェスに分割されます。
これは、トラスを作成する過程の最後の方に、線を作成するために使います。

その後、IsotrimをEvaluate SurfaceのS端子につなげます。
さらに、MD SliderをEvaluate SurfaceのUV端子につなげます。
この際に、Evaluate SurfaceのS端子でReparameterizeに設定してください。

Reparameterizeに設定すると、サーフェス上の任意の場所を、0~1の数値で指定することができるようになります。
MD Sliderの初期状態では、数値を0~1の範囲で指定することで、XとY方向の位置を指定することができます。

今回は、0.5;0.5にしているため、サーフェスの中心部分の情報を取得できます。

次に、Evaluate Surfaceで取得される点を移動させます。
MultiplicationにEvaluate SurfaceのN端子をつなげます。
そして、点を移動させる距離の数値を入力します。
今回は、8を入力しました。
その後、MoveのG端子にEvaluate SurfaceのP端子をつなげます。
さらに、MultiplicationをMoveのT端子につなげます。
これにより、サーフェスの垂直方向に、指定した数値の分だけ点を移動させることができます。

モデルによっては、点を逆方向に移動させることもあると思います。
その際は、MultiplicationとMoveの間にNegativeを入れてください。

Negativeを使うと数値がマイナスになるので、逆方向に点が移動します。
今回は、点がサーフェスの下方向に移動する場合で進めます。

その後、MoveのG端子を右クリックし、Graftに設定します。

その後、MoveのG端子とDeconstruct BrepのV端子を、Lineにつなげます。
Deconstruct BrepのV端子からは、サーフェスの角の点が出力されます。
MoveにGraftを設定した理由は、Deconstruct BrepのV端子とデータ構造を揃えることで、同じ階層内の点をつなぐ線を作成できるからです。
そのため、Moveの1つの点から、同じ階層にある4つの点を結ぶ線を、Lineで作成しています。

結果として、このような線が作成されます。

その際に、Pointの左側の端子を右クリックし、Flattenに設定します。

このようにFlattenに設定されました。

そして、PointをPartition ListのL端子につなげます。
さらに、元々のサーフェスを分割した際の分割数の数値を、Partition ListのS端子につなげます。
すると点のデータを、分割数の数値の分だけ、1つの階層にまとめることができます。
今回の場合、数値を10にしているので、1つの階層に10個の点が入っています。

その後、Partition ListをPolylineのV端子につなげます。
すると、先程Partition Listで分けた、階層内にある点をつなぐ線が作成されました。

さらに、Flip Matrixを使ってからPolylineを使うことで、もう1つの方向にある点同士をつなぐ線を作ることができます。

さらに、Deconstruct BrepのE端子・Line・2つのPolylineを、PipeのC端子につなげます。
そして、半径の数値をR端子につなげることで、線からパイプを作成することができます。
今回は、0.5を入力しました。
最後に、Cap Holesで開いているパイプを塞ぎます。
これで、トラス部分は完成です。

別の角度から見た様子です。
結合部を作成する
次に、トラスの結合部を作成します。

Deconstruct BrepのV端子を、Pointにつなげます。
さらに、トラスを作成する際に使ったもう1つのPointを使います。
用意した2つのPointを、SphereのB端子につなげます。
そして、R端子に半径の数値をつなげます。
今回は0.8を入力しました。

すると、トラスの結合部に球が作成されました。

ズームして見ると、このようになります。
このように球を作成することで、トラスの結合部が完成しました。
ガラス面を作成する
最後に、ガラス面を作成します。

追加コンポーネント①Extrude ②Multiplication ③Division ④Negative ⑤Move
トラスを作成する際に使ったIsotrimを、ExtrudeのB端子につなげます。
さらに、トラスを作成する際に使ったEvaluate SurfaceのN端子とガラス面の厚みの数値を、Multiplicationにつなげます。
今回は、0.5をつなげました。
そして、MultiplicationをExtrudeのD端子につなげます。

すると、このようにサーフェスに指定した数値の分、厚みができました。

しかし、このままでは厚みが中心部から外れています。
そのため、サーフェスを押し出した逆方向に、半分の距離だけ移動させて中心に持ってくる必要があります。

Multiplicationを、DivisionのA端子につなげ、数値の2をB端子につなげます。
最後に、ExtrudeをMoveのG端子に、NegativeをT端子につなげます。
すると、厚みを中心に移動させることができました。

これで、ガラス面が完成し、立体トラス全体が完成しました。


レンダリングしてみると、このようになりました。
今回は以上になります。
Comment