#008机を作ろう!その2
はじめに
#003机を作ろう!の回では自由な寸法で机をモデリングできるように作成しました。
ただしこのままでは、例えば天板の大きさを極端に小さくしたとき、それぞれの脚が重なり合うなど、実際の机からほど遠いモデリングが作成されてしまいます。
ここでは、前回のグラスホッパーを改良してそのような不都合が起きないようにしたいと思います。
公式サイトで各コンポーネントの種類と解説がされているので参考にしてください。
Grasshopper コンポーネントIndex | AppliCraft

各パラメータの準備
#003机を作ろう!の回で使ったコンポーネントをそのまま使用します。
各コンポーネントに番号を振っておきます。
「Params>Input>Number Slider」
「Params>Input>Value List」
「Params>Util>Relay」

条件式の作成
ここからは最低限机の形状が保持できるよう、条件式を用いたコードを作成していきます。
「Params>Input>Panel」
「Maths>Operators>Addition」
「Maths>Operators>Division」
「Maths>Operators>Multiplication」
「Maths>Operators>Subtraction」
「Maths>Script>Evaluate」
「Evaluate」のFに「if(x<0,0,x)」と記入した「Panel」と接続します。

「Maths>Script>Evaluate」
「Maths>Operators>Division」
「Sets>List>List Item」
「Sets>List>Sort List」
「Sets>Tree>Merge」
「Params>Input>Panel」
「Panel」に「if(x>y,x,y)」を記入し「Evaluate」に接続します。

「Maths>Script>Evaluate」
「Maths>Operators>Subtraction」
「Params>Input>Panel」

これらの条件式は
- 脚の太さが過大でもそれに追随して机天板の大きさも変化します。
- オフセット量の大きさに応じて机天板の大きさが変化します。
- オフセット量が過少でも脚が机端からはみ出すことがなくなります。
- 机の天板の大きさが過少でも脚同士が重なることがなくなります。
となるように組まれています。
下は天板の面積をゼロにしたときのモデルです。
脚の大きさ、オフセットの数値から最低限の天板の大きさが確保されています。

モデル化
#003机を作ろう!の回で使ったコンポーネントを活用しました。

まとめ
今回は#003机を作ろう!で作成したテーブルを改良して不自然な形にならないようにしました。
不要なエラーは未然に発生しないようにしておけば、コード作成者以外の人にも安心して使ってもらえるのでとても重要だと思います。
今回作成したGHデータはこちらからダウンロードできます。