[ブログに戻る](/ja/blog) # ODAファセットモデラー: ボディの面を分割する

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

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

この記事には、ボディの面を分割する方法に関する情報が含まれています。

ボディの面が、内側ループと外側ループの2つのループで構成されている場合があります。その面を2つに分割して、結果として得られる各面が1つのループで構成されるようにしたい場合があります。このような操作を実行するには、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)上面は、外部ループと内部ループの2つのループで構成されています。隣接するすべての面は、4つのエッジを持つ外部ループで構成されています。

![The top face](/files/inline-images/fm_split_top_face.png)下の画像にある赤い平面は分割平面であり、赤いベクトルはその法線です。

![the splitting plane](/files/inline-images/fm_split_plane.png)分割後、ボディは11個の面を持ちます（元の上面は削除され、新しい2つの面が追加されます）。新しい各面には外部ループ（緑色のポリライン n1-n8 および s1-s8）があります。エッジ e4 と e5 はそれぞれエッジ n1 と s1 とペアになっています。そして、隣接する面は5つのエッジを持つ1つのループで構成されています。

![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/ja/free-trial)
