[返回博客](/cn/blog) # ODA面建模器：分割体的面

Roman Martens 七月 09, 2021 [\#facet modeler](/cn/blog/tag/facet-modeler)

<a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_linkedin"></a>

本文包含有关如何分割体的面的信息。

有时，一个体的面由两个循环（内循环和外循环）组成。您可能希望将该面分割成两个面，使每个结果面都由一个循环组成。要执行此类操作，请使用splitFace()方法：

```
void Body::splitFace(Face* pFace,
                     const OdGePlane& pPlane,
                     std::vector* pNewOuter = NULL,
                     std::vector* pNewInner = NULL);
```

此方法通过其平面分割体的面，同时保留原始拓扑。

#### 示例

下图中的立方体中间有一个孔，因此整个体由10个面组成。

![The cube](/files/inline-images/fm_split_cube.png)顶面由两个循环（外部循环和内部循环）组成。所有相邻面都由具有四个边的外部循环组成。

![The top face](/files/inline-images/fm_split_top_face.png)下图中的红色平面是分割平面，红色向量是其法线。

![the splitting plane](/files/inline-images/fm_split_plane.png)分割后，该实体有11个面（原始顶面被移除，并添加了两个新面）。每个新面都有一个外部循环（绿色折线n1-n8和s1-s8）。边e4和e5分别与边n1和s1配对。相邻面由一个包含五条边的循环组成。

![It's possible to get the resulting faces according to their position relative to the splitting plane.](/files/inline-images/fm_split_result.png)可以根据结果面相对于分割平面的位置来获取它们。

可选参数pNewOuter包含平面法向量所指向的面（由n1-n8循环定义的面）。

可选参数pNewInner包含所有由相反向量所指向的面（由s1-s8循环定义的面）。

## 今天就开始行动

**免费试用 ODA 软件 60 天。  
无风险，无需信用卡。**

[免费试用](https://www.opendesign.com/cn/free-trial)
