Cutting a solid at a plane (or planar face)

Hello,

I often need to cut a solid at a plane. The plane/planar face is so large that the solid will always be completely cut in two parts (but I only need one of those parts). I first tried to make a prism from the planar face (with BRepPrimAPI_MakePrism) and then use BRepAlgoAPI_Cut to get the result. This is working but it is very slow.
Are there other/better ways to do this? Or is there a possibility to speed up BRepAlgoAPI_Cut?

Thanks,

Georg

PG's picture

class MakeHalfSpace from BRepPrimAPI inherits MakeShape from BRepBuilderAPI

---Purpose: Describes functions to build half-spaces.
-- A half-space is an infinite solid, limited by a surface. It
-- is built from a face or a shell, which bounds it, and with
-- a reference point, which specifies the side of the
-- surface where the matter of the half-space is located.
-- A half-space is a tool commonly used in topological
-- operations to cut another shape.
-- A MakeHalfSpace object provides a framework for:
-- - defining and implementing the construction of a half-space, and
-- - consulting the result.

Georg Keller's picture

Hello PG,

thanks for your hint. I tried to use BRepPrimAPI_MakeHalfSpace instead of BRepPrimAPI_MakePrism. Unfortunately, the performance gain (still using BRepAlgoAPI_Cut) was not sufficient to really help matters. I also tried to use BRepAlgoAPI_Common with the other half space which also increased the performance a little, but still not sufficiently for my purposes.

Thanks,

Georg

PG's picture

Look into the last post in this thread,
http://www.opencascade.org/org/forum/thread_18146/?forum=3

Georg Keller's picture

Hello PG,

thanks again for your help. Unfortunately, the speedup with BOPAlgo_Builder is still not sufficient for my purposes.

Georg