MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0029645Community[OCCT] OCCT:Modeling Algorithmspublic2018-03-26 15:142018-03-26 15:14
Reportervengelgardt 
Assigned Tomsv 
PrioritynormalSeveritycrash 
StatusnewResolutionopen 
PlatformWindowsOSVC++ 2015OS Version64 bit
Product Version 
Target VersionFixed in Version 
Summary0029645: Hang on making pipe shell using BRepOffsetAPI_MakePipeShell
DescriptionAlgorithm hangs in GeomFill_CorrectedFrenet::GetAngleAT
Steps To ReproducePaste this code to CModelingDoc::OnWire() and include <BRepOffsetAPI_MakePipeShell.hxx>, <TopExp.hxx>

    TopoDS_Wire profile;

    {
        BRep_Builder builder;
        TopoDS_Vertex verts[4];

        builder.MakeVertex(verts[0], gp_Pnt(-26, 12, 0), Precision::Confusion());
        builder.MakeVertex(verts[1], gp_Pnt(-26, 0, 0), Precision::Confusion());
        builder.MakeVertex(verts[2], gp_Pnt(26, 0, 0), Precision::Confusion());
        builder.MakeVertex(verts[3], gp_Pnt(26, 12, 0), Precision::Confusion());

        BRepBuilderAPI_MakeEdge line1(verts[0], verts[1]);
        BRepBuilderAPI_MakeEdge line2(verts[1], verts[2]);
        BRepBuilderAPI_MakeEdge line3(verts[2], verts[3]);
        BRepBuilderAPI_MakeEdge line4(verts[3], verts[0]);
        BRepBuilderAPI_MakeWire wire_maker;

        wire_maker.Add(line1.Edge());
        wire_maker.Add(line2.Edge());
        wire_maker.Add(line3.Edge());
        wire_maker.Add(line4.Edge());

        profile = wire_maker.Wire();
    }

    TopoDS_Wire path;
    TopoDS_Vertex path_vertex;

    {
        TColStd_Array1OfReal knots(1, 5);
        knots(1) = 0;
        knots(2) = 45.880278987817846;
        knots(3) = 99.638999210680296;
        knots(4) = 162.40841851658115;
        knots(5) = 188.71431139251297;
        TColgp_Array1OfPnt poles(1, 7);
        poles(1) = gp_Pnt(-1, 0, -179);
        poles(2) = gp_Pnt(0.37902151193486527, 0, -164.30703183772184);
        poles(3) = gp_Pnt(11.195586011484558, 0, -132.50453080937984);
        poles(4) = gp_Pnt(41.585039692913654, 0, -80.520244067871488);
        poles(5) = gp_Pnt(5.5420134018386120, 0, -38.231472197588452);
        poles(6) = gp_Pnt(0.50268655678950513, 0, -8.9676964506451551);
        poles(7) = gp_Pnt(1, 0, 0);
        TColStd_Array1OfInteger mults(1, 5);
        mults(1) = 4;
        mults(2) = 1;
        mults(3) = 1;
        mults(4) = 1;
        mults(5) = 4;
        bool is_periodic = 0;
        int degree = 3;

        Handle(Geom_BSplineCurve) spl = new Geom_BSplineCurve(poles, knots, mults, degree, is_periodic);
        BRepBuilderAPI_MakeEdge edge_maker(spl);
        BRepBuilderAPI_MakeWire wire_maker;
        TopoDS_Edge edge = edge_maker.Edge();

        edge.Reverse();

        wire_maker.Add(edge);

        path_vertex = TopExp::FirstVertex(edge, 1);

        path = wire_maker.Wire();
    }

    BRepOffsetAPI_MakePipeShell sweep(path);

    sweep.Add(profile, path_vertex, Standard_False, Standard_False);
    sweep.Build();

    Handle(AIS_Shape) ais_prism = new AIS_Shape(sweep.Shape());
    myAISContext->SetColor(ais_prism,Quantity_NOC_RED,Standard_False);
    myAISContext->Display(ais_prism,Standard_False);
TagsNo tags attached.
Test case number
Attached Files

- Relationships

-  Notes
There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
2018-03-26 15:14 vengelgardt New Issue
2018-03-26 15:14 vengelgardt Assigned To => msv


Copyright © 2000 - 2019 MantisBT Team
Powered by Mantis Bugtracker