Cut a box with an embed box

Hi,

I try cut a box with a strict smaller inner box but it seems that BRepAlgoAPI_Cut doesn't give the real cutted solid.

auto box1 = BRepPrimAPI_MakeBox(gp_Pnt(0,0,0), gp_Pnt(3, 3, 3));
auto box2 = BRepPrimAPI_MakeBox(gp_Pnt(1,1,1), gp_Pnt(2, 2, 2));
auto cut = BRepAlgoAPI_Cut(box1, box2);

std::vector<TopoDS_Solid> listSolid;
TopExp_Explorer Ex;
for (Ex.Init(cut, TopAbs_SOLID); Ex.More(); Ex.Next())
   listSolid.push_back(TopoDS::Solid(Ex.Current());

listSolid is composed of one solid but strictly the same as box1 i.e. without box2....

Is there something wrong  the way i cut ?

Thanks for your help !

Guido van Hilst not specified's picture

A solid without holes contains a single shell.

In your situation you have a solid that contains 2 shells:

The first shell is the outer. (Orientation=forward) the second shell is the inner.

Here you see small example: BoxInBox