regression in 6.6.0 - boolean operation with planar closed face

Dear supervisor and I have found a regression in boolean operations betweeen 6.5.3 and 6.6.0.

If you do a "cut" operation with the attached model, the result is wrong (two solids instead of one):
restore bool.brep c
explode c
bopcut r c_1 c_2

This did not happen with 6.5.3.

What gives trouble is the radial seam inside the planar closed BSPline face in the bigger solid; maybe we could consider it as non-manifold topology (a vertex is connected with just one edge).
If you replace that BSPline face with a Geom_Plane, the boolean operation succeeds.

Is this a known limitation or just a bug?

Thanks a lot.

Mauro Mariotti's picture

Here is the attachment.

Forum supervisor's picture

Dear Mauro,
From the first view it looks like a bug.
But at the same time simple arguments check (under OCCT660) reports possible failure:
Draw[8]> bopargcheck c_1 c_2
## Faulties, that can not be treated by BOP, are detected.
Tolerances of the arguments are enough big:
Draw[9]> tolmax c_1
max tol = 0.019999999552965199
Draw[10]> tolmax c_2
max tol = 0.029999999329447701
It may have impact on the result.
To say something more without additional analysis is not possible.
I suggest you to register the issue in Mantis BugTracker which is available via the Collaborative portal -
Best regards

Mauro Mariotti's picture

Thank you very much for showing me the bopargcheck command, which is very useful.

Yes, we often have troubles for too high tolerances, but in this case I think they are caused by the degenerate edge in the center of that circular face.

I have built a simpler example with not so high tolerances.
This one fails too, although I am not sure it succeeded with 6.5.3.


Forum supervisor's picture

Dear Mauro,
As I already informed you the specified cases require more deep investigation.
The last case doesn't produces result in 6.5.3, it returns error status.
In 6.6.0 the result is produced, although it is incorrect (extra shapes).
At the same time simple check of the first argument (in 6.6.0) reports faulty:
Draw[91]> bopargcheck s_1
## Faulties, that can not be treated by BOP, are detected.
If you need our professional support you may contact us via the Contact Form
Best regards