2018年4月8日日曜日

【Grasshopper_04】キルティングパターンの再現


自動車の本革内装でおなじみのキルティングパターンを簡易的に再現してみました。

実物通りに作ろうとすると、かなり細かくノードを組んでいく必要があるため、寸法優先の場合は手作業で作った方がいいかもしれません。

CGコンテンツなど、あまり細かく再現する必要がない場合はこちらの方法もおすすめです。

Step.1 四角形内にひし形を配置する


・今回は3Dではなく2D平面上に作っていくことにします。

・Rectangleコンポーネントで適当な大きさの四角形を作図し、LunchBoxプラグインのDiamond Panelコンポーネントでひし形を配置します。

Step.2 等分割点を作成する


・Step.1で作成したひし形サーフェスそれぞれに、Divide Surfaceコンポーネントを使って等分割点を求めます。P出力の後ろに、Path Mapperコンポーネントを使って階層を1段、浅くしておきます。後工程の加工がしやすくなるためです。

・分割数はお好みですが、今回はU、Vそれぞれを10としています。

・Uの数は後程使いますので端子で取り出しておきます。

Step.3 ひし形サーフェスの外周曲線をオフセットさせる


・並行して、Step.1で作成したひし形サーフェスのエッジを取り出し、結合して閉曲線にします。

・さらに、閉曲線をオフセットさせます。

Step.4 分割点を分類する


・Step.2で作成した等分割点のうち、キルティング中央の高さが一定の個所と、周りのせり上がる部分に分けます。

・Step.3で求めたオフセットカーブを使い、Point In Curveコンポーネントで内か外かを判断し、Cull Patternコンポーネントを使って2つに分類します。

・今回の場合、外側の点はCull PatternコンポーネントのP入力をInvertにチェックを入れることで、反転させています。

・Step.2の等分割点の点のインデックスを後工程で使うため、Seriesコンポーネントで1ずつ増える数列を点の数の分だけ作り、同じくCull Patternコンポーネントを使って分類します。

Step.5 せり上がり部分の高さを求める


・Step.4で仕分けした、オフセットカーブ外側の点と、Step.3で求めたひし形の外周エッジまでの最短距離を求め、Remapコンポーネントを使って実際の高さ値(0 ~ 最大高さ)の範囲に変換します。

Step.6 キルティング中央部の点を移動させる


・キルティングの中央部分は一定の高さにしています。Step.4で仕分けした内側の点をZ方向に最大高さの分だけ移動させます。

・仕分けした点を元の、仕分け前の点に置き換えるため、Replace itemsコンポーネントを使い、数列を使ったインデックスをi入力に入れて置き換えします。

Step.7 キルティング外周部の点を移動させる


・引き続き、キルティング外周部のせり上がり部分の点に高さをつけていきます。

・Step.4で仕分けした外側の点をZ方向に、Step.5で求めた数値の分だけ移動させます。

・こちらも同じく、仕分け前の点と置き換えるため、replace Itemsコンポーネントを使って、数列によるインデックスを指定して置き換えます。

Step.8 点群のサーフェス化


・最後に、Surface from Pointsコンポーネントにつないでサーフェスをはります。

・U入力は、Step.2で作ったUの値をそのままつなぎますが、数合わせのため、Expression欄にx+1を入力しています。

<今後の課題>

今回のケースは2D平面上のパターン配置を取り上げましたが、自動車の内装表面は複雑なNurvs自由曲面で構成されていることが多いため、3D曲面に広範囲に配置する方法が次の課題です。

0 件のコメント:

コメントを投稿

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

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