View Issue Details

IDProjectCategoryView StatusLast Update
0033632CommunityOCCT:Modeling Algorithmspublic2024-05-16 13:27
Reporterdpasukhi Assigned To 
Status newResolutionopen 
Target VersionUnscheduled 
Summary0033632: Modeling Algorithms - BRepTools::OuterWire returns internal wire

I have a face including four holes from which I need the outer wire but BRepTools::OuterWire returns the wire of one of the holes as outer wire.
I traced the problem to BndLib_Box2dCurve::PerformBSpline where is just blatantly adds poles to the bounding box. This reminded of a post that Roman had done years ago. Romans work around doesn't seem to help you as the presence of triangulation doesn't seem to affect the 2d bounding box calculation. I would assume Roman is correct in speculating that this kind of 'just use the poles, hack' is for performance and any changes to a 'minimum bounding box' would slow things down.

Looking at BRepTools::OuterWire: It assigns the first wire and then iterates over the rest of the wires requiring larger boundaries in all directions. So in your case, the first wire is one of the circles that has an inflated v range. The rectangular wires v boundaries are inside of that first circular wire, causing the algo to fail. I think this algo could at least have a smarter first guess using the diagonal of the 2d bounding boxes, without much performance impact, but there would still be cases that will fail as long as the spline bounds are 'inflated'.
Additional information
and documentation updates
TagsNo tags attached.
Test case number

Attached Files

  • face.brep (151,765 bytes)



2024-03-05 14:21

administrator   ~0115231

face.brep (151,765 bytes)

Issue History

Date Modified Username Field Change
2024-03-05 14:21 dpasukhi New Issue
2024-03-05 14:21 dpasukhi Assigned To => oan
2024-03-05 14:21 dpasukhi Note Added: 0115231
2024-03-05 14:21 dpasukhi File Added: face.brep
2024-03-05 14:22 dpasukhi Additional Information Updated
2024-05-16 13:27 oan Assigned To oan =>