
Sat, 03/26/2022 - 23:11
Forums:
Bug On BRepFilletAPI_MakeFillet
In this case, when radius >= 0.5, makeFillet.IsDone() should almost be false.
but when the radius is 0.8, it returns TRUE. something strange happen.
test.stl is in attachment. Any ideas on how to avoid this?
BRepPrimAPI_MakeBox boxMaker(1, 1, 1);
auto shape = boxMaker.Shape();
BRepFilletAPI_MakeFillet makeFillet(shape);
for (TopExp_Explorer explorer(shape, TopAbs_EDGE); explorer.More(); explorer.Next()) {
auto edge = TopoDS::Edge(explorer.Current());
makeFillet.Add(0.8, edge);
}
makeFillet.Build();
ASSERT_EQ(makeFillet.IsDone(), true);
auto result = makeFillet.Shape();
//
IMeshTools_Parameters aMeshParams;
aMeshParams.Deflection = 0.01;
aMeshParams.Angle = 0.5;
aMeshParams.Relative = Standard_False;
aMeshParams.InParallel = Standard_True;
aMeshParams.MinSize = Precision::Confusion();
aMeshParams.InternalVerticesMode = Standard_True;
aMeshParams.ControlSurfaceDeflection = Standard_True;
BRepMesh_IncrementalMesh mesh(result, aMeshParams);
mesh.Perform();
StlAPI_Writer stlApiWriter;
stlApiWriter.Write(result, "test.stl");
meanwhile, the STLAPI_Writer prints
Warning: 2 faces have been skipped due to null triangulation
Attachments: