2022年12月11日日曜日

【Grasshopper_72】バキバキさせた凹凸パターンの外周を曲面に接する形


直線3本で囲った三角形をつないでバキバキした形状を作ると、曲面と接する最外側部分で隙間ができてしまうため、そこをうまく接続させる方法を考えてみました。


・まずは適当な曲面を作り、その真下のXY平面上に正方形のサーフェスをGrasshopper上で配置します。


・凹と凸をそれぞれ別々に作る方がやりやすいので、LunchBoxのQuad Panelsコンポーネントを使って四角形を作ったあと、上の図のように組み合わせて互い違いに取り出せるようにします。それぞれをAとBにして区別できるとわかりやすいです。

・凹凸量は外から中心に向かって徐々に大きくなるようにしてみます。NudiBranchプラグインのCurve Valuesコンポーネントを使うと計算が楽になります。実際の凹凸量の範囲はRemap Numbersコンポーネントを使って変換します。

・同時に、後の工程で四角形の中心点と4隅の点も使いますので取り出しておきます。

・冒頭で作った曲面に対し、Z方向に向かって点を投影します。

・その後、各点における法線ベクトルを求め、凹凸量に従って点を移動→Mergeコンポーネントを使って3点ずつ階層ごとに分類→ポリカーブを作成→サーフェスを張る という手順でコンポーネントをつなぐと凹凸サーフェスが出来上がります。

・凹凸サーフェスはすべて直線で結ばれている形状のため、元の曲面に対し、接続する部分ですき間ができてしまいます。そこで、以下のように手を加えます。

・出来上がった凹凸面を、まずはBrep Edgeコンポーネントを使って辺を抽出し、XY平面上に投影します。

・同時に、Brep Joinコンポーネントを使って凹凸面を一つのポリサーフェスに結合し、Brep Edge、Join Curvesコンポーネントを組み合わせてポリサーフェスの4辺を取り出し、同じくXY平面に投影します。


・XY平面に投影したすべての辺の中点をCurve Middleコンポーネントを使って求めたあと、同じくXY平面に投影した外枠の上にあるかどうかの判定をCollision One|Manyコンポーネントで行い、その結果をCull patternコンポーネントにつないで最外側の辺のみ取り出し、取り出したカーブをZ方向で曲面に投影します。

・同時に、凹凸面のBrep Edgeコンポーネントを使って各3辺ずつ求めると同時にインデックス番号をList Length、Seriesコンポーネントを組み合わせて作り、Cull Patternコンポーネントを使って選別した番号のみ、さきほど投影した曲線にReplace Itemsコンポーネントにつないで置き換えるという方法です。

・前工程でまとめた曲線を使って切ったり張ったりして完成です。

・RhinoにBakeしてから結合してポリサーフェス化してみました。オープンエッジが無く、完全に結合しています。

0 件のコメント:

コメントを投稿

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

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