交差するメッシュの検出

この find mesh intersection 機能は、ブロック、ボディ、ボリューム、またはサーフェス間で交差するメッシュを検出します。このコマンドは、ジオメトリ自体は交差していなくてもメッシュが交差しているケースを特定するのに便利です。サーフェスのリストを指定すると2次元メッシュ、ブロック、ボディ、またはボリュームを指定すると3次元メッシュの交差を検出できます。サーフェス間でメッシュが 交差する 場合を、許容差1e-6以内で検出します。交差メッシュを持つサーフェスは、次のコマンドで検出します:

Find Mesh Intersection {Block|Body|Surface|Volume} <id_list> [with {Block|Body|Surface|Volume} <id_list>] [low <value=0.0001>] [high <value>] [exhaustive] [worst <num_worst>] [draw] [log] [group<'name'>]

交差する2Dメッシュの検出

2次元メッシュの交差を検出するには、サーフェスを指定する必要があります。交差が見つかると、交差メッシュを含むサーフェスが描画され(図1)、'surf_intersect' という名前のグループに追加されます。別の名前を使用する場合は group <'name'> オプションで別名を指定できます。また、交差するサーフェスのペアのIDがターミナルに出力されます。

図1. "Find mesh intersection surface all"

この draw オプションを指定すると、サーフェスと交差メッシュをワイヤーフレームで描画し、サーフェス上のどこでメッシュが交差しているかを正確に確認できます(図2)。

図2. "Find mesh intersection surface all draw"

ファセット表現

サーフェス間のメッシュ交差検出は、メッシュだけを使用し、メッシュを三角形ファセットに変換して処理します(グラフィックスのシェーディング表示で見えるファセット表現です)。たとえば、四辺形は2つの三角形に分割されます。高次の2D要素は複数の三角形に分割されます。

メッシュ交差の描画

次のコマンドは、2つのサーフェスの組についてのみメッシュ交差を描画します。サーフェスと交差メッシュはワイヤーフレームで描画され、サーフェス上のどこでメッシュが交差しているかを正確に確認できます。

Draw Surface <id> <id> mesh intersection [add] [include_volume]

図3. Draw Mesh Intersection

交差する3Dメッシュの検出

3次元エンティティでは、ブロック、ボディ、またはボリュームを指定してメッシュ要素の交差を検出できます。交差が見つかると、交差する要素は 'mesh_intersect' という名前のグループに追加されます。別の名前を使用する場合は group <'name'> オプションで別名を指定できます。さらに、交差の詳細がターミナルに出力されます。交差するエンティティ(ブロック、ボリューム、またはボディ)の各ペアについて、最大の交差値が報告されます。この値は、第1列のエンティティに属する要素の体積のうち、第2列のエンティティに属する要素と交差している割合です。下の図5を参照してください。左から順に、各列には次の情報が表示されます:

  • 交差メッシュを持つエンティティ
  • そのエンティティのメッシュと交差する他のエンティティ
  • 第1列のエンティティに属する要素の最大交差値
  • その要素のID
  • 第1列のエンティティに属し、第2列のエンティティの要素と交差している要素数

図5. "Find mesh intersection block all draw"

次の with オプションを使用すると、追加のエンティティを指定できます。追加したエンティティは出力の第1列には表示されません。これにより、ターミナルへの過剰な出力を避けつつ、対象とするエンティティに注目できます。下の図6を参照してください。

図6. "Find mesh intersection block 1 with block all"

この low および high オプションは、検出する累積交差量の範囲を設定します。low 値が0.1の場合、要素体積の10%を超えて交差しない要素は無視されます。同様に、high 値が0.5の場合、要素体積の50%を超えて交差する要素は除外されます。low と high は同時に使用できます。デフォルトの low の値は 0.0001 です。

この exhaustive オプションは、すべての要素を交差判定の対象にします。デフォルトでは、交差は主に境界で発生すると想定し、指定したエンティティの境界上にノードを持つ要素だけを調べます。

この worst パラメータは、交差量が最大の要素を含むワースト 'n' 個のエンティティに出力を制限します。ここで報告される交差率は、チェック対象の他のすべてのエンティティの要素との累積交差量です。

この draw オプションは、交差する要素をカラースペクトルで描画します。赤は交差量が大きいこと、緑は小さいことを表します。色は、 worst オプションに従います。

次の log オプションを指定すると、コマンドの出力は "mesh_intersection01.txt" というファイルにも保存されます。必要に応じてファイル名の番号は増分されます。交差を含むボリュームが数百個ある場合に便利です。

注:

  • 交差量の計算では、高次メッシュ要素の形状も考慮されます。
  • 3Dメッシュの交差検出は、ブロックに格納されていればフリーメッシュにも対応します。
  • 異なるエンティティ内の複数の要素が、ある要素の体積を超える量でその要素と交差する場合、交差率が100%を超えることがあります。
  • メッシュ交差を除去する方法については、 こちら.