ジオメトリのImprint

manifoldジオメトリからnon-manifoldジオメトリモデルを作るには、一致するSurfaceどうしをMergeする必要があります(「 ジオメトリのMerge」参照)。このMergeは、Merge対象Surfaceのトポロジと幾何形状が同等である場合にだけ実行できます。Assemblyの各部には、幾何学的には一致するSurfaceが存在することが一般的ですが、Surfaceのトポロジも同等にするためにはImprintが必要です。Imprintには3つの種類があります。

どのSurfaceをImprintできるか、またはImprintすべきかを事前確認したり、通常のImprintコマンドで見落とすImprintを強制したりするには、 Find Overlap コマンドを使用できます。

通常のImprint

BodyどうしをImprintするには次のコマンドを使用します。

Imprint [Volume|BODY] <range> [with [Volume|BODY] <range>] [Keep]

BodyにはCurve、Vertex、PositionをImprintでき、SurfaceにはCurveをImprintできます。BodyまたはSurfaceへCurveをImprintすると、Meshのskewを抑えたり、MeshしやすいSurfaceを生成したり、hard lineを作成して Paveを行う際に有用です。VertexまたはPositionによるImprintは、Meshをより制御しやすくするためにCurveを分割したり、Pave用のhard pointを作成したりする際に有用です。VertexをVolumeへImprintする場合はToleranceを指定でき、そのTolerance内でVolume上の最も近い位置へVertexをsnapできます。

Imprint Body <body_id_range> [with] Curve <curve_id_range> [Keep]

Imprint Body <body_id_range> [with] Vertex <vertex_id_range> [tolerance <value>] [Keep]

Imprint {Volume|Body} [with] Position <coords> [position <coords> ... ]

Imprint Surface <surface_id_range> [with] Curve <curve_id_range> [Keep]

Imprint All は、モデル内のすべてのBodyを2つずつ組み合わせてImprintします。明らかに交差しないBodyへのImprint呼び出しはBounding Boxで除外されます。

Imprint [Body] All

Tolerance付きImprint

Tolerance上の問題があるAssemblyモデルでは、通常のImprintが有効に機能せず、不要なsliver Entityを生成したり、必要なImprintを見落としたりすることがあります。Tolerant Imprintingは、このようなTolerance上の問題を持つAssemblyへの対応に有用です。一致Entityやoverlap Entityの判定には merge tolerance。また、コマンドにはオプションで tolerance 値を指定でき、そのコマンド実行時にだけ使用されます。オプションの tolerance 値を指定しても、システムの既定Tolerance値は変更されません。

Tolerant Imprintingには、通常のImprintのように交差するSurfaceどうしを相互にImprintできないという制約があります。Tolerant Imprintingが対象にできるのは overlapする Entityどうしだけです。

Imprint Tolerant {Body|Volume} <range> [tolerance <value>]

SurfaceとCurve間の距離がMerge Tolerance内であれば、Tolerant Imprintingを使ってCurveをSurfaceへImprintすることもできます。merge オプションを指定すると、指定Surfaceを所有するVolumeと、そのSurfaceのCurveを共有するその他すべてのVolumeをMergeします。

Imprint Tolerant Surface <id> with Curve <id_range> [merge]  [tolerance <value>]

Imprint Tolerant Surface <id> <id> with Curve <id_range> [merge]  [tolerance <value>]

Imprint Tolerant Surface <id> <id> [tolerance <value>]

2つ目の形式では、一方のSurfaceを境界づける指定Curveをもう一方のSurfaceへImprintし、逆方向にもImprintします。指定Curveが2つの指定Surfaceのどちらの境界にも属さない場合、そのCurveはImprintされません。merge オプションを指定すると、Imprint後に、この2つのSurfaceのいずれかのCurveを共有するすべてのVolumeをMergeします。

可能な場合は通常のImprintを使用し、通常のImprintが失敗する場合にだけTolerant Imprintingを使用することを推奨します。

Mesh-Based Imprinting

Imprintコマンドには次の形式もあります。

Imprint Mesh {Body | Volume} <id_list>

この形式は、一致するMesh Entityと Virtual Geometry を使用してImprintを作成します。詳細は「 Partition済みジオメトリ 」節を参照してください。

Imprint Settings

Imprint操作後には、sliver Curveやsliver Surfaceなどのsliver Entityを除去する処理が試みられます。以前は、対象Body内の長さ0.001未満のCurveをすべて除去していました。しかし新しいCubitでは、Imprint操作中にsliver Curve/Surfaceを意図的に生成したい場合もあるため、この動作が変更されています。Imprint後のsliver Entity cleanupをユーザーがより細かく制御できるように、imprint sliver cleanup toleranceを設定するコマンドが用意されています。Curveの既定ToleranceはMerge Toleranceの0.0005です。Surfaceの既定Toleranceは、EntityのBounding Boxに基づいて内部で適切な値が選択されます。long edge間の最大gap距離がToleranceより小さく、かつlong edgeが3本以下のsliver Surfaceが除去されます。ここでlong edgeとは、長さが指定Toleranceより大きいEdgeです。

Set {Curve|Surface} Imprint Cleanup Tolerance <value>