2019年8月11日日曜日

【Grasshopper_26】六角形を使ったパターンその3 with NudiBranch


NudiBranchを使ったパターンを何か作ってみようと思い、定番の六角形の深さと貫通部の穴の大きさを変化させるパターンを作ってみました。じっと見てると気持ち悪いんですけどね。

Step1.基準面を作成する

・まずは適当なサーフェスを作成します。

・どんな形のものでもOKですが、このあとLunchBoxを使って3D面上に直接パターンを作るので、1枚のみのサーフェスを用意します。

Step2.六角形を配置する

・LunchBoxプラグインのHexagon Cellsコンポーネントを使って3D面上にパターンを作ります。

・縦と横の個数はお好みで。

Step3.六角形のみ残す

・LunchBoxでパターンを作ると、基準面の縁のあたりに欠けた状態のものが作成されてしまいます。

・この部分は使わないので、Explode、List Length、Equality、Cull patternコンポーネントを組み合わせまして、辺が6つあるパターン(つまり六角形)のみを取り出します。

Step4.XY平面にマッピングする

・Step3で取り出した六角形パターンを、Map to Surfaceコンポーネントを使って2Dサーフェスに貼りつけます。3Dから2Dへのマッピングです。

・マッピング先の、XY平面上の2Dサーフェスは、適当な大きさの正方形でOKです。
※あとの工程で再び3Dにマッピングを行うので、厳密に大きさを決める必要はないです。

・LunchBoxで生成されるパターンは、一辺が1次の直線なため、マッピングしたカーブをRebuild Curveコンポーネントにつないで3次に変換しておきます。

Step5.パターン化する部分としない部分を分離する

Top Viewの状態にします。

・Step4で作成した六角形のうち、パターン化する部分としない部分に分離させるので、上の図のようにRhinocerosのポリカーブを使って適当に曲線を作成し、六角形の中心点がCurve sideコンポーネントでポリカーブの内側or外側を判定させて、Cull patternコンポーネントで分離させます。

Step6.凹み量を計算する

・3D面上でへこませる時の深さをNudiBranchプラグインに含まれる、CurveValuesコンポーネントを使って計算します。

・P入力にStep5で取り出したポリカーブ内側の六角形の中心点、C入力にポリカーブをつなぎます。

・数値の強弱はR入力にスライダーをつないで調整します。

・AS入力は、強弱の向きを正転/反転させます。

・CurveValuesコンポーネントの出力は0~1の範囲の実数値ですので、Remapコンポーネントを使い、実際の深さ値に合うよう調整します。
※適当にCircleコンポーネントにつないでグラデーション具合を確認するといいかもです。

Step7.貫通部分を分離する

・次に、Step5で求めたポリカーブ内側の六角形に対し、今度は貫通させる六角形を分類します。

・Step5で作成したポリカーブよりもさらに内側にポリカーブを作成し、Curve side及びCull patternコンポーネントで仕分けします。

・Step6で求めた、凹み量の数値も同様に仕分けが必要です。
※六角形のポリカーブ内側と外側、凹み量の外側と内側で、Cull patternコンポーネントは合計4つ必要ということです。

Step8.貫通部分の縁幅の計算

・Step7で求めたポリカーブ内側の六角形に対し、NudibranchのCurve Valuesコンポーネントを使い、凹み部の縁幅を求めます。

・考え方はStep6と同じです。

Step9.六角形を縮小化する

・Step8で求めた数値をもとに、六角形をScaleコンポーネントにつないで上の図のように縮小させます。

・中心部が大きく、外に向かって徐々に小さくなっていきます。

Step10.基準面へマッピングする

・Step9で求めた、六角形及びその縮小形状を、Map to Surfaceコンポーネントを使って再び基準面に戻します。
・Step7で分離させた、非貫通部分の六角形もMap to Surfaceコンポーネントを使って基準面に戻します。

Step11.へこませない部分をマッピングする

・最後に、Step5で分離させた、凹ませない部分もマッピングしたらマッピング工程は完了です。

Step12.非貫通部分を3D化する

・非貫通部分については、まずは基準面に対しマッピングした曲線を使ってSurf Splitコンポーネントを使って分割し、個々の六角形サーフェスを作成します。

・個々の六角形サーフェスに対し法線方向を求め、Step.6で求めた凹み量にしたがって中心点を移動させます。

・後はExtrude Pointコンポーネントにつなぐと3D化します。

Step13.貫通部分を3D化する

・続いて貫通部分です。Step12と同じく、基準面をマッピングしたカーブで分割し、個々の六角形にします。

・深さについては、基準面を各六角形それぞれの凹み量を使ってオフセットさせ、面の法線方向に投影したカーブを使ってLoftコンポーネントで側面をはります。
※GrasshopperのLoftコンポーネントはカーブの向きが合わず面が壊れる事があります。

Step14.へこませない部分を作成する

・凹みをつけない部分も基準面をStep.11で求めた曲線を使って分割して取り出します。

Step15.完成

・以上で完成です。

・Nudibranchを使う場合は、平面上でカーブをつなぐ必要があるため今回はMap to Surafceコンポーネントを2回使いましたが、綺麗なグラデーション具合を作るのに便利だなと思います。

0 件のコメント:

コメントを投稿

【Grasshopper_98】SporphとSurface Morphingの特徴、違いなどについて

今年もまたGWに突入しましたね。コロナ明けに円安、インバウンド特需のおかげで東京から郊外に出かけると例年以上に混雑に巻き込まれそうなので、昨年と同様、連休中は家に籠ってブログを更新します。今回のテーマは、Surface MorphingとSporphの違いについてまとめてみました。