フィーチャ除去ツール
フィーチャ除去ツールは、不要な微小曲線やサーフェスを除去できます。これらの微小曲線やサーフェスは、低品質要素やメッシュ生成失敗の主因の一つです。スリバー状のサーフェスや曲線は、一般にフィレットや面取り、またはインプリント済みアセンブリモデルの位置ずれ部などに現れます。

図1 - フィーチャ除去Power Tool
微小な曲線とサーフェスのフィーチャ除去は、主に次の3ステップで行います:
- モデルを解析し、微小曲線と微小サーフェスを自動検出します。
- 必要に応じて、検出された微小曲線と微小サーフェスの選択を手動で解除します。
- フィーチャ除去ツールを実行して、微小曲線と微小サーフェスを除去します。
ステップ1では、図1のようにボリュームID(例:all)と許容値(例:0.6)を指定します。「Analyze」ボタンをクリックすると、指定したボリューム内の微小曲線と微小サーフェスが自動検出されます。図2はラベル情報付きでハイライト表示された微小曲線と微小サーフェス、図3は微小サーフェスの拡大表示を示します。
ステップ2では、「Entities to be Defeatured」リストのチェックを外して、必要なエンティティを選択対象から除外できます。「Highlight」「Draw」「Locate」ボタンを使用して、自動検出されたエンティティを確認することもできます(図2)。
ステップ3では、「Execute」ボタンをクリックして実際のフィーチャ除去を行います(図5)。図4はフィーチャ除去後のボリュームの拡大表示です。フィーチャ除去されたボリュームは、ユーザーが指定した新しいグループ(デフォルトは「defeature_group」)に作成されます(図6)。微小曲線または微小サーフェスを含むボリュームだけが処理対象です。デフォルトでは元のボリュームは削除され、新しいフィーチャ除去済みボリュームとその子エンティティには対応する旧IDが使用されます。元のボリュームと新しいボリュームの両方を残す場合は「Keep Originals」を使用してください。
注:
- 新しいフィーチャ除去済みボリュームはMBG形式です。つまり、NURBSベースのACISボリュームではなく、ファセットベースのボリュームになります。そのため、webcutやimprintなどNURBSベースの操作は、フィーチャ除去を実行する前に行うことを強く推奨します。
コマンド構文:
Set tolerant mesh mbg only
このコマンドは、メッシュを新しいフィーチャ除去済みボリュームに強制的に関連付けます。現在は、後述のdefeatureコマンドを実行する前に、このコマンドを実行する必要があります。
Defeature curve_length <value> [Curve <ids>] [Curve <ids>] surface_prox2d <value> [Surface <ids> ] [group <id>] [keep]
curve_length <value>:auto_identifyを指定した場合、長さが<value>以下の曲線がフィーチャ除去候補として自動検出されます。指定しない場合は[Curve <ids>]を指定する必要があります。
surface_prox2d <value>:auto_identifyを指定した場合、向かい合う境界曲線間に狭い領域を持つサーフェスがフィーチャ除去候補として自動検出されます。2d proximityの<value>は、狭い領域を含むサーフェスの検出に使用されます。auto_identifyを指定しない場合は[Surface <ids>]を指定する必要があります。
group <id>:フィーチャ除去済みボリュームを、指定したグループIDへ追加します。
keep:keep引数を指定すると、元のエンティティを新しいフィーチャ除去済みボリュームとともに保持します。keepを指定しない場合、元のエンティティは削除され、新しいフィーチャ除去済みボリュームとそのサブエンティティ(サーフェス、曲線、頂点)には元のボリュームのIDが使用されます。
重要なジオメトリエンティティの保持
ジオメトリのフィーチャ除去を行う前に、処理中も保持したいジオメトリを指定できます。以下の「Fix」キーワードを使用すると、任意のエンティティを保持対象として固定できます。volume、surface、curve、vertexを指定できます。固定したジオメトリエンティティを元に戻すには、次の構文で「free」を使用します。Mesh Tolerant Fix [Volume|Surface|Curve|Vertex] <range>
Mesh Tolerant Free [Volume|Surface|Curve|Vertex] <range>
ジオメトリエンティティを固定する例:
reset
brick x 10
brick x .1
move vol 2 x 5
unite all
mesh tolerant fix surf all
mesh tolerant fix curve all
Defeature curve_length .2 curve 31 29 27 26 24 32 13 30 17 28 22 25
surface_prox2d .2 surface 13 14 15 16 12
Sample Journal File:
Even though the defeature tool is mainly intended to driven by the GUI, it can be used via command line. Without the GUI, it will be harder to provide the list of small curves and surfaces to the defeature command. Here is a sample journal file:
# import simple assembly
import acis 'assembly11a.sat'
# perform any ACIS based operations such as webcutting and imprinting first
imprint all
merge all
# enable the developer only command
set developer on
# force the mesh to associate with defeatured MBG volumes
set tolerant mesh mbg only
# create a new group to store defeatured volumes
group 'defeatured_vols' add volume all
# perform actual defeaturing by specifying the volume ids, tolerance, and small curve/surf ids.
# defeatured volumes will be placed in the user specified group id and original entities can be
# kept along with new defetured volume using “keep” option.
defeature volume all curve_length 0.3 curve 107 103 102 100 88 85 82 80 9 6 4 2 214 212 211 210 203 200 199 197 188 187 185 183 170 167 164 162 234 232 227 225 254 253 252 251 249 248 243 242 272 271 270 269 265 264 259 258 288 287 286 285 281 280 275 274 304 303 302 301 297 296 291 290 312 311 307 306 surface_prox2d 0.3 surface 47 48 50 51 41 43 40 42 2 4 1 3 111 112 118 120 121 122 124 126 128 129 130 132 134 135 136 138 140 141 142 144 81 82 83 84 88 89 90 91 94 95 96 97 100 101 102 103 group 2 keep
# del any old original volumes if you don’t want it anymore
delete vol 1 to 11
# enable visibility of only defeatured vols
vol all vis off
vol all in group 2 vis on
# set scheme to tetmesh
vol all in group 2 scheme tetmesh
# set mesh size
vol all in group 2 size 1
# mesh defeatured vols
mesh vol all in group 2
# disable developer only command
set dev off
図

図1:「Analyze」をクリックする前にVolume IDとToleranceを指定

図2:「Highlight」「Draw」「Locate」を使用して微小曲線と微小サーフェスを可視化

図3:微小曲線と微小サーフェスの拡大表示

図4:フィーチャ除去済みボリュームの拡大表示

図5:Executeボタンをクリックして、自動/手動で選択したエンティティをフィーチャ除去

図6:新しいdefeature_groupに、MBG形式のフィーチャ除去済みボリュームを格納