Closed hrntsm closed 3 years ago
作成した trimmed surface を押し出しして、側面を作り、反対側はコピーしたサーフェスを作りJoinすることで解決した
押し出し方向はサーフェスの中心のnormal方向とした。
サーフェスのドメインの取得の仕方は以下 https://discourse.mcneel.com/t/how-to-reparameterize-a-surface-in-python/109317
private void RunScript(Brep y, ref object A)
{
var brepList = new List<Brep>();
var curveList = new List<Curve>();
brepList.Add(y);
var aaa = y.Faces[0];
var vec = aaa.NormalAt(aaa.Domain(0).Mid, aaa.Domain(1).Mid);
foreach(var brepEdge in y.Edges)
{
curveList.Add(brepEdge.DuplicateCurve());
}
foreach(Curve crv in curveList)
{
brepList.Add(Surface.CreateExtrusion(crv, vec).ToBrep());
}
Brep x = y.DuplicateBrep();
x.Translate(vec);
brepList.Add(x);
var brep = Brep.JoinBreps(brepList, 0.0001);
A = brep;
}
厚さのある non-planar なスラブをclosed brepの作り方を考える。