今回は、グラスホッパーで円の穴を組み合わせたファサードの作成方法について解説します。
動画で見る
全体の様子


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


上2枚の画像は、ライノセラス上に書き出した様子です。

上の画像は、最終的にレンダリングした様子です。
それでは、順番に解説していきます。
今回使用したグラスホッパーとライノセラスのデータダウンロードはこちら
ダウンロードできるデータのご利用に関しては、利用規約をご覧ください。
全体コンポーネント
全体コンポーネント:①XZ Plane ②Rectangle ③Surface ④Division ⑤Multiplication ⑥Divide Domain² ⑦Isotrim ⑧Area ⑨Circle ⑩Evaluate Surface ⑪MD Slider ⑫Series ⑬Cull Index ⑭Surface Split ⑮List Item ⑯Solid Union ⑰Unit Y ⑱Extrude


サーフェスを正方形で分割する
最初に、サーフェスを正方形で分割していきます。

最初に、XZ Planeを用意します。
すると、X方向とZ方向からできる作業平面が作成されます。
その後、XZ Planeを、RectangleのP端子につなげます。
さらに、RectangleのXとY端子に、辺の長さの数値を入力します。
今回は、X端子に10000、Y端子に4000の数値を入力しています。
すると、上の画像のように、四角形の線データが作成されました。

その後、RectangleのR端子を、Surfaceにつなげます。
すると、上の画像のように、四角形の線データからサーフェスが作成されました。

次に、サーフェスを正方形で分割する数値を作成していきます。
1000の数値を、2つのDivisionのB端子につなげます。
さらに、先程の10000の数値を、1つ目のDivisionのA端子につなげます。
すると、10000÷1000=10の数値が出力されます。
さらに、先程の4000の数値を、2つ目のDivisionのA端子につなげます。
すると、4000÷1000=4の数値が出力されます。
作成された10と4の数値は、サーフェスの辺の長さの比になっています。
この比を使うことで、サーフェスを正方形で分割します。
その後、2つのDivisionを、2つのMultiplicationにそれぞれつなげます。
さらに、任意の倍率の数値も、Multiplicationにそれぞれつなげます。
今回は、4の数値を入力しています。
すると、10×4=40の数値と、4×4=16の数値が出力されました。
これらの数値を使い、サーフェスを40×16の正方形で分割します。
その後、40の方のMultiplicationを、Divide Domain²のU端子につなげます。
さらに、16の方のMultiplicationを、Divide Domain²のV端子につなげます。
さらに、Surfaceを、Divide Domain²のI端子につなげます。
その後、Divide Domain²を、IsotrimのD端子につなげます。
さらに、Surfaceを、IsotrimのS端子につなげます。

すると、上の画像のように、サーフェスが正方形で分割されました。
これで、サーフェスを正方形で分割できました。
分割した正方形の中心と端に円を作成する
次に、分割した正方形の中心と端に、円を作成していきます。

すると、上の画像のように、各正方形のサーフェスの中心点を取得できました。

すると、取得した中心点の位置に、X方向とZ方向からできる作業平面が作成されます。
その後、XZ Planeを、CircleのP端子につなげます。
さらに、CircleのR端子に、円の半径の数値を入力します。
今回は、120の数値を入力しています。
すると、上の画像のように、各正方形の中心に円の線データが作成されました。

次に、正方形の右下の端の点を取得します。
Isotrimを、Evaluate SurfaceのS端子につなげます。
この際に、Evaluate SurfaceのS端子を右クリックし、Reparameterizeに設定してください。

その後、MD Sliderを、Evaluate Surfaceのuv端子につなげます。
この際に、MD Sliderの数値を1.0 ; 0.0に設定してください。

すると、上の画像のように、正方形の右下の端の点を取得できました。

次に、一番下と一番右の点を削除する数値を作成します。
1つ目のSeriesのSとN端子に、16の方のMultiplicationをつなげます。
さらに、1つ目のSeriesのC端子に、40の方のMultiplicationをつなげます。
すると、16から16ずつ増加する数値が、40個作成されます。
これらの数値は、一番下の点のインデックス番号(点の順番の番号)になります。
その後、もう1つのSeriesのSとN端子に、-1の数値を入力します。
さらに、もう1つのSeriesのC端子に、16の方のMultiplicationをつなげます。
すると、-1から1ずつ小さくなる数値が、16個作成されます。
これらの数値は、インデックス番号(点の順番の番号)の最後の16個を取得でき、一番右の点を取得できます。
その後、2つのSeriesを、Cull IndexのI端子につなげます。
さらに、Evaluate SurfaceのP端子を、Cull IndexのL端子につなげます。

すると、上の画像のように、一番下と一番右の点を削除できました。

その後、Cull Indexを、XZ Planeにつなげます。
すると、取得した点の位置に、X方向とZ方向からできる作業平面が作成されます。
その後、XZ Planeを、新たなCircleのP端子につなげます。
さらに、先程使用した半径の120の数値を、新たなCircleのR端子につなげます。
すると、上の画像のように、取得した点を中心とする、円の線データが作成されました。

先程作成した円の線データと重ねると、上の画像のようになります。
これで、分割した正方形の中心と端に円を作成することができました。
円で穴を開けて結合する
次に、円の線データで、サーフェスに穴を開けて結合していきます。


Surfaceを、2つのSurface SplitのS端子につなげます。
さらに、2つのCircleを、Surface SplitのC端子にそれぞれつなげます。
すると、元々のサーフェスが、円の線データで分割されます。
そして、2つのSurface Splitを、2つのList itemのL端子につなげます。
さらに、0の数値を、List itemのi端子につなげます。
すると、上の2枚の画像のように、元々のサーフェスから円の部分を取り除いた部分を取得できました。

2つのサーフェスを合わせると、上の画像のようになります。

その後、2つのList Itemを、Solid Unionにつなげます。
この際に、Solid UnionのB端子を右クリックし、Flattenに設定してください。

すると、上の画像のように、2つのサーフェスが1つに結合されました。

その後、厚みの数値を、Unit Yにつなげます。
今回は、50の数値を入力しています。
その後、Unit Yを、ExtrudeのD端子につなげます。
さらに、Solid Unionを、ExtrudeのB端子につなげます。
すると、上の画像のように、結合したサーフェスに厚みを付けることができました。

これで完成です。
今回は以上になります。
Comment