3Dソリッドは、基本的なプリミティブとして、または押し出し、スイープ、回転、ロフトされたプロファイルとして作成できるオブジェクトです。この記事では、プロファイルをロフトして3Dソリッドを作成するさまざまな方法について説明します。
ロフトは、一連の曲線(断面曲線)から3Dソリッドオブジェクトを作成するために使用されます。ソリッドの形状に影響を与えるさまざまなパラメータがあり、特にパス曲線とガイド曲線があります。
OdDb3dSolidクラスには、ロフトソリッドを作成するためのメソッドがあります。
virtual OdResult createLoftedSolid (OdDbEntityPtrArray& crossSectionCurves,
OdDbEntityPtrArray& guideCurves, OdDbEntity* pPathCurve, OdDbLoftOptions& loftOptions );
createLoftedSolidメソッドは、ロフトオプションを使用して入力プロファイルからロフトソリッドを作成します。断面、パス曲線、ガイド曲線は、点、曲線、エッジ、または接続されたエッジのセットにすることができます。パラメータは次のとおりです。
- crossSectionCurves — ロフトソリッド作成に使用される断面プロファイルの入力配列。
- guideCurves — ソリッドの形状に影響を与えるガイド曲線の入力配列(オプション)。
- pPathCurve — ソリッドの形状に影響を与える入力曲線(オプション)。
- loftOptions — 入力ロフトオプション。
このメソッドは、3Dソリッドが正常に作成された場合は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 ライブラリに基づく) でのみ利用可能です。