今回は、ランダムな大きさの窓と穴を、曲面のファサードや壁に作成します。
最終的には、上の2枚の画像のようになります。
それでは順番に解説していきます。
今回使用したグラスホッパーとライノセラスのデータダウンロードはこちら
ダウンロードできるデータのご利用に関しては、利用規約をご覧ください。
全体コンポーネント
全体コンポーネント:①Surface ②Divide Domain² ③Isotrim ④MD Slider ⑤Evaluate Surface ⑥Multiplication ⑦Random ⑧Scale ⑨Deconstruct Brep ⑩Ruled Surface ⑪Brep Join ⑫Extrude
こちらが、全体コンポーネントになります。
サーフェスを分割する
こちらが、今回使用するライノセラス上のサーフェスになります。
まず、サーフェスを分割していきます。
最初に、Surfaceに、ライノセラス上のサーフェスを格納します。
その後、Surfaceを、IsotrimのS端子につなげます。
さらに、Surfaceを、Divide Domain²のI端子につなげます。
そして、Divide Domain²のUとV端子に、分割数の数値を入力します。
今回はどちらにも10を入力してるので、10×10にサーフェスが分割されました。
窓穴部分のランダムなサイズのサーフェスを作成する
次に、窓穴部分のランダムなサイズのサーフェスを作成していきます。
Isotrimを、Evaluate SurfaceのS端子につなげます。
さらに、MD Sliderを、Evaluate Surfaceのuv端子につなげます。
この際に、Evaluate SurfaceのS端子を右クリックし、Reparameterizeを選択してください。
ランダムな数値を作成していきます。
Divide Domain²で使用した数値を、MultiplicationのAとB端子につなげます。
今回は10なので、10×10で100の数値が出力されます。
この数値は、分割されて作られたサーフェスの数と同じです。
その後、RandomのR端子に、0 To 1と入力します。
これにより、0~1の数値の範囲を指定できます。
さらに、MultiplicationをRandomのN端子につなげます。
これにより、作成されるランダムな数値の個数を指定できます。
今回に場合は100を入力してるので、100個のランダムな数値が作成されます。
S端子に適当な数値を入力することで、数値を変えてランダムさを変えることができます。
すると、1~0の数値範囲で、100個の数値がランダムに作成されました。
さらに、Evaluate SurfaceのP端子を、ScaleのC端子につなげます。
すると、上の画像のように、1つ1つの分割されたサーフェスが、ランダムでサイズが変わりました。
その後、IsotrimとScaleを、それぞれDeconstruct Brepにつなげます。
すると、元々のサーフェスと、スケールが変わったサーフェスが分解されます。
そして、Deconstruct BrepのE端子から、サーフェスの線のみを取得できます。
その後、2つのDeconstruct BrepのE端子を、Ruled SurfaceのAとB端子につなげます。
すると、窓穴部分のサーフェスが作成されます。
その後、Ruled Surfaceを、Brep Joinにつなげると、4つに分かれているサーフェスが結合されます。
この際に、Brep JoinのB端子を右クリックし、Flattenを選択してください。
厚みをつける
最後に、サーフェスに厚みをつけます。
MultiplicationのA端子に、Evaluate SurfaceのN端子をつなげます。
さらに、B端子に厚みの数値を入力します。
今回は、3を入力しました。
これにより、各サーフェスの地点の法線方向に厚みをつけることができるようになります。
そして、Brep JoinのB端子を、ExtrudeのB端子につなげます。
さらに、Multiplicationを、ExtrudeのD端子につなげます。
すると、上の画像のように、窓枠の厚みができました。
ScaleのG端子を、Extrudeで同じようにすると、窓の厚みがつきます。
これで完成です。
追加コンポーネント:①Negative
厚みの向きを逆にする場合は、MultiplicationとExtrudeの間に、Negativeを使用してください。
ライノセラス上に書き出した様子です。
今回は以上になります。
コメント