今回は、グラスホッパーで異なるサイズの四角形のファサードを作成する方法を解説します。
動画で見る
全体の様子

グラスホッパーの様子です。

ライノセラス上で色を付けた様子です。

最終的にレンダリングした様子です。
それでは、順番に解説していきます。
今回使用したグラスホッパーとライノセラスのデータダウンロードはこちら
ダウンロードできるデータのご利用に関しては、利用規約をご覧ください。
全体コンポーネント


全体コンポーネント:①Surface ②Divide Domain² ③Isotrim ④Construct Domain ⑤List Length ⑥Random ⑦Integer ⑧Evaluate Surface ⑨MD Slider ⑩Negative ⑪Offset Curve Loose ⑫Surface Split ⑬List Item ⑭Offset Surface ⑮Brep Wireframe ⑯Join Curves ⑰Ruled Surface ⑱Merge ⑲Brep Join
サーフェスを分割する
まず、サーフェスを分割していきます。

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

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

その後、Surfaceを、Divide Domain²のI端子につなげます。
そして、Divide Domain²のUとV端子に、サーフェスの分割数を入力します。
今回は、どちらにも10を入力しています。
その後、Divide Domain²を、IsotrimのD端子につなげます。
また、Surfaceを、IsotrimのS端子につなげます。
すると、サーフェスが10×10に分割されました。

この際に、Isotrimの右側のS端子を右クリックし、Graftを選択してください。
各サーフェスをランダムに分割する
次に、分割したサーフェスを、さらにランダムに分割していきます。

ランダムに分割するための数値を作成していきます。
Construct DomainのA端子に、1の数値を入力します。
さらに、Construct DomainのB端子に、最大の分割数の数値を入力します。
今回は、3を入力しています。
すると、1 To 3という数値の範囲が作成されました。

そして、Isotrimを、List Lengthにつなげます。
この際に、List Lengthの左側の端子を右クリックし、Flattenを選択してください。
すると、各サーフェスの数の数値が出力されます。

その後、Construct Domainを、RandomのR端子につなげます。
また、List Lengthを、RandomのN端子につなげます。
RandomのS端子には、ランダムさを変えるシード値を、任意で入力します。
すると、1~3の数値がランダムで作成されます。
この際に、Randomの右側のR端子を右クリックし、Graftを選択してください。
その後、RandomをIntegerにつなげ、少数点の数値を整数にします。

その後、Integerを、Divide Domain²のUとV端子につなげます。
さらに、先程のIsotrimを、Divide Domain²のI端子につなげます。
そして、先程のIsotrimを、新たなIsotrimのS端子につなげます。
また、Divide Domain²を、新たなIsotrimのD端子につなげます。
すると、上の画像のように、サーフェスがランダムに分割されました。

この際に、Isotrimの右側のS端子を右クリックし、Flattenを選択してください。
枠と中心部分を分ける
次に、枠と中心部分を分けます。

Isotrimを、Evaluate SurfaceのS端子につなげます。
この際に、Evaluate SurfaceのS端子を右クリックし、Reparameterizeを選択してください。

さらに、MD Sliderを、Evaluate Surfaceのuv端子につなげます。
すると、上の画像のように、各サーフェスの中心点の情報を取得することができました。


その後、オフセットする距離の数値を、Negativeにつなげます。
今回は、50を入力したので、-50の数値が出力されます。
その後、Isotrimを、Offset Curve LooseのC端子につなげます。
また、Negativeを、Offset Curve LooseのD端子につなげます。
そして、Evaluate SurfaceのF端子を、Offset Curve LooseのP端子につなげます。
すると、上の画像のように、サーフェス枠の線が、内側にオフセットされました。

次に、Surface Splitを用意し、SとC端子を右クリックし、Graftに設定します。
そして、Isotrimを、Surface SplitのS端子につなげます。
また、Offset Curve Looseを、Surface SplitのC端子につなげます。
すると、サーフェスが線の場所で2つに分割されます。


Surface Splitを、2つのList itemのL端子につなげ、片方のi端子には0、もう一方のi端子には1を入力します。
すると、上2枚の画像のように、分割されたサーフェスをそれぞれ取得することができました。
厚みを付ける
最後に、厚みを付けていきます。

Negativeに、サーフェスをオフセットする数値を入力します。
今回は100を入力しているので、-100の数値が出力されます。
そして、Isotrimを、Offset SurfaceのS端子につなげます。
さらに、Negtiveを、Offset SurfaceのD端子につなげます。
すると、上の画像のように、サーフェスがオフセットされました。
そして、先程のEvaluate Surface~List Itemと同様のプログラミングを、Offset Surfaceにしてください。

その後、2つの0の数値が入力されているList Itemを、それぞれBrep Wireframeにつなげます。
すると、サーフェスの枠線部分の線を取得できます。
そして、Brep Wireframeを、Join CurvesのC端子につなげます。
すると、線が結合されます。

その後、2つのJoin Curvesを、Ruled Surfaceにつなげます。
すると、枠の外側部分のサーフェスが作成されます。

その後、2つの0の数値が入力されているList ItemとRuled Surfaceを、Mergeをつなげます。
この際に、入力した3つの端子を右クリックし、Simplifyに設定してください。

すると、各サーフェスが結合され、枠が完成しました。

その後、2つの1の数値が入力されているList Itemを、Ruled Surfaceにつなげます。
この際に、Ruled SurfaceのS端子を右クリックし、Graftに設定してください。

すると、内側の上の画像の部分のサーフェスが作成されます。

その後、2つの1の数値が入力されているList ItemとRuled Surfaceを、Brep Joinにつなげます。
この際に、Brep Joinの左側のB端子を右クリックし、Flattenに設定してください。

すると、このように内側部分が完成しました。

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