Split Surface

Split Surfaceコマンドは、1つ以上のSurfaceを複数のSurfaceへ分割します。結果は「 imprint with curve」と同様です。ただし、Surface分割ではCurveをあらかじめ作成する必要はありません。コマンドには主に3つの形式があります。

1つ目の形式ではLocationを使って1つのSurfaceを分割します。2つ目ではSurface上のhard-lineをSurface境界に達するまで延長して分割します。Split Automaticでは、1つのSurfaceまたはSurface Chainを自動的に分割します。

Split Across

Split Acrossには2つの形式があります。

Split Surface <id> Across [Pair] Location <options multiple locs> [Preview [Create]]

Split Surface <id> Across Location <multiple locs> Onto Curve <id> [Preview] Create]]

このコマンドは、Surface上の複数Locationを通るSplineを投影してSurfaceを分割します。Location指定の詳細は「 Location、Direction、Axisの指定 」を参照してください。図1は1つのSurfaceを2つへ分割する簡単な例です。指定した3つのLocation(Vertex 5 6 7)を通る一時Splineを作成し、そのCurveを使ってSurfaceを分割しています。

split surface 1 across location vertex 5 6 7

split_across_multiple.gif

図1 - 複数Locationを使ったSplit Across

ここで Pair キーワードを指定すると、Locationを2つずつPairにして複数のSurface分割Curveを作成します。入力Locationの数は偶数である必要があります。図2に例を示します。

split surface 1 across pair vertex 5 7 6 8

split_across_pair.gif

図2 - Pairオプションを使ったSplit Across

ここで プレビュー キーワードを指定すると、分割Curveをグラフィックス上でPreview表示します。 Create キーワードも指定すると、Free Curve(1本または複数)が作成されます。これらはSurfaceのImprintに使用される内部Curveです。

ここで Onto Curve 形式では、Surfaceの一方側にある1つ以上のLocationを、Surfaceの反対側にある1本のCurveへ投影します。図3に例を示します。 

split surface 1 across vertex 5 6 onto curve 4

図3 - Onto Curveを使ったSplit Across

Split Extend

Split Extend機能は次のコマンドで実行できます。

Split Surface <id_list> Extend [Vertex <id_list> | AUTO] [Preview [Create]]

設定は次のとおりです。

Set Split Surface Extend Normal {on|OFF}

Set Split Surface Extend Gap Threshold <val>

Set Split Surface Extend Tolerance<val>

このコマンドは、Surface上のhard-lineをSurface境界に達するまで延長してSurfaceを分割します。図4はCurveを延長する簡単な例です。hard-line Curveを指定VertexからSurface境界に達するまで延長しています。

split surface 1 extend vertex 2

図4 - hard-lineを延長する分割

ここで auto キーワードを指定すると、すべてのhard-lineを検索し、Split Surface Extend設定に従って延長します。図5に例を示します。

split surface 1 extend auto

図5 - Autoオプションによる延長分割

ここで preview キーワードを指定すると、分割Curveをグラフィックス上でPreview表示します。 create キーワードも指定すると、Free Curve(1本または複数)が作成されます。これらはSurfaceのImprintに使用される内部Curveです。

ここで normal 設定はon/offできます。onの場合、CUBITはhard-lineが交差先Curveに対してNormalになるように延長を試みます。図6に例を示します。

set split surface normal on

split surface 1 extend vertex 2

図6 - Normal設定ONでhard-lineを延長した分割

CUBITは gap threshold を使って、ユーザーが autoを指定したときにhard-lineを延長するかどうかを判断します。hard-line上のVertexから交差先Curveまでの距離がgap thresholdより大きい場合、そのhard-lineは延長されません。既定値はINFINITYで、任意の値に設定できます。INFINITYへ戻すにはgap thresholdを-1.0に設定します。 注意: この設定が適用されるのは、キーワード autoを使用する場合だけです。gap thresholdを使用した例を図7に示します。

set split surface gap threshold 2.0

split surface 1 extend auto

図7 - Gap Threshold = 2.0でhard-lineを延長

(Vertex 1はgap thresholdを超えたため延長されていません)

ここで tolerance 設定を使用すると、Surface境界に短いCurveが作成されるのを避けられます。hard-lineを延長した結果が既存VertexのTolerance内に入る場合、CUBITは延長端をそのVertexへSnapします。図8に例を示します。

set split surface tolerance 1.0

split surface 1 extend vertex 2

図8 - Toleranceを使ったhard-lineの延長

(延長端がVertex 3へSnapされていることに注意してください)

Split (Automatically)

この形式では、1つのSurfaceまたはSurface Chainを自動的に分割します。FilletまたはFillet群を中央で分割するときに特に便利で、Mesh Sweepの準備で必要になることがよくあります。対象Surfaceは複数のCurve Loopを持つことはできません。 

Split Surface <id_list> [Corner Vertex <id_list>] [Direction Curve <id>] [Segment|Fraction|Distance <val> [From Curve <id>]] [Through Vertex <id_list>] [Parametric <on|OFF>] [Tolerance <val>] [Preview [Create]]

  • Logical Rectangle
  • Split Orientation
  • Corner Vertex <id_list>
  • Direction Curve <id>
  • Segment|Fraction|Distance <val> [From Curve <id>]
  • Through Vertex <id_list>
  • Parametric <on|OFF>
  • Tolerance <val>
  • Preview [Create]
  • 設定(Tolerance、Parametric、Triangle)

図9のVolumeは、Filletを分割し、図のようにSweep Sourceを指定することで短時間でSweep用に準備できました(Sweep TargetはVolumeの下側)。Surfaceの分割線は青色で示しています。

split_sweep_example.gif

図9 - Sweepを容易にするためのFillet分割

各Surfaceは、Surfaceの長手方向に常に 1本の curve along the length of the surface (or multiple single curves if the Segment オプションを使用した場合を除きます)。分割CurveはSpline、Arc、Straight Lineのいずれかになります。

Logical Rectangle

Split Surfaceコマンドは、選択したSurfaceまたはSurface Chainを解析して logical rectangleを求めます。logical rectangleは4つのLogical Sideと4つのLogical Cornerを持ち、各Sideは0本、1本、または複数のCurveで構成できます。単一Surfaceをオプションなしで選択した場合、90°に最も近いCornerがLogical Cornerとして選ばれ、Surfaceが split parallel to the longest aspect ratio になるよう向きが設定されます。Surface Chainを選択した場合、Logical CornerにはChain先頭Surfaceで90°に最も近い2つのCornerと、Chain末尾Surfaceで90°に最も近い2つのCornerが含まれます(分割は常にChainに沿って行われます).

図10では、アルゴリズムが選択したLogical CornerはVertex 1-2-5-6です。これらのCorner Vertex間にLogical Sideが定義され、Table 1に示されています。既定の分割はSide 1の中央からSide 3の中央まで(Surfaceの最長Aspect Ratioに平行)行われ、青色で表示されています。

logical_rectangle.gif

図10 - Split SurfaceのLogical Property

 

Table 1. 図10のLogical Side一覧

Logical Side
Corner Vertex
Curve Groups
1
1-2
1
2
2-5
2,3,4
3
5-6
5
4
6-1
6

図11は、1つのSurfaceに対して考えられる2種類のLogical Rectangleと、それぞれの分割結果を示しています。

logical_rectangle2.gif

図11 - 同じSurfaceに対する異なるLogical Rectangle

Table 2は、さまざまなSurfaceについて、自動検出または選択したLogical Rectangleに基づく分割結果を示します。Surfaceは常に反時計回りにたどられることに注意してください。

Table 2 - SurfaceとLogical Rectangleの例
Surface(s) (Resultant Split in Blue)
並べたCorner( Logical Rectangle)
corner1.gif
1-2-3-4

(Aspect Ratioを使用)

corner2.gif
4-1-2-3

(ユーザー指定)

corner3.gif
1-2-5-6
corner4.gif
2-5-6-1
corner5.gif

1-2-3-4

(分割は常にChainに沿って行われます)

corner6.gif

1-2-3-4

(Chain中の三角形Surfaceに注意)

corner7.gif

1-1-2-3

(Logical RectangleのSide 1がCollapsed。Side 3はVertex 2から3)

corner8.gif

1-2-2-3

(Logical RectangleのSide 2がCollapsed)

corner9.gif
1-2-3-4
corner10.gif
1-2-4-4
corner11.gif
1-1-2-2
corner12.gif

1-1-2-2

(自動選択)

Split Orientation

Surface Chainを分割する場合、Surfaceは常にChainに沿って分割されます。離れたSurfaceを含むChainは指定できません。

単一Surfaceでは、分割Directionの決定はやや複雑です。オプションを指定しない場合、SurfaceのAspect Ratioから分割Directionを決め、各CurveのMidpointを通って最長Aspect RatioのSideに平行にSurfaceを分割します。この動作は、 Corner Vertexを選択する順序(分割は最初に選択した2つのCorner間のSideから必ず開始)、 Direction オプション、 From Curve オプション、または Through Vertex リストで上書きできます。

Table 3にさまざまな分割Orientation方式の例を示します。各オプションの詳細は以降の節で説明します。

Table 3 - 分割Orientation方式

Surface Example
Split Orientation Method
orient1.gif
複数Surfaceは 常に split along the chain
orient2.gif
Surfaceの最長Aspect Ratioに平行(既定)
orient6.gif

Corner Vertex 4 1 2 3

(分割は常にSide 1から開始: logical rectangle)

orient3.gif
Direction Curve 1
orient4.gif

From Curve 1 Fraction .75

または

From Curve 1 Distance 7.5

orient5.gif
Through Vertex 5 6

Corner指定

ここで Corner オプションでは、 logical rectangle を構成するCornerを指定できます。アルゴリズムはこのLogical Rectangleを使ってSurface上の分割Orientationを決めます。分割対象Surfaceを解析すると、ソフトウェアは90°に最も近いCornerを自動選択します。 プレビュー オプションを指定すると、自動選択されたCornerを赤色で表示します。誤ったCornerが選ばれる場合は、目的のCornerをユーザーが指定してください。分割は常に、最初に選択した2つのCorner間のSideから始まり、最後に選択した2つのCorner間のSideで終わります。図12は、目的の分割を得るためユーザーがCornerを選択する必要があった例です。

corner_pick.gif

図12 - 目的のCornerの選択

三角形Surfaceの先端へ分割線を向けるには、Corner指定時にその先端Corner VertexをCornerリストの先頭または末尾で2回指定し、 logical rectangle上に長さ0のSideを作成します。Corner Vertexを3つだけ指定した場合は、長さ0のSideが最初に選択したCornerへ向くShortcutがあります。Corner Vertexを2つだけ指定した場合、長さ0のSideが最初と2番目に選択した両Cornerへ向きます。Table 4に例を示します。ソフトウェアは角度基準によりTriangle Cornerを自動検出するため、この節の長さ0 Side用Corner指定方法が必要なのは、角度が「 Set Split Surface Auto Detect Triangle 」設定で指定したThreshold範囲外の場合だけです。

Table 4 - Triangle先端へ分割するCorner指定

Surface
Corner指定
corner10.gif

1-2-4-4 または 4-4-1-2

または

4-1-2(Shortcut方式)

corner11.gif

1-1-2-2 または 2-2-1-1

または

1-2 または 2-1(Shortcut方式)

Direction

ここで Direction オプションを使うと、単一Surfaceの既定Split Directionを簡単に上書きできます。目的のSplit Directionに平行なCurveを logical rectangle から指定します。Cornerも指定した場合、Directionオプションは指定した Corner順から決まるSplit Orientationを上書きします。DirectionオプションはSurface Chainには使用できません。図13に例を示します。

direction.gif

図13 - Direction指定によるCorner順の上書き

Segment|Fraction|Distance

ここで Segment オプションでは、Surfaceを横切る方向に等間隔の2つ以上のSegmentへ分割できます。 Fraction オプションでは、既定のFraction位置0.5を上書きできます。 Distance オプションでは、Fractionの代わりに絶対DistanceでSplit Locationを指定できます。さらに From Curveを指定すると、 logical rectangle のどちら側をSegment、Fraction、Distanceの基準にするか明示でき、結果が不定になるのを避けられます。Table 5にこれらのオプション例を示します。

Table 5 - Segment、Fraction、Distanceの例

Surface
コマンドオプション
seg_frac_dist1.gif
Segment 6 From Curve 1
seg_frac_dist2.gif
Fraction .3 From Curve 1
seg_frac_dist3.gif
Distance 3 From Curve 1

Through Vertex

ここで Through Vertex オプションを指定すると、Split Directionに垂直なSurface境界上のVertexをSplit線が通るよう強制します。Surfaceの一端から他端まで目的のFractionが一定でない場合や、Split線が既存Curve端の非常に近くを通って短いCurveを作る場合に使用します。Through Vertexは Fraction オプションと併用でき、指定Vertexを正確に通るようSplit線を線形に調整します。ただし Segment オプションとは併用できません。指定できるThrough Vertexの最大数は、分割対象Surface数+1です。選択VertexはFree Vertexでも構いませんが、分割Directionに垂直なCurve上に存在する必要があります。Table 6に例を示します。 

Table 6 - Through Vertexの例

Surface(s)
コマンドオプション
through1.gif
Fraction .3 From Curve 1 Through Vertex 9
through2.gif
Through Vertex 5 6 7 8

Parametric

既定ではSplit Locationを3D空間で計算し、Surfaceへ投影します。代替としてSurfaceのParametric空間で直接計算できます。まれに、より滑らかで望ましいSplitを得られる場合があります。コマンドオプション Parametric {on|Off} を使用すると、指定SurfaceをParametric空間で分割できます。また、既定値は Set Split Surface Parametric {on|OFF} コマンドで上書きできます。

Tolerance

Split Curveの精度判定には1つのAbsolute Tolerance値を使用します。Toleranceを小さくすると補間Point数が増えます。Toleranceは、Splineではなく解析Curve(ArcやStraight Lineなど)として認識する判定にも使用されます。Toleranceを大きくすると解析Curveが増えます。既定Toleranceは1.0です。コマンドオプション Tolerance <val> を使うと、指定ToleranceでSurfaceを分割できます。また、既定Toleranceは Set Split Surface Tolerance <val> コマンドで上書きできます。

性能向上とファイルサイズ削減のため、可能な範囲で大きなToleranceを使用し、解析Curveを増やしてSpline上のPoint数を減らすことを推奨します。 プレビュー オプションでは補間されたCurve Pointを表示します。Table 7に簡単な例でToleranceの影響を示します。

Table 7 - Split Curveに対するToleranceの影響

Surface
Tolerance
tolerance1.gif
2.0
tolerance2.gif
1.0
tolerance3.gif
0.5
tolerance4.gif
0.01

プレビュー

ここで プレビュー キーワードを指定すると、分割Curve(1本または複数)を青色でPreview表示し、 Corner として選択されたVertexを赤色で表示します。対象は logical rectangleです。Curve PreviewにはSpline Curveを定義する補間Point位置も含まれます。Curve内部にPointが表示されない場合、そのCurveは解析Curve(LineまたはArc)です。ここで Create キーワードも指定すると、Free Curve(1本または複数)が作成されます。これらはSurfaceのImprintに使われる内部Curveです。Table 8に例を示します。

Table 8 - グラフィックスPreview

Surface
Curve Type
preview1.gif
Spline
preview2.gif
Arc(Curve内部にPreview Pointは表示されません)

設定

この節では、自動Split Surfaceコマンドで利用できる設定を説明します。現在値を確認するには、コマンド Set Split Surfaceを入力し、必要に応じて確認したい設定名を値なしで続けます。

Set Split Surface Tolerance <val>

Split Curve精度の既定Toleranceを設定します。詳細は「 Tolerance 」節を参照してください。

Set Split Surface Parametric {on|OFF}

Surfaceを3D空間(既定)で分割するかParametric空間で分割するかの既定値を設定します。詳細は「 Parametric 」節を参照してください。

Set Split Surface Auto Detect Triangle {ON|off}

Set Split Surface Point Angle Threshold <val>

Set Split Surface Side Angle Threshold <val> 

Split Surfaceコマンドは、「 Corner」節で説明したように三角形状Surfaceを自動検出します。この動作は上記設定でoffにできます。Triangle検出には2つのThreshold、 Point Angle Thresholdと Side Angle Threshold(単位: degree)を使用します。Point Angle Thresholdより小さいAngleを持つCornerはTriangleの先端(または logical rectangleのCollapsed Side)候補になります。180°からSide Angle Threshold以内のCornerは logical rectangleから除去する候補になります。実際にTriangleと判定するには、Point基準とSide基準の両方を満たすCornerが必要です。既定のPoint Angle Thresholdは45、Side Angle Thresholdは27です。図14に示します。

tri_setting.gif

図14 - Triangle検出設定

Split Skew

Split Skew機能は次のコマンドで実行できます。

Split Surface <id_list> Skew [Preview] [Create]

このコマンドは、Quad MeshのSkewを減らすため、1つまたは複数のSurfaceを論理的に分割します。Control Skewアルゴリズムを使用して論理分割位置を決定します。Split SkewはStructured Meshing Schemeに適したSurfaceでのみ有効に利用できます。対象Surfaceは複数のCurve Loopを持つことはできません。図15にSurface分割の簡単な例を示します。

split surface 1 skew

図15. L字形SurfaceにSplit Skewを適用

ここで プレビュー キーワードを指定すると、分割Curveをグラフィックス上でPreview表示します。 Create キーワードも指定すると、Free Curveが作成されます。