A boolean operation that fails

Hello again,

As I have mentioned in another post, I am working on creating a valid hexahedron solid object. I now have two "valid" ways of building one, but as a test case, I tried building the unit cube as a hexahedron and using a boolean cut operation on each corner of the cube where a sphere is used to make the cut. The result is that the faces of some of the spherically shaped cutouts have dropped out of the final shape. I tried another test case where I made the unit cube using a BRepPrimAPI_MakeBox( 1, 1, 1 ) call. The result is the same. The spheres are made with a call to BRepPrimAPI_MakeSphere( center, radius ).Solid(). Since the second test case uses only valid OpenCascade objects from the primitives API (not my possibly flawed hexahedron), does this indicate a problem with the boolean operation?

Thanks for your advice,

-- Shaun Bloom

Steve Harris's picture

Hi Shaun,

I've had identical problems with boolean ops. I can generate a revolved solid and subtract a cylinder from the central axis, or produce a flat by removing a block which covers the full width of the turned shape, but if I try to remove a block whose corner lies within the turned shape, I get problems. I either get an exception in BRepAlgoAPI_Cut, or when I call myAISContext->Display().

Let me know if you find out how to stop the errors!