メッシュ切断hammer

注: この機能は開発中です。開発中の機能を有効または無効にするコマンドは次のとおりです:

     Set Developer Commands {On|OFF}

「Mesh Cutting」とは、ノードを切断エンティティへ移動し、メッシュの接続性を変更することで、既存メッシュを新しいジオメトリへ適合させる処理です。Mesh CuttingはWeb Cuttingと同様に元のジオメトリを分解することを意図していますが、メッシュ済みジオメトリに対して分解を行い、仮想ジオメトリのPartitionを生成する点が異なります。基盤となるACIS Body自体は変更されません。Mesh Cuttingでは、Volume全体、Surfaceのみ、または何もPartitionしない、のいずれかを選択できます。

現在のMesh Cuttingは、Hexメッシュ済みVolumeを平面または延長Surfaceで切断する場合に限定されています。また、切断エンティティが3本以上のCurveの端点となるVertexを通過する場合は使用できません。TetメッシュやSurfaceメッシュには対応していません。

Mesh Cuttingの手順は次のとおりです:

  • 開始メッシュを作成します. このメッシュは通常、目的とする最終メッシュより単純なものとし、Sweep、Map、その他の利用可能なメッシングアルゴリズムで作成できます。現在、開始メッシュは単一Volumeでなければならず、MergeされたVolumeやAssemblyには対応していません。
  • 切断エンティティを作成します 。切断エンティティは、メッシュへ新しい詳細形状を取り込むために使用します。現在は平面、またはSurfaceから延長したSheetを使用できます。延長Surfaceを使用した場合、そのSurface上のCurveやVertexなどのジオメトリフィーチャはMesh Cuttingでは取り込まれない点に注意してください。
  • コマンドを実行します 。meshcutコマンドの構文と動作はwebcutコマンドに似ています。

Mesh Cuttingでは、次のエンティティと対応するコマンドを使用できます:

座標平面

座標平面を使用してモデルを切断できます。また、原点位置から正または負の距離だけオフセットすることもできます。

Meshcut Volume <range> Plane {xplane|yplane|zplane} [offset <dist>]

Mesh Cuttingに使用する平面Surfaceは、 Draw Plane コマンドでプレビューすることもできます。

平面Surface

既存の平面Surfaceを使用してモデルを切断することもできます。

Meshcut Volume <range> Plane Surface <surface_id>

Mesh Cuttingに使用する平面Surfaceは、 Draw Plane コマンドでプレビューすることもできます。

3点から定義する平面

平面を定義する3つのNodeを指定することで、任意の平面Surfaceを使用できます。

Meshcut Volume <range> Plane Node <3_node_ids>

延長Surface

延長Surface、すなわち「Sheet」もMesh Cuttingに使用できます。この場合、Sheetは平面である必要はなく、可能なすべての方向へ延長されます。延長Surfaceで切断する場合、そのSurface上のすべてのCurveとVertexは無視されます。また、曲面をどの程度正確に取り込めるかはメッシュ解像度に依存します。高曲率Surfaceは粗いメッシュでは正確に取り込めません。一部のSpline Surfaceは延長可能な範囲が限られているため、Mesh Cuttingで期待した結果にならない場合があります。

Meshcut Volume <range> Sheet [Extended From] Surface <surface_id>

注:Composite Surfaceから延長したSurfaceで切断する場合、基盤Surfaceのデフォルト近似によってMesh Cutting後のメッシュ品質が低下することがあります。この問題は次のコマンドで改善できます:

Composite closest_pt surface <id> gme

詳細は Composite Geometry の説明を参照してください。

Meshcutオプション

次のオプションはすべてのmeshcutコマンドで使用できます:

[PARTITION VOLUME|partition surface|no_partition]:デフォルトでは、切断エンティティに合うよう切断対象Volumeの仮想Partitionを作成します。このオプションにより、SurfaceのPartitionだけを作成することや、VolumeとSurfaceのどちらにもPartitionを作成しないことができます。

[no_refine]:このオプションを指定すると、切断エンティティ周辺のメッシュを細分化しません。

[no_smooth]:このオプションを指定すると、切断後の最終スムージングを実行しません。

Mesh Cuttingの適用範囲

現在のMesh Cuttingの適用範囲と制限事項は次のとおりです。

  • Mesh CuttingはHexメッシュに対してのみ使用できます。
  • Mesh Cuttingは単一Volumeに対してのみ使用できます。現在、Assemblyメッシュには対応していません。
  • 現在、切断エンティティとして使用できるのは平面と延長Surfaceだけです。
  • 切断エンティティ上のCurveとVertexはメッシュへ取り込まれません。
  • 切断エンティティが3本以上のCurveの端点となるメッシュ済みVertexを通過する場合、Mesh Cuttingは使用できません。
  • 非平面の切断エンティティを最終メッシュへどの程度正確に取り込めるかは、メッシュ解像度によって決まります。小さなフィーチャや高曲率部分は粗いメッシュでは取り込めません。
  • Spline Surfaceは延長可能な範囲が限られているため、延長切断Surfaceとして使用すると期待どおりの結果にならない場合があります。

Mesh Cuttingの例

以下の図にMesh Cuttingの例を示します。図1はメッシング対象のBodyで、交差する貫通穴を持つBrickです。このBodyのメッシュ作成手順を以下に示します。

smooth_brick.gif

図1:元の未メッシュBody

 

ステップ1:開始メッシュを作成します。図2にこの問題の開始メッシュを示します。使用するコマンドは次のとおりです:

cubit> reset

cubit> set dev on

cubit> create brick x 10

cubit> create cylinder radius 3 z 15

cubit> subtract 2 from 1

cubit> volume 1 scheme sweep

cubit> volume 1 size .75

cubit> webcut volume 1 with plane xplane offset 0

cubit> merge all

cubit> mesh volume 1 3

start_mesh.png

図2:開始メッシュ

ステップ2:切断エンティティを作成します。図3はメッシュ切断に使用するVolumeです。コマンドは次のとおりです:

cubit> create cylinder radius 2 z 15

cubit> rotate volume 4 about x angle 90

mesh_cyl.png

図3:開始メッシュと切断エンティティ

ステップ3:メッシュを切断します。図4は元のメッシュを切断した後の新しいメッシュです。併せてメッシュをスムージングすることを推奨します:

cubit> meshcut vol 1 3 sheet surface 27

cubit> surf in vol 1 3 smooth sch condition number beta 2 cpu 0.5

cubit> smooth surface in volume 1 3

cubit> vol 1 3 smooth scheme condition number beta 2 cpu 0.5

cubit> smooth volume 1 3

cubit> draw volume 1 3

cut_1.png

図4:Mesh Cutting後のメッシュ

ステップ4:最終ステップです。図5は最終メッシュの品質を示します。コマンドは次のとおりです:

cubit> quality volume 1 3 scaled jacobian global draw mesh

 

cut_2.png

図5:最終メッシュの品質