直線3本で囲った三角形をつないでバキバキした形状を作ると、曲面と接する最外側部分で隙間ができてしまうため、そこをうまく接続させる方法を考えてみました。
・凹と凸をそれぞれ別々に作る方がやりやすいので、LunchBoxのQuad Panelsコンポーネントを使って四角形を作ったあと、上の図のように組み合わせて互い違いに取り出せるようにします。それぞれをAとBにして区別できるとわかりやすいです。
・同時に、後の工程で四角形の中心点と4隅の点も使いますので取り出しておきます。
・その後、各点における法線ベクトルを求め、凹凸量に従って点を移動→Mergeコンポーネントを使って3点ずつ階層ごとに分類→ポリカーブを作成→サーフェスを張る という手順でコンポーネントをつなぐと凹凸サーフェスが出来上がります。
・凹凸サーフェスはすべて直線で結ばれている形状のため、元の曲面に対し、接続する部分ですき間ができてしまいます。そこで、以下のように手を加えます。
・同時に、Brep Joinコンポーネントを使って凹凸面を一つのポリサーフェスに結合し、Brep Edge、Join Curvesコンポーネントを組み合わせてポリサーフェスの4辺を取り出し、同じくXY平面に投影します。
・XY平面に投影したすべての辺の中点をCurve Middleコンポーネントを使って求めたあと、同じくXY平面に投影した外枠の上にあるかどうかの判定をCollision One|Manyコンポーネントで行い、その結果をCull patternコンポーネントにつないで最外側の辺のみ取り出し、取り出したカーブをZ方向で曲面に投影します。
・前工程でまとめた曲線を使って切ったり張ったりして完成です。
・RhinoにBakeしてから結合してポリサーフェス化してみました。オープンエッジが無く、完全に結合しています。
・XY平面に投影したすべての辺の中点をCurve Middleコンポーネントを使って求めたあと、同じくXY平面に投影した外枠の上にあるかどうかの判定をCollision One|Manyコンポーネントで行い、その結果をCull patternコンポーネントにつないで最外側の辺のみ取り出し、取り出したカーブをZ方向で曲面に投影します。
・同時に、凹凸面のBrep Edgeコンポーネントを使って各3辺ずつ求めると同時にインデックス番号をList Length、Seriesコンポーネントを組み合わせて作り、Cull Patternコンポーネントを使って選別した番号のみ、さきほど投影した曲線にReplace Itemsコンポーネントにつないで置き換えるという方法です。
0 件のコメント:
コメントを投稿