ぐにゃっと変形させてみたサンプル。
ストレッチとかテーパー、マッピング等の機能を組み合わせるとそれなりに複雑な変形をさせることができそうです。今回は上の図のようなサンプルの作り方を紹介します。
Step.1 XY平面上に六角形を作る
・変形の元となるサーフェスを作ります。Step.2 六角形をストレッチ変形させる
・変形具合が分かりやすいよう、変形後を右側に移動させています。・変形量は、直線の長さで指定するので、元の長さに対し0.7倍にしてStretchコンポーネントにつないでいます。直線の下端開始点から上の部分がぎゅっと縮小されます。
※StretchコンポーネントはRhino6以降に実装されたものですが、Rhino5の場合はJackalopeというプラグインを導入すると同じ機能が使用可能です。
Step.3 六角形をX軸に対しミラーコピーする
・六角形を上下対称な形にするため、X軸(赤矢印)に対しミラーコピーします。・事前に、Spep.2で作った六角形の、一番下端部分の中心点がX軸上になるよう移動させます。
・その後、ミラーコピーさせたい六角形を、Rhino上で作った長方形を取り込んで中心点の内側/外側判定を行って選択し、最後に両者を合体させます。
Step.4 スケール処理を行う
・計算に使うのがNudibranchプラグインに含まれるCurveValueコンポーネント。今回は立体形状の底面と上面の大きさを求めたいので、Remapコンポーネントを二つ使って2種類の範囲を求め、最後に片方のパスを{0}から{1}に変更し、Mergeコンポーネントにつないで1つにまとめています。
Step.5 XY平面上に曲線を2本作成する
・いったんRhino画面に戻り、上の図のように適当な2本のカーブをXY平面上に作成します。Step.6 Grasshopperに取り込んで、サーフェス化する
・Step.5で作成したカーブ2本をGrasshopperに取り込み、端点同士を直線でつなぎ、Network Surfaceコンポーネントを使って面化します。Step.7 六角形をマッピング機能を使って転写する
・六角形を、Map to Surfaceコンポーネントを使ってマッピングさせます。・次の工程を考えて、六角形は6本のカーブに分解し、Rebuild Curveコンポーネントにつないで次数と制御点の数を整えてからマッピングさせます。
Step.8 上面をZ方向に移動させる
・Step.7でマッピングさせたカーブを、まずはList Itemコンポーネントを使い、4辺をそれぞれ取り出してNetwork Surfaceコンポーネントにつないで面化します。・Network Surfaceコンポーネントの出口でFlattenを設定し、パスを{0}にまとめていますが、六角形の順番は維持されるので、リスト長の半分の位置でPartition Listコンポーネントを使って2つに分解し、Explode Treeコンポーネントにつないで{0;0}と{0;1}に分けてデータを取り出します。片方が底面の六角形、もう片方が上面の六角形になります。
・上面の六角形の方をZ方向にお好みの量で移動させます。
0 件のコメント:
コメントを投稿