エンティティをサーフェスに変換

サーフェスは、無限に薄いシェルである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 用に実装されています。

2DエンティティからOdDbExtrudedSurfaceを作成できる厚みパラメータもあります。

コード例:

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

3Dソリッド変換の例

サーフェスに変換する前の3Dソリッドを次に示します。

 

3D solid before conversion to a surface

 

サーフェスに変換された3Dソリッドを次に示します。

 

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というサンプルコマンドがあります。このサンプルコマンドを使用すると、さまざまな種類のエンティティをサーフェスに変換できます。1つまたは複数のエンティティを選択すると、コマンドは変換のためにOdDbSurface::createFrom(…)メソッドを呼び出します。

以下は、OdDb3dSolid (雪だるま) をサーフェスに変換する様子を示す画像です。

 

conversion of an OdDb3dSolid (the snowman) to a surface

 

今すぐ始める

ODAソフトウェアを60日間無料でお試しください。
リスクなし、クレジットカード不要。

無料で試す