# OpenCascade Modeling Algorithms Boolean Operations

eryar@163.com

u 并集操作FusionGets all the points in S1 or S2

u 交集操作CommonGets all the points in S1 and S2

u 差集操作Cut S1 by S2Gets all the points in S1 and not in S2

### 1. BRepAlgoAPI_BooleanOperation

BRepAlgoAPI_BooleanOperation是布尔操作的基类。

### 2. BRepAlgoAPI_Fuse

BRepAlgoAPI_Fuse执行布尔并集操作。如下所示：

```TopoDS_Shape theBox1 = BRepPrimAPI_MakeBox(50,200,70);
TopoDS_Shape theBox2 = BRepPrimAPI_MakeBox(-30,150,70);
TopoDS_Shape FusedShape = BRepAlgoAPI_Fuse(theBox1,theBox2); ```

Fuse two boxes

### 3. BRepAlgoAPI_Common

BRepAlgoAPI_Common执行布尔交集操作，如下所示：

```gp_Ax2 axe(gp_Pnt(10,10,10),gp_Dir(1,2,1));

TopoDS_Shape theBox = BRepPrimAPI_MakeBox(axe,60,80,100);
TopoDS_Shape theWedge = BRepPrimAPI_MakeWedge(60.,100.,80.,20.);
TopoDS_Shape theCommonSurface = BRepAlgoAPI_Common(theBox,theWedge); ```

Compute the common surface

### 4. BRepAlgoAPI_Cut

BRepAlgoAPI_Cut执行布尔差集操作，如下所示：

```TopoDS_Shape theBox = BRepPrimAPI_MakeBox(200,40,40);
TopoDS_Shape theSphere = BRepPrimAPI_MakeSphere(gp_Pnt(100,20,20),80);
TopoDS_Shape ShapeCut = BRepAlgoAPI_Cut(theSphere,theBox); ```