[Grasshopper]立体トラスの作り方を解説[データも配布]

[Grasshopper]立体トラスの作り方を解説[データも配布] grasshopper

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

結果1
結果2

最終的には、上の2枚の画像のような立体トラスが作成されます。

それでは順番に解説していきます。

今回使用したグラスホッパーとライノセラスのデータダウンロードはこちら

ダウンロードできるデータのご利用に関しては、利用規約をご覧ください。


本記事では、コンポーネントはアイコン表示になっています。


全体コンポーネント

全体コンポーネント
画像をクリックして拡大して見る

全体コンポーネント:①SurfaceDivide Domain²IsotrimDeconstruct BrepMD SliderEvaluate SurfaceMultiplicationMovePointPartition ListFlip MatrixPolyLineLinePipeCap HolesSphereExtrudeDivisionNegative

こちらが、立体トラスを作成するコンポーネントになります。

トラスを作成する

トラス

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

画像をクリックして拡大して見る

トラスを作成するコンポーネント:①SurfaceDivide Domain²IsotrimDeconstruct BrepMD SliderEvaluate SurfaceMultiplicationMovePointPartition ListFlip MatrixPolyLineLinePipeCap Holes

使用するサーフェス

まずは、ライノセラス上でサーフェスを用意します。

今回は、上の画像のサーフェスを使います。

Surfaceに格納

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

サーフェスを分割

次に、Divide Domain²Isotrimを使うことで、サーフェスを分割します。

SurfaceDivide Domain²のI端子につなげます。

サーフェスの分割数の数値を、Divide Domain²のUとV端子につなげます。

今回は10をつなげているので、サーフェスを10×10の分割数に指定しています。

しかし、Divide Domain²だけでは分割の範囲を指定しているだけなので、まだ分割されません。

そこで、SurfaceIsotrimのS端子に、Divide Domain²をD端子につなげます。

これにより、指定した分割数でサーフェスが分割されます。

サーフェスを分解

その後、IsotrimDeconstruct Brepにつなげます。

これにより、分割されたサーフェスを点・線・サーフェスに分割されます。

これは、トラスを作成する過程の最後の方に、線を作成するために使います。

Reparameterize

その後、IsotrimEvaluate SurfaceのS端子につなげます。

さらに、MD SliderEvaluate SurfaceのUV端子につなげます。

この際に、Evaluate SurfaceのS端子でReparameterizeに設定してください。

Reparameterizeされた

Reparameterizeに設定すると、サーフェス上の任意の場所を、0~1の数値で指定することができるようになります。

MD Sliderの初期状態では、数値を0~1の範囲で指定することで、XとY方向の位置を指定することができます。

Evaluate Surface

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

中心点を移動させる

次に、Evaluate Surfaceで取得される点を移動させます。

MultiplicationEvaluate SurfaceのN端子をつなげます。

そして、点を移動させる距離の数値を入力します。

今回は、8を入力しました。

その後、MoveのG端子にEvaluate SurfaceのP端子をつなげます。

さらに、MultiplicationMoveのT端子につなげます。

これにより、サーフェスの垂直方向に、指定した数値の分だけ点を移動させることができます。

Negative

モデルによっては、点を逆方向に移動させることもあると思います。

その際は、MultiplicationMoveの間にNegativeを入れてください。

逆方向に点が移動した

Negativeを使うと数値がマイナスになるので、逆方向に点が移動します。

今回は、点がサーフェスの下方向に移動する場合で進めます。

Graft

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

その後、MoveのG端子とDeconstruct BrepのV端子を、Lineにつなげます。

Deconstruct BrepのV端子からは、サーフェスの角の点が出力されます。

MoveGraftを設定した理由は、Deconstruct BrepのV端子とデータ構造を揃えることで、同じ階層内の点をつなぐ線を作成できるからです。

そのため、Moveの1つの点から、同じ階層にある4つの点を結ぶ線を、Lineで作成しています。

線が作成された

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

Flatten

その後、MoveのG端子をPointにつなげます。

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

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

そして、PointPartition ListのL端子につなげます。

さらに、元々のサーフェスを分割した際の分割数の数値を、Partition ListのS端子につなげます。

すると点のデータを、分割数の数値の分だけ、1つの階層にまとめることができます。

今回の場合、数値を10にしているので、1つの階層に10個の点が入っています。

Polyline

その後、Partition ListPolylineのV端子につなげます。

すると、先程Partition Listで分けた、階層内にある点をつなぐ線が作成されました。

Flip Matrix

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

トラス完成

さらに、Deconstruct BrepのE端子・Line・2つのPolylineを、PipeのC端子につなげます。

そして、半径の数値をR端子につなげることで、線からパイプを作成することができます。

今回は、0.5を入力しました。

最後に、Cap Holesで開いているパイプを塞ぎます。

これで、トラス部分は完成です。

別の角度から見るトラス

別の角度から見た様子です。

結合部を作成する

次に、トラスの結合部を作成します。

結合部を作成するコンポーネント
画像をクリックして拡大して見る

追加コンポーネント:①PointSphere

Deconstruct BrepのV端子を、Pointにつなげます。

さらに、トラスを作成する際に使ったもう1つのPointを使います。

用意した2つのPointを、SphereのB端子につなげます。

そして、R端子に半径の数値をつなげます。

今回は0.8を入力しました。

トラスの結合部に球が作成された

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

ズームして見る

ズームして見ると、このようになります。

このように球を作成することで、トラスの結合部が完成しました。

ガラス面を作成する

最後に、ガラス面を作成します。

ガラス面を作成するコンポーネント
画像をクリックして拡大して見る

追加コンポーネント①ExtrudeMultiplicationDivisionNegativeMove

トラスを作成する際に使ったIsotrimを、ExtrudeのB端子につなげます。

さらに、トラスを作成する際に使ったEvaluate SurfaceのN端子とガラス面の厚みの数値を、Multiplicationにつなげます。

今回は、0.5をつなげました。

そして、MultiplicationExtrudeのD端子につなげます。

サーフェスに厚みができた

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

厚みが中心部から外れている

しかし、このままでは厚みが中心部から外れています。

そのため、サーフェスを押し出した逆方向に、半分の距離だけ移動させて中心に持ってくる必要があります。

サーフェスを押し出した逆方向に、半分の距離だけ移動

Multiplicationを、DivisionのA端子につなげ、数値の2をB端子につなげます。

そして、DivisionNegativeにつなげます。

最後に、ExtrudeMoveのG端子に、NegativeをT端子につなげます。

すると、厚みを中心に移動させることができました。

ガラス面完成

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

レンダリング1
レンダリング2

レンダリングしてみると、このようになりました。

今回は以上になります。