https://www.simes.it/en/overview/66/slot-pole
今回は、グラスホッパーでNew Opera House of Firenzeのファサードを再現しました。
動画で見る
全体の様子


上2枚の画像は、グラスホッパーの様子です。


上2枚の画像は、ライノセラス上に書き出した様子です。
それでは、順番に解説していきます。
今回使用したグラスホッパーとライノセラスのデータダウンロードはこちら
ダウンロードできるデータのご利用に関しては、利用規約をご覧ください。
全体コンポーネント
全体コンポーネント:①Rectangle ②Explode ③Unit Z ④Move ⑤Ruled Surface ⑥Multiplication ⑦Divide Surface ⑧PolyLine ⑨Cull Index ⑩Perp Frames ⑪Deconstruct Plane ⑫Area ⑬Vector 2Pt ⑭Loft ⑮Cap Holes ⑯Divide Domain² ⑰Division ⑱Offset Surface ⑲Isotrim ⑳List Length ㉑Construct Domain ㉒Random ㉓Integer ㉔MD Slider ㉕Evaluate Surface ㉖Extrude






縦格子部分を作成する
最初に、縦格子部分を作成します。

最初に、RectangleのXとY端子に、2方向の辺の長さの数値を入力します。
今回は、X端子に40000、Y端子に20000の数値を入力しています。
すると、上の画像のように、40000×20000の四角形の線データが作成されました。

その後、RectangleのR端子を、ExplodeのC端子につなげます。
すると、四角形の線データが、各頂点の位置で4つの線データに分解されました。

その後、Unit Zに、真上方向に移動させる距離の数値を入力します。
今回は、15000の数値を入力しています。
さらに、ExplodeのS端子を、MoveのG端子につなげます。
すると、上の画像のように、真上方向に線データが移動しました。

その後、ExplodeのS端子とMoveのG端子を、Ruled Surfaceにつなげます。
すると、上の画像のように、線をつなぐサーフェスが作成されます。

その後、MultiplicationのA端子に、20の数値を入力します。
さらに、MultiplicationのB端子に、2の数値を入力します。
すると、20×2=40の数値が出力されます。
その後、MultiplicationのR端子を、Divide SurfaceのU端子につなげます。
さらに、1の数値を、Divide SurfaceのV端子につなげます。
そして、Ruled Surfaceを、Divide SurfaceのS端子につなげます。
すると、上の画像のように、サーフェス上に分割点が作成されます。

その後、Divide SurfaceのP端子を、PolyLineのV端子につなげます。
すると、上の画像のように、分割点をつなぐ縦向きの線が作成されます。

その後、PolyLineを、Cull IndexのL端子につなげます。
この際に、Cull IndexのL端子を右クリックし、Flattenに設定してください。
そして、Cull IndexのI端子に、0の数値を入力します。
すると、2つに重複している一番端の線を、1本消すことができます。

その後、Cull Indexを、Perp FramesのC端子につなげます。
さらに、Perp FramesのN端子に、1の数値を入力します。
すると、線の両端に、作業平面が作成されます。
その後、Perp FramesのF端子を、RectangleのP端子につなげます。
さらに、RectangleのXとY端子に、2方向の辺の長さの数値を入力します。
今回は、どちらにも100の数値を入力しています。
すると、上の画像のように、線の両端に正方形が作成されます。

その後、RectangleのR端子を、Areaにつなげます。
すると、四角形の中心点を取得できます。
さらに、Perp FramesのF端子を、Deconstruct Planeにつなげます。
すると、線の両端にある作業平面の原点を取得できます。

その後、AreaのC端子を、Vector 2PtのA端子につなげます。
さらに、Deconstruct PlaneのO端子に、Vector 2PtのB端子につなげます。
すると、正方形の中心点から、作業平面の原点までのベクトルデータを取得できます。
その後、Vector 2PtのV端子を、MoveのT端子につなげます。
さらに、RectangleのR端子を、MoveのG端子につなげます。
すると、上の画像のように、正方形が線の中心に来るように移動しました。

すると、2つの正方形をつなぐサーフェスが作成されます。
すると、サーフェスが閉じ、縦格子が完成します。

こちらが、全体の縦格子の様子です。
パネル部分を作成する
次に、パネル部分を作成していきます。

その後、先程の100の数値を、DivisionのA端子につなげます。
さらに、2の数値を、DivisionのB端子につなげます。
すると、100÷2=50の数値が出力されます。
その後、Divisionを、Offset SurfaceのD端子につなげます。
さらに、Ruled Surfaceを、Offset SurfaceのS端子につなげます。
すると、上の画像のように、縦格子の外側部分まで、サーフェスがオフセットされました。

その後、Divide Domain²のI端子に、Ruled Surfaceをつなげます。
さらに、先程使った20の数値を、Divide Domain²のU端子につなげます。
また、100の数値を、Divide Domain²のV端子につなげます。
その後、Divide Domain²を、IsotrimのD端子につなげます。
さらに、Offset Surfaceを、IsotrimのS端子につなげます。
この際に、IsotrimのS端子を右クリックし、Graftに設定してください。

すると、上の画像のように、サーフェスが分割されました。

その後、Isotrimの右側のS端子を右クリックし、Flattenを選択してください。

次に、ランダムにパネルのサーフェスを消していきます。
Isotrimを、List Lengthにつなげます。
すると、分割したサーフェスの個数の数値を取得できます。
今回の場合、8000の数値が出力されています。
その後、0の数値を、Construct DomainのA端子につなげます。
さらに、List Lengthを、Construct DomainのB端子につなげます。
すると、0 To 8000の数値範囲が作成されます。
その後、Construct Domainを、RandomのR端子につなげます。
その後、作成するランダムな数値の個数の数値を入力します。
今回は、5000の数値を入力しています。
さらに、RandomのS端子に、任意のランダムさのシード値を入力します。
今回は、100の数値を入力しています。
すると、0~8000の数値範囲で、ランダムな数値が5000個作成されます。
すると、出力されたランダムな少数点の数値を、整数に変換できます。
その後、Isotrimを、Cull IndexのL端子につなげます。
さらに、Integerを、Cull IndexのI端子につなげます。

すると、上の画像のように、パネルのサーフェスをランダムに消すことができました。

その後、Cull Indexを、Evaluate SurfaceのS端子につなげます。
この際に、Evaluate SurfaceのS端子を右クリックし、Reparameterizeに設定してください。
これにより、サーフェス上の位置を、0~1の数値で指定することができます。
その後、MD Sliderを、Evaluate Surfaceのuv端子につなげます。

すると、サーフェス上に表示される点の位置のサーフェス情報を取得できます。

その後、Evaluate SurfaceのN端子を、MultiplicationのA端子につなげます。
Evaluate SurfaceのN端子からは、各サーフェスの法線方向のベクトルを取得できます。
また、厚みの数値を、MultiplicationのB端子につなげます。
今回は、50の数値を入力しています。
その後、Multiplicationを、ExtrudeのD端子につなげます。
さらに、Cull Indexを、ExtrudeのB端子につなげます。
すると、上の画像のように、サーフェスに厚みができます。

作成した縦格子と合わせると、完成です。

最終的な全体の様子です。
今回は以上になります。
Comment