FacetファイルのImport

CUBITはfacetで構成されたモデルをインポートし、ジオメトリを作成できます。ファイルからfacetをインポートするコマンドは次のとおりです。

Import [Facets|AVS] ''<filename>" [Feature_Angle <angle>] [LINEAR||Spline] [MERGE|No_merge] [Make_elements] [Stitch] [Improve]

Import STL ''<filename>" [Feature_Angle <angle>] [Surface_Feature_Angle <angle>] [LINEAR|Gradient|Quadratic|Spline] [MERGE|No_merge] [Make_elements] [Stitch]

Import OBJ ''<filename>" [Feature_Angle <angle>] [Surface_Feature_Angle <angle>] [Make_elements]

Facets は、surfaceを形成するようつなぎ合わされたtriangleです。facetによるジオメトリ表現は、グラフィックス、バイオメディカル、地盤工学など、離散surface表現を出力する多くの用途で一般的に使われます。インポートすると、得られるジオメトリ表現は Mesh-Based Geometryになります。図1にfacetモデルと、CUBITで作成されたジオメトリの例を示します。

facet001.gif

facet002.gif

図1. facetからCUBITで作成したfacetモデルとソリッドモデルの例

利便性のため、import facetコマンドは現在、facet、AVS、STLの3形式をサポートしています。

  • Facet形式:facetファイル形式は、vertex座標とconnectivityを含む単純なASCIIファイルです。形式は以下で説明します。
  • AVS形式:AVS形式は多様なpolygon形状を扱える汎用ジオメトリ形式ですが、CUBITのAVS import実装ではtriangleだけをサポートします。
  • STL形式:業界で最も一般的な形式の1つがStereolithography(STL)です。CUBITはASCIIとbinaryの両方のSTL形式に対応します。STLはグラフィックスや可視化には十分ですが、CUBITのようなジオメトリアプリケーションでは問題になる場合があります。STLでは各triangleが独立に表現されるため、同一vertexの定義が複数回ファイルに含まれます。CUBITは重複vertexをmergeしてwater-tightなsurfaceを作ろうとします。vertex位置が完全には一致しない場合は、importコマンドにオプションの tolerance 引数を指定できます。 tolerance オプションはSTL形式ファイルにだけ使用されます。
  • OBJ形式:Wavefront TechnologiesがAdvanced Visualizerアニメーションパッケージ用に開発したジオメトリ定義形式です。形式は公開され、他の3Dグラフィックスベンダーにも採用されています。CubitがインポートできるOBJは、polygonal faceによるtessellationを含むファイルだけです。

Facetファイル形式

ASCII facetファイルの形式は次のとおりです。

n m

id1 x1 y1 z1

id2 x2 y2 z2

id3 x3 y3 z3

.

.

.

idn xn yn zn

fid1 id<1> id<2> id<3> [id<4>]

fid2 id<1> id<2> id<3> [id<4>]

fid3 id<1> id<2> id<3> [id<4>]

.

.

.

fidm id<1> id<2> id<3> [id<4>]

各値の意味:

n = vertex数

m = facet数

id<i> = vertex ID of vertex i

x<i> y<i> z<i> = location of vertex i

fid<j> = facet ID of facet j

id<1> id<2> id<3> = IDs of facet vertices

[id<4>] = optional fourth vertex for quads

前述のように、facetはquadrilateralまたはtriangleです。インポート後、facetはジオメトリの基礎表現になります。既定では、ジオメトリをインポートした後facetは表示されません。facetを表示するには次のコマンドを使用します。

draw surf <id range> facets

フィーチャ角

feature angle オプションは、surfaceをcurveで分割する角度、またはcurveをvertexで分割する角度を指定します。180度ではfacetごとにsurfaceを生成し、0度ではmeshのshellから分割のない1つのsurfaceを定義します。既定角度は135度です。この機能は、 Exodus IIファイル.

をインポートする際のfeature angleオプションと同じです。 stl 形式では、surfaceとcurveのfeature angleを独立して制御できます。 Surface_Feature_Angle を指定するとsurfaceをcurveで分割する角度を制御し、 Feature_Angle はcurveをvertexで分割する角度を制御します。 Surface_Feature_Angle を指定しない場合、 Feature_Angle がsurfaceとcurveの両方の角度を制御します。

Smooth Curves and Surfaces

このオプションを使うと、生成ジオメトリを再メッシュ/refineするときにsurfaceの高次近似を使用できます。既定では元のfacet自体をcurveおよびsurfaceのジオメトリ表現として使用します。曲面を表すfacetモデルをインポートする場合、このオプションが有効です。Splineオプションを選択すると、surfaceに4次B-Spline近似を使用します[Walton,96]。facetのsmooth近似については Exodus IIファイルのインポート.

Merge

このオプションでは、生成surfaceをmergeするかどうかを選べます。既定では隣接surfaceをmergeします。その結果、 非多様体トポロジとなり、隣接surfaceが共通curveを共有します。 no_merge オプションを使うと、隣接surfaceは別々のcurveを生成します。

Make elements

このオプションは、facet surface上の各facetからmesh elementを作成します。

Stitch

stitchオプションは、 facet または avs 形式ファイルで、近接するvertexやtriangleをmergeするために使用します。図2に例を示します。左側モデルでは赤と青のグループ間でfacetが接続されていません。この場合、2グループ境界のvertexが一致していてもsurfaceはwater-tightになりません。 stitch オプションは、グループ間の余分なedgeとvertexを取り除き、右側モデルのようにすることを試みます。このオプションは3D meshing用facetファイルをインポートする場合に便利です。CUBITの3D meshingアルゴリズムではwater-tight(閉じた)surface集合が必要です。

stitch00.gif

図2. import時のstitchオプション使用例

Improve

improve オプションは、triangulation境界上で平均edge長の30%未満の短いedgeをcollapseします。短いedgeは、triangulation上の離散Boolean演算によって無視できるほど短いedgeが生じた結果である場合があります。このオプションは複数surfaceがedgeで交わる境界で特に有効です。図3にImproveオプションで境界triangle品質を改善した例を示します。facet自体をFEA meshとして使う場合にも特に有用です。

facet_improve00.gif

Improveオプションを使用していない境界付近のtriangle

facet_improve01.gif

Improveオプションでedgeをcollapseした同じtriangle集合

図3. Improveオプションの使用例