[返回博客](/cn/blog) # 将实体转换为曲面

Yurii Pylnyk 四月 23, 2020 [\#getting started](/cn/blog/tag/getting-started) [\#Example](/cn/blog/tag/example)

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

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

![OdDbSurface](/files/inline-images/scheme%20OdDbSurface.png)#### 将实体转换为曲面

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

```
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](/files/inline-images/3D%20solid.png)以下是转换为曲面后的三维实体：

![3D solid converted to a surface](/files/inline-images/3D%20solid%20converted%20to%20a%20surface.png)#### 闭合多段线转换示例

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

![a closed polyline with thickness 2.0 before and after conversion to an extruded surface](/files/inline-images/closed%20polyline%20and%20extruded%20surface.png)#### 闭合区域转换示例

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

![Example of a Closed Region Conversion](/files/inline-images/Example%20of%20a%20Closed%20Region%20Conversion.png)#### 使用示例命令尝试转换

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

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

![conversion of an OdDb3dSolid (the snowman) to a surface](/files/inline-images/createFrom.gif)

## 今天就开始行动

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

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