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

図1 - 複数Locationを使ったSplit Across
ここで Pair キーワードを指定すると、Locationを2つずつPairにして複数のSurface分割Curveを作成します。入力Locationの数は偶数である必要があります。図2に例を示します。
split surface 1 across pair vertex 5 7 6 8

図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の分割線は青色で示しています。

図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のいずれかになります。
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に平行)行われ、青色で表示されています。

図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と、それぞれの分割結果を示しています。

図11 - 同じSurfaceに対する異なるLogical Rectangle
Table 2は、さまざまなSurfaceについて、自動検出または選択したLogical Rectangleに基づく分割結果を示します。Surfaceは常に反時計回りにたどられることに注意してください。
Table 2 - SurfaceとLogical Rectangleの例|
Surface(s)
(Resultant Split in Blue)
|
並べたCorner( Logical Rectangle)
|
![]() |
1-2-3-4
(Aspect Ratioを使用) |
![]() |
4-1-2-3
(ユーザー指定) |
![]() |
1-2-5-6
|
![]() |
2-5-6-1
|
![]() |
1-2-3-4 (分割は常にChainに沿って行われます) |
![]() |
1-2-3-4 (Chain中の三角形Surfaceに注意) |
![]() |
1-1-2-3 (Logical RectangleのSide 1がCollapsed。Side 3はVertex 2から3) |
![]() |
1-2-2-3 (Logical RectangleのSide 2がCollapsed) |
![]() |
1-2-3-4
|
![]() |
1-2-4-4
|
![]() |
1-1-2-2
|
![]() |
1-1-2-2 (自動選択) |
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
|
![]() |
複数Surfaceは 常に split along the
chain
|
![]() |
Surfaceの最長Aspect Ratioに平行(既定)
|
![]() |
Corner Vertex 4 1 2 3 (分割は常にSide 1から開始: logical rectangle) |
![]() |
Direction Curve 1
|
![]() |
From Curve 1 Fraction .75 または From Curve 1 Distance 7.5 |
![]() |
Through Vertex 5 6
|
ここで Corner オプションでは、 logical rectangle を構成するCornerを指定できます。アルゴリズムはこのLogical Rectangleを使ってSurface上の分割Orientationを決めます。分割対象Surfaceを解析すると、ソフトウェアは90°に最も近いCornerを自動選択します。 プレビュー オプションを指定すると、自動選択されたCornerを赤色で表示します。誤ったCornerが選ばれる場合は、目的のCornerをユーザーが指定してください。分割は常に、最初に選択した2つのCorner間のSideから始まり、最後に選択した2つのCorner間のSideで終わります。図12は、目的の分割を得るためユーザーがCornerを選択する必要があった例です。

図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指定
|
![]() |
1-2-4-4 または 4-4-1-2 または 4-1-2(Shortcut方式) |
![]() |
1-1-2-2 または 2-2-1-1 または 1-2 または 2-1(Shortcut方式) |
ここで Direction オプションを使うと、単一Surfaceの既定Split Directionを簡単に上書きできます。目的のSplit Directionに平行なCurveを logical rectangle から指定します。Cornerも指定した場合、Directionオプションは指定した Corner順から決まるSplit Orientationを上書きします。DirectionオプションはSurface Chainには使用できません。図13に例を示します。

図13 - Direction指定によるCorner順の上書き
ここで 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
|
コマンドオプション
|
![]() |
Segment 6 From Curve 1
|
![]() |
Fraction .3 From Curve 1
|
![]() |
Distance 3 From Curve 1
|
Table 6 - Through Vertexの例
|
Surface(s)
|
コマンドオプション
|
![]() |
Fraction .3 From Curve 1 Through Vertex 9
|
![]() |
Through Vertex 5 6 7 8
|
既定ではSplit Locationを3D空間で計算し、Surfaceへ投影します。代替としてSurfaceのParametric空間で直接計算できます。まれに、より滑らかで望ましいSplitを得られる場合があります。コマンドオプション Parametric {on|Off} を使用すると、指定SurfaceをParametric空間で分割できます。また、既定値は Set Split Surface Parametric {on|OFF} コマンドで上書きできます。
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
|
![]() |
2.0
|
![]() |
1.0
|
![]() |
0.5
|
![]() |
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
|
![]() |
Spline
|
![]() |
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に示します。

図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が作成されます。




























