[返回博客](/cn/blog) # 从填充创建区域

Oleksandr Shulha 十二月 05, 2019 [\#region](/cn/blog/tag/region) [\#hatch](/cn/blog/tag/hatch)

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

在 ODA Drawings SDK 中，OdDbRegion 实体是 Spatial® ACIS® 模型的包装器，表示区域实体的几何形状。OdDbRegion::createFromCurves 从由指定曲线段定义的闭合循环创建 OdDbRegion 实体。OdDbHatch 实体通常也由闭合循环组成，这意味着您可以从 OdDbHatch 创建 OdDbRegion。

使用 OdDbRegionPtr OdDbHatch::getRegionArea() const; 从填充的边界循环创建区域。如果填充边界没有闭合循环、发生自相交或建模器无法创建它，则该方法返回空指针。

让我们看看如何使用 ODA 的几何建模器和 Spatial 的建模器从填充创建区域。

下图显示了一个带有两个循环的填充。内部循环是一个孔。

![this picture shows a hatch with two loops](/files/inline-images/a%20hatch%20with%20two%20loops.png)ODA 几何建模器只能创建带有一个循环的区域，因此 OdDbHatch::getRegionArea() 返回一个仅包含填充外部循环的区域，如下图所示。图片还显示了区域的周长，并且区域已正确创建。

![hatch example](/files/inline-images/hatch%20example%20part%201_0.png)下图显示了由 Spatial 建模器创建的区域。该区域有一个内部循环，因为 Spatial 建模器可以创建具有多个循环的区域。图片还显示了区域的周长，并且区域已正确创建。

![hatch example](/files/inline-images/hatch%20example%20part%202.png)下图显示了一个带有两个循环的填充，但内部循环的边缘超出了外部循环，这会创建相交循环。在这种情况下，Spatial 建模器和 ODA 几何建模器都无法创建区域。

![hatch with two loops example](/files/inline-images/hatch%20example%205.png)

## 今天就开始行动

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

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