For all issues regarding the Forums use, please, refer to the Forum Rules.

Our Solutions

Need professional assistance?
Consider our:

Support Offerings


Need to speed up your development?
Have a look at our:

Samples & Tools


Need some functionality extending standard OCCT capabilities?
Check out our:

Adv. Components

Related pages

BRepAlgo_Cut instruction

Saya Aldo's picture

Hello to everybody,
I need your suggestions about the following problem.

I am trying to create a simple panel with some borings on the upper face and along its edges using the following instructions:

// create the panel
TopoDS_Shape Box = BRepPrimAPI_MakeBox(610,610,20);

// for each borings:
// create the Cylinders at the origin of the
// coordinates system
TopoDS_Shape Cyl1 = BRepPrimAPI_MakeCylinder(10.,20.);

// move the cylinders to the correct position
gp_Trsf T;
T = gce_MakeTranslation(gp_Pnt(0.,0.,0.), gp_Pnt(0, 0, 0));
Cyl1 = BRepBuilderAPI_Transform(Cyl1, T, Standard_False);

// applay the cut operator
Box = BRepAlgo_Cut(Box, Cyl1);

The result of these instructions is not predictable because sometimes I get a "solid" where some of the lateral faces are missing.

I cannot understand if I am using the wrong instructions or there are some problems inside the OpenCascade library (e.g. I find a division by 0 not controlled in one of the polynomial functions).

Thanking you in advance for your help,

Best regards,
Aldo Saya