For all issues regarding the Forums use, please, refer to the Forum Rules.

Our Solutions

Need professional assistance?
Consider our:

Support Offerings


Need to speed up your development?
Have a look at our:

Samples & Tools


Need some functionality extending standard OCCT capabilities?
Check out our:

Adv. Components

Related pages

BOP Cut fails depending on edge tolerance

Kenji Hara's picture

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.

Kenji Hara's picture

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

Kenji Hara's picture

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

Kenji Hara's picture

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

Contact us

Attention: DO NOT use this form for all kind of request for the removal of your personal data. Please follow this link for such cases.