目的・趣旨
正方形のサイズをNumber Sliderひとつで決定し、それに対し小さい円を自動で描画するようにする
最後にそれら作成した曲線を用いて押し出し~ポリサーフェス化までを行う

使用したコンポーネント
  1. Params>Input>Number Slider
  2. Params>Input>Panel
  3. Maths>Operators>Negative
  4. Maths>Operators>Division
  5. Maths>Operators>Subtraction
  6. Vector>Vector>Unit X
  7. Vector>Vector>Unit Y
  8. Vector>Vector>Unit Z
  9. Curve>Primitive>Circle
  10. Curve>Primitive>Rectangle
  11. Surface>Freeform>Extrude
  12. Surface>Util>Cap Holes
  13. Intersect>Shape>Solid Difference
  14. Transform>Euclidean>Move

解説
15-7-26_sample
全体図はこのようになっている。大きく分けて3つのグループがある。
それぞれ正方形の描画、円の描画、ポリサーフェス化~ブーリアン演算の3つ。
最初にこのアルゴリズムがどのように動くのかを動画にしたので載せておきます。


それでは個々のグループの働きを見ていく
まずは正方形の描画について
15-7-26_5
正方形の描画にはRectangleコンポーネントを使用し、XとY値はひとつのNumber Sliderで操作している。
これだけで正方形の描画はできるが、そのままだと原点の位置が正方形の端に設定されていて操作しづらい 。
そのためX、Y方向へ移動させている。
正方形の中心がXのプラス方向へ位置しているため、マイナス方向へ移動させる必要がある。
NegativeコンポーネントでNumber Sliderの数値をマイナスにしている。
Yも同様の操作
15-7-26_6
このグループ単体での結果は正方形の描画のみである。
正方形の中心を原点と同じ位置にしている。

次に円の描画について見ていく
15-7-26_7
円の描画には、簡単な式を使って自動で半径を算出してくれるようにしている。
その式に必要な数値には、正方形のサイズを指示しているNumber Sliderを基にしている。
正方形の幅を半分にし(円は半径で指示するため)、オフセット値を指定し正方形よりも小さいサイズの円を作成できるようにしている。
15-7-26_8
この円の描画グループ単体の結果はこのようになる
15-7-26_9
正方形の描画と円の描画ふたつの結果を合わせると、正方形と、それより一回り小さい円の描画となる。

次にポリサーフェス化~ブーリアン演算のグループを見ていく
15-7-26_10
まずExtrudeコンポーネントふたつに、正方形と円のデータを入力する。
押し出し方向はUnit ZコンポーネントでZ方向としている。
押し出したサーフェスの穴をふさぐため、Cap Holesコンポーネントに繋いでいる。(ポリサーフェス化)
最後に、ふたつの閉じたサーフェスをSolid Differenceコンポーネントに繋ぎ、ブーリアン差演算を行っている。
これでひとつのポリサーフェスが完成

15-7-26_11
すべてのグループの計算結果が上の図のようになる。 

【書籍PR】Grasshopper入門
【書籍PR】Rhinoceros+Grasshopper建築デザイン実践ハンドブック
【書籍PR】AAD Algorithms-Aided Design. Parametric strategies using Grasshopper