ジオメトリのMerge
CUBITで使用するジオメトリMergeアルゴリズムの手順は次のとおりです。
- 下位の幾何形状を確認し、可能ならMerge
- 現在のEntityのトポロジを確認
- 現在のEntityの幾何形状を確認
- 両方のEntityがMesh済みの場合は、Meshのトポロジを確認します。
- 幾何トポロジ、幾何形状、Meshトポロジが一致する場合はMergeします。
したがって2つのEntityをMergeするには、幾何学的にもトポロジ的にも対応している必要があり、両方がMesh済みの場合はMeshもトポロジ的に等価である必要があります。幾何学的一致は通常、モデル構築時に成立します。トポロジ的一致もモデル構築で成立する場合がありますが、CUBITでは Imprintを用いて実現できます.
両方のEntityがMesh済みの場合、Meshのトポロジが同一である場合にだけMergeできます。すなわち、各種類のMesh Entity数が同じで、それらの接続関係も同一である必要があります。各Entity上のNode位置まで同一である必要はありません。Node位置が異なる場合、Merge後のMeshではIDが小さいEntity側のNode位置が使用されます。
CUBITではジオメトリをMergeする方法がいくつかあります。
Merge geometry automatically
Merge All [Group|Body|Surface|Curve|Vertex] [group_results][tolerance <value>]
モデル内または指定Body内のすべてのトポロジEntityについて、幾何学的・トポロジ的な対応を検査し、条件を満たすものをMergeします。
Merge Allで特定のEntityタイプを指定した場合、そのタイプの完全なEntityだけをMergeします。たとえば Merge All Surface を指定すると、対応するSurfaceの一部であるVertexだけがSurfaceとともにMergeされ、対応するSurfaceに属さないVertexは、位置が対応していてもMergeされません。大規模モデルではMerge処理を高速化できますが、幾何形状の問題を隠す可能性があるため注意して使用してください。
指定したジオメトリGroup内でMergeを検査
Merge {Group|Body|Surface|Curve|Vertex} <id_range>[With {Group|Body|Surface|Curve|Vertex} <id_range>] [group_results] [force] [tolerance<value>]
指定したEntityリスト内のすべてのトポロジEntityと、それらに属する下位トポロジをMerge候補として検査します。対象Entityを限定できるため、本来なら対応してMergeされるEntity(例:slide surface)を意図的にMerge対象から外す用途にも使えます。
指定した幾何Entityを強制Merge
Merge Vertex <id> with Vertex <id> Force
Merge Curve <id> with Curve <id> Force
Merge Surface <id> with Surface <id> Force
このコマンドは、指定Entityが幾何学的一致判定を満たすかどうかに関係なくMergeします。通常のMergeが失敗した場合に限って慎重に使用してください。この操作が必要になるケースはCUBIT開発チームへ報告することが推奨されます。
ジオメトリのMergeを防ぐ
Body <id_range> Merge [On | Off]
Volume <id_range> Merge [On | Off]
Surface <id_range> Merge [On | Off]
Curve <id_range> Merge [On | Off]
Vertex <id_range> Merge [On | Off]
これらのコマンドを使うと、EntityがMergeされないように設定できます。あるEntityのMergeをoffにすると、Merge AllなどのMergeコマンドを実行しても、そのEntityは他のEntityとMergeされません。
その他のMergeコマンド
Surfaceの組をMergeすべきか判定する追加検査です。まず、各Surfaceを構成するCurveのBounding Boxを集約してSurfaceごとのBounding Boxを作成し、2つのBounding BoxがTolerance内にあるか比較します。これにより、十分にtightでないBounding Boxに起因する誤ったMerge候補を除外しやすくなります。Set Merge Test BBox {on|OFF}
SurfaceをMergeする際の追加検査です。一方のSurfaceで重心に最も近い点を求め、もう一方のSurface上でその点に最も近い点を求めます。2点がMerge Tolerance内にない場合、2つのSurfaceはMergeされません。設定を onにすると、すべてのSurfaceタイプがこの検査対象になります。設定を spline オプションにするとSplineだけをこの方法で検査し、解析Surfaceは除外します。これも誤ったMergeを防ぐための検査です。Set Merge Test InternalSurf {on|OFF|spline}