将实体转换为曲面

曲面是一个无限薄壳的 3D 对象。在 ODA 软件中,有几种类型的曲面。类依赖关系如下所示。

 

OdDbSurface

 

将实体转换为曲面

以下方法将实体转换为曲面:

static OdResult createFrom ( const OdDbEntity* pFromEntity, OdDbSurfacePtr& pNewSurface );

该方法从具有厚度的 2D 实体创建拉伸曲面 (OdDbExtrudedSurface),或从闭合曲线或区域创建平面曲面 (OdDbPlanarSurface)。对于 OdDb3dSolid,只创建一个曲面 (OdDbSurface)。通常,此方法从不同的实体复制 Spatial® ACIS® 数据,并将数据插入 OdDbSurface。参数如下:

  • pFromEntity — 输入实体,可以是 OdDbCircle、OdDbEllipse、OdDb3dPolyline、OdDb2dPolyline、OdDbPolyline、OdDbSpline、OdDb3dSolid、OdDbSolid 或 OdDbRegion。
  • pNewSurface — 生成的曲面。

如果成功创建曲面,该方法返回 eOk,否则返回相应的错误代码。

此方法适用于 SpaModeler 和 ModelerGeometry。

还有一个厚度参数,可以从二维实体创建 OdDbExtrudedSurface。

代码示例:

…
OdDbSurfacePtr pSurface; // resulting surface
OdDbEntityPtr pEntity = pDb->getObject… // input object
OdResult res = OdDbSurface::createFrom(pEntity, pSurface);
…

三维实体转换示例

以下是转换为曲面之前的三维实体:

 

3D solid before conversion to a surface

 

以下是转换为曲面后的三维实体:

 

3D solid converted to a surface

 

闭合多段线转换示例

以下是厚度为 2.0 的闭合多段线在转换为拉伸曲面之前和之后的效果。

 

a closed polyline with thickness 2.0 before and after conversion to an extruded surface

 

闭合区域转换示例

以下是闭合区域在转换为平面曲面之前和之后的效果。

 

Example of a Closed Region Conversion

 

使用示例命令尝试转换

ExCommands 中提供了一个名为 createSurface 的示例命令。该示例命令允许您将不同类型的实体转换为曲面。您可以选择一个或多个实体,然后该命令会调用 OdDbSurface::createFrom(…) 方法进行转换。

下图展示了将 OdDb3dSolid(雪人)转换为曲面的过程。

 

conversion of an OdDb3dSolid (the snowman) to a surface

 

今天就开始行动

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

免费试用