在 ODA Drawings SDK 中,OdDbRegion 实体是 Spatial® ACIS® 模型的包装器,表示区域实体的几何形状。OdDbRegion::createFromCurves 从由指定曲线段定义的闭合循环创建 OdDbRegion 实体。OdDbHatch 实体通常也由闭合循环组成,这意味着您可以从 OdDbHatch 创建 OdDbRegion。
使用 OdDbRegionPtr OdDbHatch::getRegionArea() const; 从填充的边界循环创建区域。如果填充边界没有闭合循环、发生自相交或建模器无法创建它,则该方法返回空指针。
让我们看看如何使用 ODA 的几何建模器和 Spatial 的建模器从填充创建区域。
下图显示了一个带有两个循环的填充。内部循环是一个孔。
ODA 几何建模器只能创建带有一个循环的区域,因此 OdDbHatch::getRegionArea() 返回一个仅包含填充外部循环的区域,如下图所示。图片还显示了区域的周长,并且区域已正确创建。
下图显示了由 Spatial 建模器创建的区域。该区域有一个内部循环,因为 Spatial 建模器可以创建具有多个循环的区域。图片还显示了区域的周长,并且区域已正确创建。
下图显示了一个带有两个循环的填充,但内部循环的边缘超出了外部循环,这会创建相交循环。在这种情况下,Spatial 建模器和 ODA 几何建模器都无法创建区域。