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で作成されたジオメトリの例を示します。


図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集合が必要です。

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

