
Tue, 07/25/2023 - 11:39
Forums:
Hi,
I am trying to cut a face in another face (or shell). But the result is wrong, see the attached screenshot. I am using Open CASCADE 7.7.0.
One thing I noticed is that the face I use as a tool has small edges, and I am able to get correct results using `fixsmall tool tool 0.1`. But the 0.1 tolerance is very high, and using 0.01 or lower does not help. Don't I run the risk of altering the shape of my tool using `fixsmall` with a tolerance of `0.1`? My code must work with other shapes as well, without altering their geometry.
Is there another way to make the cut operation work? Is this a bug in Open CASCADE?
Thanks.
Attachments:
Wed, 07/26/2023 - 00:39
The tool shape has too high tolerance of two vertices. Please see the attached picture, there spheres of vertices are shown.
This can be fixed with resetting tolerance with the command btolx:
After this BO is performed correct.
Wed, 07/26/2023 - 10:52
Awesome, thank you.
Is there a C++ equivalent to `btolx`?
Do I need to reimplement `btolx`, or can I simply use `ShapeFix_ShapeTolerance` with a fixed value?
Wed, 07/26/2023 - 13:34
Hello.
OCCT is openSource you be able to find our a source code. But it look like that the code can be moved to own C++ class. We will look on it.
Path: occt\src\BOPTest\BOPTest_TolerCommands.cxx
Best regards, Dmitrii.
Wed, 07/26/2023 - 16:19
Using `ShapeFix_ShapeTolerance` is most likely going to cause some problems, so I'll indeed reimplement `btolx`.
Thank you for your help.
Thu, 07/27/2023 - 10:45
For the record, the very high tolerance is caused by the use of `ShapeFix_Face`.