boolean operations( CUT )


I tried to make an extraction of a solid out of an other solid(!?) (of revolution!!!) ... the result is incorrect ... what is missing from the bellow code?


TopoDS_Shape theBox = BRepPrimAPI_MakeSphere(gp_Pnt(70,0,70),170);

TopoDS_Edge E1 = BRepBuilderAPI_MakeEdge(gp_Pnt(0., 0., 0.),gp_Pnt(100., 0., 0.)); TopoDS_Edge E2 = BRepBuilderAPI_MakeEdge(gp_Pnt(100., 0., 0.), gp_Pnt(75.,50., 0.)); TopoDS_Edge E3 = BRepBuilderAPI_MakeEdge(gp_Pnt(75.,50., 0.), gp_Pnt0.,50., 0.)); TopoDS_Edge E4 = BRepBuilderAPI_MakeEdge(gp_Pnt(0.,50., 0.),gp_Pnt(0., 0., 0.)); TopoDS_Wire W = BRepBuilderAPI_MakeWire(E1,E2,E3,E4);

axe = gp_Ax1(gp_Pnt(0.,0.,0.),gp_Dir(0.,1.,0.));

TopoDS_Shape S3 = BRepPrimAPI_MakeRevol(W,axe);

TopoDS_Shape ShapeCut = BRepAlgoAPI_Cut( S3, theBox );

Igor Feoktistov's picture


S3 is not solid, but shell and boolean operation between shells and solids are not well defined. To get solid instead shell you should make face from wire W.


Fathi's picture


Try to make a face from your wirecalled "w" before applaying the BRepPrimAPI_MakeRevol function.

Make me informed.