こんにちは、建築ソフト解説員のUMAです。
今回は、『Grasshopper』で作る『スペーストラス(スペースフレーム)』について解説していきます。
今回作るデザイン検討ツール
皆さん、スペーストラス(スペースフレーム)を使った建築空間をデザインしてみたいと思ったことはありませんか?
日本でスペーストラスを使用した有名な建物というと、「日建設計」設計の「東京ミッドタウン」や
金沢駅前のもてなしドームなどが挙げられます。どちらも筆者撮影
実際にこの建物がGrasshopperを用いてデザインが検討されたかわかりませんが、こういった同じ形を繰り返す形態のデザインスタディするときに、Grasshopperは非常に便利です。
ツールの全体の解説
まずは、ツールの全体像です。
ツール全体では、このような簡単な組み合わせで作成することが可能です。
ここから細かく見ていきましょう。
パネル割りを決定する
まずは、スペーストラス(スペースフレーム)のガラス面をどのくらいの数のグリッドで割るか検討する部分を組みます。
使っているコンポーネントは、
- Srf
- Number Slider
- Divide Domain2
- Isotrim
この4つになります。
「Number of U」と「Number of V」で、全体の分割数の縦方向(U)と横方向(V)を指定しています。
そのあと「Divide Domain2」で、指定された割る数のデータを変換し、IsotrimのDomainに渡しています。
IsotrimのDomainに分割数を与えることで、IsotrimのSurfaceに指定されているSrfを分割することができます。
構造体の下端の位置を指定する
次に設定する項目は、スペーストラス(スペースフレーム)の構造体の下端の位置を決定します。
使っているコンポーネントは、
- DeconstructBrep
- NumSlider
- MD Slider
- Evaluate Surface
- Reverse
- Line SDL
この6つになります。
まずは、DeconstructBrepでIsoTrimしたsurfaceを、個々のsurface、そのsurfaceのエッジ、surfaceの頂点に分解します。
次に、分解してできた個々のsurfaceをEvaluate Surfaceのsurfaceに繋ぎます。
このときに、Evaluate Surfaceのsurface端子は、Reparameterizeしておいてください。
Reparameterizeする事で、それぞれ形の違うパネルを同一のUVで扱うことが可能になります。
次に、EvaluateSurfaceのUV端子には、範囲が両軸ともに0〜1に指定されたMD Sliderの出力端子を入れます。
このようにすることで、先程surfaceに繋いだパネルのどの位置から構造体の下端を、設定するか決定することが可能になります。
最後にスペーストラスの構造体の下端を決定するための補助線を引きます。
Evaluate SurfaceのPoint端子には、下端の位置を決定する補助線の始点が出力されているので、これをLine SDLのStart端子に入れます。
次に、補助線の向きを決めたいのですが、EvaluateSurfaceの法線ベクトル(Normal端子から出力されます)は、Z軸の正方向に定義されているので、今回は法線ベクトルを反転するために一度Revearseコンポーネントに繋いだあと、Line SDLのDirection端子に入力します。
最後に、スペーストラスの厚みを決定するNumSliderをLineSDLのLength端子に入力することで、構造体の下端を指定することができました。
トラス構造体の頂点を作成する
次に作成するのは、トラス構造体の通芯です。
その前に少しだけ処理が必要なので、ここでこなしておきます。
その処理に必要なのは、
- Endpoints
- Point(Flatten Treeでも可、または省略可)
- Partition List
- FlipMatrix
- Line 2Pt
この5つになります。
まずは、Line SDLで作成した補助線の始点と終点を取得するために、Endpointsに繋ぎます。
そしたらEndpointsの終点をPoint(Flatten Treeでも可、または省略可)に繋ぎます。
Pointに繋ぐときに、すべての点のデータのクラス分け(リスト)をまとめて最初からにしたいので、Flattenにしておいてください。場合によってはFlatten Treeを使用することで、入力端子に変更を加えなくてなるほか、省略してPartition ListのList端子をFlattenすることでも同じ効果があります。
次に、すべての点データが1つのクラスになったので、その点データをクラス分けしてあげます。
クラス分けをすることでU方向とV方向の構造体を作成することができます。
今回はPartitionListで、「Number of V」(V方向の分割数)と同じ数でクラス分けを行いたいので、PartitionListのSets端子に、NumSliderを繋ぎます。
そうすることで、トラス構造体の下端をクラス分けすることができました。
次に、PartitionListによってクラス分けされた点データを、FlipMatrixに繋ぐことで逆行列にします。
今回は、V方向の分割数でクラス分けされた点データが、U方向の分割数でクラス分けされたように変換されます。
最後に、トラス構造の下端の点と、DeconstructBrepで抽出したsurfaceの頂点を繋ぐことで、トラス部分の通芯を作ることができます。
したがって、Line 2PtのAにトラス構造の下端の点を、Bにsurfaceの頂点を繋ぐことで、通り芯を作成することができました。
構造体を作成する
最後に構造体を使っていきます。そのために使うコンポーネントは、
- Interpolate
- Curve
- Pipe
この3つになります。
まずは前述したU方向にクラス分けしたFlipMatrixを1つ目のInterpolateのVertices端子につなげます。
そうすることで、U方向クラス分けされた点データが、出席番号順に繋がれた曲線が生成されます。
この曲線が最後にU方向の構造体を作るための、通芯になります。
また、同じことをPartitionListの出力から2つ目のInterpolateのVertices端子にします。
こうすることで、次はV方向の構造体を作るための通芯になります。
次に、curveについてです。このcurveは、DeconstructBrepで作られたsurfaceのエッジが、入力されています。
これが個々のパネルを囲う構造体の通芯になります。
ここまでで、すべての通芯の作成が終わったので、最後に構造体を作ります。
curveとLine 2Ptと2つのInterpolateをPipeのCurve端子に繋ぎます。
この時、普段通りに繋ぐと、一つしか繋げないので、Shiftキーを押しながら繋いであげましょう。
すると、複数個繋げるようになります。
最後に、この構造体の半径を指定したいので、NumSliderを一つ作成し、それをPipeのRadius端子に繋がましょう。すると構造体の半径もパラメトリックに操れるようになりました!
最後に(データ配布あり!!)
以上で、解説は終了です。どうでしたか?
思っていたより、少ないコンポーネントの組み合わせで、ツールが作成できたのではないでしょうか?この機会にぜひ、ほかのデザイン検討ツールを作成してみてください!!
今回のGrasshopperファイルは、こちらをクリックするとダウンロードされます。