2021年10月31日日曜日

【Grasshopper_49】左右対称なパターンをGraph Mapperを使って徐変コントロールさせる


2022.2.6追記
※この記事の内容に関して、PanelingToolsプラグインを使うほうがより簡単で精度がいいのでそちらをおすすめします。【Grasshopper_54】で紹介しています。

今回のネタは、XY平面上に作ったパターンを左右対称を維持したまま、Graph Mapperを使って大きさをコントロールする方法です。

車のフロントグリルのパターンなど、左右対称形状の部位に適用する際に役に立ちます。

プラグインで同じ機能を有するものがあればそちらを使いたいところですが、見当たらないため自力で作る方法を紹介します。

今回は、X方向のみ大きさを変化させていきます。

Step.1 XY平面上に適当な大きさのサーフェスを作る


まずは上の図のような大きさのサーフェスを用意します。

Step.2 サーフェスの横方向のUV値を求める


・パターンの作成はSurfaceのUVを使いますので、0から1の間の数列を用意していきます。
・Y軸をまたぐ、ど真ん中のパターンの範囲をスライダーで調整できるようにします。
・パターンの横方向の総個数を奇数で設定し、Y軸の左側、右側のパターンのUV値をRangeコンポーネントを使って求めます。
・パターン右側のUVは階層{0}のまま、パターン左側のUV値はReplace Pathsコンポーネントを使って{1}に変更してからMergeコンポーネントで1つにまとめます。

Step.3 横方向の大きさを変化させる設定


・このままだと横方向の大きさが均等になっているので、ここで変化させます。
・Step.2で求めたUV値をいったん0~1の範囲にRemapコンポーネントを使って範囲を変換し、Graph Mapperコンポーネントを使って曲線的に変化させてから、再び元の範囲にRemapを使って戻します。
・左側のパターンのUV値は右側に対し徐変の方向を反転させるため、1から引いた数値をReverse Listsコンポーネントを使ってリスト内部の順番を反転させる処理を加えます。

Step.4 パターンのすべての範囲を求める


・これまでに求めたUV値を、Cull indexとShift Listsコンポーネントを組み合わせてDomainデータを作り、すべてのパターンのDomainデータを作ります。

Step.5 サーフェスを分割する


・これまでに求めたサーフェスとUVのDomainデータを作り、Isotrimコンポーネントを使って分割し、追加で適当に加工したら完成です。

中央のパターンの幅をスライダーで調整し、左右の大きさ変化をGraph Mapperでグリグリ調整してちょうどいい大きさを探していきます。

0 件のコメント:

コメントを投稿

【Grasshopper_105】三角形の中に円を敷き詰める方法

今年もいよいよ残すところあと1カ月を切りました。今年最後の投稿となりますが、三角形の枠の中に円を敷き詰めるサンプルの作り方を書いてみたいと思います。三角形が正三角形に近いほどドットの間隔が一定になります。面積がバラバラだと密度の濃淡が出てしまうので調整が難しいかもしれません。