三维实体可以作为基本图元创建,也可以作为拉伸、扫掠、旋转或放样的轮廓创建。本文介绍了通过放样轮廓创建三维实体的不同方法。
放样用于从一组曲线(即横截面曲线)创建三维实体对象。有不同的参数会影响实体的形状,特别是路径曲线和引导曲线。
OdDb3dSolid 类有一个用于创建放样实体的方法:
virtual OdResult createLoftedSolid (OdDbEntityPtrArray& crossSectionCurves,
OdDbEntityPtrArray& guideCurves, OdDbEntity* pPathCurve, OdDbLoftOptions& loftOptions );
createLoftedSolid 方法使用放样选项从输入轮廓创建放样实体。横截面、路径曲线和引导曲线可以是点、曲线、边或一组连接的边。参数如下:
- crossSectionCurves — 用于创建放样实体的横截面轮廓的输入数组。
- guideCurves — 影响实体形状的引导曲线的输入数组(可选)。
- pPathCurve — 影响实体形状的输入曲线(可选)。
- loftOptions — 输入放样选项。
如果三维实体创建成功,该方法返回 eOk,否则返回相应的错误代码。
以下是一个代码示例:
…
OdDbLoftOptions loftOptions; // loft options
loftOptions.setNormal(OdDbLoftOptions::kNoNormal);
OdDb3dSolidPtr pSolid = OdDb3dSolid::createObject(); // resulting 3d solid
OdDbEntityPtr pPathCurve = pDb->getObject… // input object
OdDbEntityPtrArray crossSectionCurves = pDb->getObjects() // input objects
OdDbEntityPtrArray guideCurvesArray = pDb->getObjects() // input objects
OdResult res = pSolid->createLoftedSolid(crossSectionCurves, guideCurvesArray, NULL, loftOptions); // creates solid from only cross section curves, or from cross section curves with guide curves(if these curves are presented).
guideCurvesArray.clear();
res = pSolid->createLoftedSolid(crossSectionCurves, guideCurvesArray, pPathCurve, loftOptions); // creates solid from only cross section curves, or from cross section curves with path curve(if it is presented ).
…
示例
仅从横截面曲线创建的放样实体:
由横截面曲线和路径曲线创建的放样实体:
由横截面曲线和引导曲线创建的放样实体:
要尝试创建放样实体,请在 ExCustObjs 中使用 createloftedsolid 命令。您可以使用不同的参数集创建放样实体:
- 仅横截面曲线
- 横截面曲线和路径曲线
- 横截面曲线和引导曲线
此功能仅在 SpaModeler(基于 Spatial 库)中可用。