BUG boolean ops


all BOPs (fuse, cut and common) of the two attached shapes (torus and a prism) produce really weird results.



Forum supervisor's picture

Dear Valeriu,
I would like to inform you that the posted problem is checked and reproduced.
The corresponding issue with ID = OCC22644 has been registered.
Later you can know if the issue is resolved by checking references to the specified ID in OCCT Release Notes. The analysis of the issue will take some time depending on our technical capability and availability of resources.
If you can't wait and the problem is urgent for you, you may contact us via Contact Form http://www.opencascade.org/about/contacts/.
We will try to find a solution/workaround acceptable for you.
As well as training and e-learning courses are at your disposal - http://www.opencascade.org/support/training/.

Valeriu Catina's picture

Dear forum supervisor,

I detected this problem accidentally. It's worth noting that one gets correct results if the radius of the prism (cylinder) is only slightly smaller/bigger than the smaller radius of the torus. Also please note that the partition algorithm from SALOME's GEOM module produces valid results (when the booleans fail).

I hope this additional information will help you with the debugging.


V. Catina

Forum supervisor's picture

Dear Valeriu,
Thanks for your message.
For sure we will use your additional input during the problem analysis
and I believe it really can help.

me_dulanga's picture

I think this is also due to the same issue as above
consider the following code

//Cylinder with radius 0.5, height 1, center(0,0,0)
TopoDS_Shape S1 = BRepPrimAPI_MakeCylinder (0.5,1).Shape();

//Cone with center(0.5,0,0), baseRadius 0.5, topRadius 0, height 1
gp_Pnt pnt(0.5, 0, 0);
gp_Dir dir(0, 0, 1);
gp_Ax2 axis(pnt, dir);

TopoDS_Shape S2 = BRepPrimAPI_MakeCone(axis,0.5,0,1).Shape();

BRepAlgoAPI_Fuse myFuse(S1, S2);
int errnumber = myFuse.ErrorStatus();

TopoDS_Shape FusedShape = myFuse.Shape();

The fused shape is erroneous and the errnumber is 2
which i think is "Null source shapes is not allowed"

If the cone is moved by 0.001 it gives the correct result (ie center of cone (0.501,0,0) )

me_dulanga's picture

Sorry the errornumber was 0