MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0030813Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2019-06-26 15:122019-06-26 15:26
Reporterszy 
Assigned Tojgv 
PrioritynormalSeveritymajor 
StatusnewResolutionopen 
PlatformOSOS Version
Product Version[OCCT] 7.3.0 
Target Version[OCCT] 7.4.0*Fixed in Version 
Summary0030813: BRepFilletAPI_MakeFillet doesn't work for the specified case
DescriptionThe MakeFillet algorithm doesn't work as expected. The case with two parameters completely fails. See below reproducer.
Steps To ReproduceThis is the snippet to reproduce the bug:

TopoDS_Face createTriangleFace(const gp_Pnt& p1, const gp_Pnt& p2, const gp_Pnt& p3)
{
    BRepBuilderAPI_MakeVertex v1VertexMaker(p1);
    v1VertexMaker.Build();
    
    BRepBuilderAPI_MakeVertex v2VertexMaker(p2);
    v2VertexMaker.Build();
    
    BRepBuilderAPI_MakeVertex v3VertexMaker(p3);
    v3VertexMaker.Build();
    
    BRepBuilderAPI_MakeEdge v12EdgeMaker(v1VertexMaker.Vertex(), v2VertexMaker.Vertex());
    v12EdgeMaker.Build();
    
    BRepBuilderAPI_MakeEdge v23EdgeMaker(v2VertexMaker.Vertex(), v3VertexMaker.Vertex());
    v23EdgeMaker.Build();
    
    BRepBuilderAPI_MakeEdge v31EdgeMaker(v3VertexMaker.Vertex(), v1VertexMaker.Vertex());
    v31EdgeMaker.Build();
    
    BRepBuilderAPI_MakeWire triangleWireMaker;
    triangleWireMaker.Add(v12EdgeMaker.Edge());
    triangleWireMaker.Add(v23EdgeMaker.Edge());
    triangleWireMaker.Add(v31EdgeMaker.Edge());
    
    triangleWireMaker.Build();
    BRepBuilderAPI_MakeFace triangleFaceMaker(triangleWireMaker.Wire());
    triangleFaceMaker.Build();
    
    return triangleFaceMaker.Face();
}
....

    gp_Pnt p1(-0.5, 0, 0);
    gp_Pnt p2(10, 10, -10);
    gp_Pnt p3(5, 0, -11);
    gp_Pnt p4(0, 2, -18);
    gp_Pnt p5(-6, 8, -13.5);
    
    TopoDS_Face firstTriangleFace = createTriangleFace(p1, p2, p3);
    TopoDS_Face secondTriangleFace = createTriangleFace(p2, p3, p4);
    TopoDS_Face thirdTriangleFace = createTriangleFace(p2, p4, p5);
    
    auto sewer = BRepBuilderAPI_Sewing();
    sewer.Add(firstTriangleFace);
    sewer.Add(secondTriangleFace);
    sewer.Add(thirdTriangleFace);
    
    sewer.Perform();
    
    const auto& sewedShape = sewer.SewedShape();
    
    BRepFilletAPI_MakeFillet filletMaker(sewedShape);
    for(int contigousEdgeInd = 1; contigousEdgeInd <= sewer.NbContigousEdges(); ++contigousEdgeInd)
    {
        const TopoDS_Edge& sharedEdge = sewer.ContigousEdge(contigousEdgeInd);
        filletMaker.Add(1, sharedEdge);
    }
    
    filletMaker.Build();

In the snippet I created these 3 triangles (as in the image below), sew them and run the fillet maker on the shared edges with radius of 1. The fillet maker failed in its operation

TagsNo tags attached.
Test case number
Attached Files? file icon t4 (503 bytes) 2019-06-26 15:26

- Relationships

-  Notes
There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
2019-06-26 15:12 szy New Issue
2019-06-26 15:12 szy Assigned To => jgv
2019-06-26 15:26 szy File Added: t4


Copyright © 2000 - 2019 MantisBT Team
Powered by Mantis Bugtracker