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: