Forum archiveIssue archiveModeling Data and Algorithms

Archived discussion

BOP Cut fails depending on edge tolerance

Modeling Data and AlgorithmsMon, 01/13/2020 - 09:453 replies

Browse this forum
QuestionAuthor

I'm using OCCT 7.2.0.

I'm trying to make "complement" face from original face on the base surface in my project.

In here, the "complement" means to cut out the original face area from the base surface, like a cookie-cutter.

To do that, I'm using BOP Cut operation, but it makes sometimes unexpected result.

I investigate the face data in failure case, then I found that relaxing one edge tolerance in the base surface makes Cut result fine.

 

# Draw commands that makes unexpected result
restore 194_Fo011.brep Fo
restore 194_Hs009.brep Hs
bop Hs Fo; bopcut r
vdisplay r; vfit
vsetdispmode 1

# Draw commands that makes well result
restore 194_Fo011.brep Fo
restore 194_Hs009+RelaxEdge2Tol.brep Hs
bop Hs Fo; bopcut r
vdisplay r; vfit
vsetdispmode 1

But, I'm still not sure why the tolerance enlargement makes Cut result change.

So I have two questions:

  1. Why the Cut operation with original data makes unexpected result? (Fo and Hs are on same surface, then the cut should success.)
  2. If the edge tolerance enlargement is the only way, how to calculate the tolerance value? (I already tried to it with GeomLib_CheckCurveOnSurface and BRepExtrema_DistShapeShape, but couldn't...)

Thanks in advance.

Discussion

3 archived replies

Posts are displayed in their archived order.

01Author

I'd provide one more case data for the issue (Cut fails, edge tolerance enlargement improves result).

02Author

Does someone have any hints?
OpenCASCADE functionality is vast and finding expecting utility is hard...

03Author

I learned use of Draw Test Harness, then I reported the issues to bug tracker.

https://tracker.dev.opencascade.org/view.php?id=31343

https://tracker.dev.opencascade.org/view.php?id=31344