サーフェス重複の検出

Surface overlap機能は、互いに オーバーラップする Surfaceを検出し、Surface間の距離および角度範囲を指定できます。これは、ジオメトリのimprintやmergeの問題をデバッグする場合や、大規模アセンブリモデルのGapを検出する場合に有用です。オーバーラップするジオメトリは次のコマンドで検出します。

Find [Surface] Overlap [{Body|Surface|Volume} <id_list> [Filter_Sliver]

エンティティのリストを指定しない場合、モデル内のすべてのBodyが検査されます。既定では、同一Body内のSurface同士は検査せず、異なるBody間のSurfaceだけを検査します。Surfaceリストを指定することで変更できます(例: find overlap surface all)、または後述の設定で変更できます。

この filter_sliver オプションは、間にmerge済みCurveを持つsliver Surfaceを除外し、誤検出を減らします。次の図はsliver Surfaceの例です。

図1. sliver Surfaceの例

Curve 27と29をmergeしてからSurface overlap検査を実行すると、図の2つのSurfaceがオーバーラップするSurfaceペアとして検出されます。ただし、 filter_sliver キーワードを使用すると、Cubitはこの2つのSurfaceをオーバーラップしているとは判定しません。

ファセット表現

このコマンドは、モデルのファセットSurface表現だけを使用して処理します。ファセット表現は、Graphicsのshaded表示で見える表現です。この方法には長所と短所があります。最大の長所は、処理が遅くなりやすいNURBSベースのジオメトリに対する最近点計算を回避できることです。また、HealingされていないACISジオメトリに起因する問題も避けられます。一方、ジオメトリをより低精度なファセット表現で扱う点が短所です。この影響を抑えるため、各種設定でアルゴリズムを制御できます。たとえば、後述の設定でより高精度なファセット表現を使用できます。

Find Overlap設定

find overlap処理では、オーバーラップ判定の精度と処理方法を各種設定で制御します。find overlapが使用する設定一覧は、次のコマンドで表示します。

Find [Surface] Overlap Settings

各設定と、それを制御するコマンドを以下に示します。 

Facet - 絶対値/角度 - 角度許容値は、隣接するSurface facetの法線間で許される最大角度を示します。既定値は15ですが、5程度を使用するとoverlap検出用のファセット表現をより高精度にできます。特に曲面部で期待するSurfaceペアが検出されない場合に有効です。ただしfacet数が増えるほど処理は遅くなります。距離許容値は、生成facetと元Surfaceとの実距離の最大値です。既定ではfacetterで無視されるため、より高精度な結果が必要な場合は妥当な値を指定してください。

Set Overlap [Facet] {Angle|Absolute} <value>

Gap - 最小/最大 - 指定した最小値から最大値までの距離範囲にあるSurfaceを検索します。既定範囲は0~0.01で、同一位置に近いSurfaceの検索には概ね適切です。たとえば3.95~5.05のような範囲を指定するとGapを検索できます。

Set Overlap {Minimum|Maximum} Gap <value>

Angle - 最小/最大 - 指定した角度範囲にあるSurfaceを検索します。既定範囲は0.0~5.0度で、多くのモデルで良好に機能します。同一位置のSurfaceを探す場合でも、曲面のfacet化方法の違いにより最大5度程度の範囲が必要になることがあります。たとえば穴内のshaftでは、shaftとholeのfacetが完全には一致せず、円周方向にずれる場合があります。最大角度5度はこの差を吸収します。本来検出されるべきSurfaceが検出されない場合は上限角度を増やしてください。この設定は、角度を持って接するplateの検出にも利用できます。

Set Overlap {Minimum|Maximum} Angle <value>

Normal(法線) - Surface法線が互いに同じ方向を向く(same)、反対方向を向く(opposite)、またはいずれか(any)を検索するか指定します。既定値はANYですが、検索対象を oppositeに限定すると、多くの一般的な検索で有効です。

Set Overlap Normal {ANY|opposite|same}

Tolerance(許容値) - 2つのfacetがこの面積値を超えて重なった場合に一致と判定します。図2のshaftとblockの境界にある2つの円筒Curveを考えると、解析的にはCurveが一致していてもfacetの一部が実際には重なる場合があります。overlap toleranceの面積を大きくすると、このような誤検出を除外できます。既定値は0.001です。

Set Overlap Tolerance <value>

surfaceoverlap.gif

図2. overlapによる誤検出の可能性(toleranceにより一致判定を防止)

Group - 検出されたSurfaceペアは、任意で groupに格納できます。Group名の既定値は"overlap_surfaces"です。

Set Overlap Group {on|OFF}

List(一覧表示) - 既定では各overlapペアを一覧表示します。次のコマンドで無効にできます。

Set Overlap List {ON|off}

Display - 既定ではGraphicsをクリアして各overlapペアを表示します。次のコマンドで無効にできます。

Set Overlap Display {ON|off}

Body - 既定では同一Body内のoverlapペアを検索せず、異なるBody間だけを検索します。この設定をONにするとBody内も検索しますが、処理時間は増加します。

Set Overlap [Within] {Body|Volume} {on|OFF}

Imprint - ONにすると、検出されたoverlap Surface同士をCubitがimprintします。Body同士を通常imprintしただけでは得られないimprintを強制できる場合があります。各overlap Surfaceペアについて、一方のSurfaceを含むBodyに他方のSurfaceの個々のCurveをimprintし、生成Surfaceがoverlapしなくなるまで処理します。

Set Imprint {on|OFF}