位置の指定
一部のコマンドでは位置または点の指定が必要です(たとえば create curve spline)。位置とは基本的にモデル内のx-y-z座標です。位置は次の方法で指定できます。
- [Position] <xval yval zval>
- Last(直前の位置)
- [At] {Node|Vertex} <id_list>
- [On] Curve <id_list> [location on curve options]
- [On] Surface <id_list> [Close_To | At Location {options} | CENTER]
- [On] Plane <options> [Close_To | At Location {options}]
- Center Curve <id_list>
- Extrema {Curve|Surface|Volume|Body|Group} <range> [Direction] {options} [Direction {options}] [Direction {options}]
- Fire Ray Location {options} Direction {options} At {Body|Volume|Surface|Curve|Vertex} <ids> [Maximum Hits <val>] [Ray Radius <val>]
- Between { Location <options> Location <options>} | { Location <options> Project {Curve|Surface} <id> } [Stop] [Fraction <val>] }
- [Move [all] {<xval yval zval> | {Dx|X|Dy|Y|Dz|Z} <val> | Direction {options} Distance <val>} ]
- [Swing [all] [About] Axis {options} Angle <ang>]
- 複数位置の指定
Position(XYZ値)
[Position] <xval yval zval>
位置を指定する最も基本的な方法は、位置のxyz値を直接与えることです。Positionキーワードは省略可能なため、次の2つのコマンドはいずれも座標(1, 2, 3)に位置を描画します。
draw location position 1 2 3
draw location 1 2 3
コマンドで最後に使用した位置
Last
Lastオプションは、コマンドで最後に使用した位置を呼び出します。たとえば、上記のpositionコマンドの後に次のコマンドを入力すると、位置(1, 2, 3)が描画されます。
draw location last
最後に使用した位置はCUBITセッションをまたいでは保持されません。セッション中に位置を一度も使用していない場合、Lastの既定値は(0, 0, 0)です。
NodeまたはVertex
[At] {Node|Vertex} <id_list>
NodeまたはVertexを指定すると、そのNodeまたはVertexの座標が返されます。コマンド列を完成させるために複数の位置が必要な場合、この指定で複数位置も扱えます。次の例ではVertex 5の座標に位置を描画します。
draw location vertex 5
Curve上
Curve上の位置を指定するために、さまざまなオプションを使用できます。詳しくは「 Curve上の位置の指定 」を参照してください。
Surface上
[On] Surface <id_list> [Close_To | At Location {options} | CENTER]
ほかのオプションを指定せずSurfaceで位置を指定すると、そのSurfaceの幾何学的中心が使用されます(centerキーワードは省略可能で、これが既定動作です)。別の一般的な位置を指定すると、その位置がSurfaceへ投影されます。次の例では、位置(5,0,0)をSurface 1へ投影した位置を描画します。
draw location on surface 1 location 5 0 0
このページに記載されている有効な位置オプションはすべて、Surfaceへ投影する位置の指定に使用できます。
平面上
[On] Plane <options> [Close_To | At Location {options}]
位置は、指定した位置から平面上の最も近い点として定義することもできます。平面のオプションについては「 平面の指定 」を参照してください。
Center(中心)
Center Curve <id_list>
arcの中心を求めます。Curveがarcでない場合はエラーが返されます。
Extrema(極値)
Extrema {Curve|Surface|Volume|Body|Group} <range> [Direction] {options} [Direction {options}] [Direction {options}]
Extremaオプションは、指定したエンティティまたはグループ上で、指定方向の値が最大となる位置を返します。たとえば、次の例ではSurface上でy座標が最大となる点にVertexを配置します。
create vertex location extrema surf 1 direction y
Fire Ray
fire ray コマンドは、オブジェクトへrayを発射して交点を求めることで、そのオブジェクト上の位置または位置の集合を特定します。rayはBody、Volume、Surface、Curve、Vertexの一覧へ向けて発射できます。fire rayコマンドは次のとおりです。
Fire Ray Location {options} Direction {options} At {Body|Volume|Surface|Curve|Vertex} <ids> [Maximum Hits <val>] [Ray Radius <val>]
位置のオプションはこのページで説明しています。方向のオプションは「 方向の指定」を参照してください。コマンドから返すhitの最大数を指定できます。この値を省略すると、見つかったすべての交点が返されます。Curveへrayを発射する場合はray radiusを使用する必要があります。ray radiusは、rayを「hit」とみなすCurveからの距離です。ray radiusを指定しない場合は、geometry engineの既定値が使用されます。
Between
Between {Location <options> Location <options> } | {Location <options> Project {Curve|Surface} <range>} [Stop] [Fraction <val>]}
betweenオプションは、2つの位置の間、または位置とエンティティの間にある位置を求めます。省略可能なfractionを指定すると、1番目の位置から2番目の位置またはエンティティまでの距離に対する割合で位置を指定できます。次の例では(5, 0, 0)に位置を描画します。
draw location between location 0 0 0 location 10 0 0
次の例では(0, 0, 0)から(10, 0, 0)までの距離の25%にあたる(2.5, 0, 0)に位置を描画します。
draw location between location 0 0 0 location 10 0 0 fraction .25
2番目の項目にはエンティティも指定できます。
draw location between location 0 0 0 vertex 2
draw location between location 0 0 0 surface 1
2番目の例では、位置(0, 0, 0)をSurface 1へ投影し、(0, 0, 0)とその投影位置の間にある位置を求めます。
もちろん、コマンドでは任意の有効な位置指定を使用できます。次の例ではbrick上面の中心位置を求めます。
brick x 10
draw location between location bet vert 3 vert 2
location bet vert 8 vert 5
1番目の位置はVertex 3と2の間、2番目の位置はVertex 8と5の間です。
注: 位置は軸のまわりに「swing」でき、方向は別の方向のまわりに「rotate」、軸は別の軸のまわりに「revolve」、平面は軸のまわりに「spin」できます。Cubitのコマンド言語は括弧による式をサポートしていないため、エンティティ型ごとに異なるキーワードを使います。キーワード stop も、この制限への部分的な回避策として位置/方向/軸/平面の解析で使用されます。拡張された位置指定を正しく区切って解析するには、最初の位置指定の後にstopを挿入し、指定の開始位置と終了位置をパーサーへ示します。
Move
Move [All] { <xval yval zval> | {Dx|X|Dy|Y|Dz|Z} <val> | Direction {options} Distance <val> }
位置は、xyz方向の距離または指定方向への一定距離だけ移動することもできます。必要な数だけmoveを連続して指定できます。次の例では(5, 0, 0)の位置を返します。
draw location 0 0 0 move 5 0 0
次の例ではmoveをさらに追加し、位置(5, 0, 0)を右上45度の方向へ距離10だけ移動します。3つのコマンドはいずれも等価です。方向と回転に関する節も参照してください。
draw location 0 0 0 move 5 0 0 move {10*sind(45)} {10*sind(45)} 0
draw location 0 0 0 move 5 0 0 move direction 1 1 0 distance 10
draw location 0 0 0 move 5 0 0 move direction 1 0 0 rotate about 0 0 1 angle 45 dist 10
Swing
Swing [All] [About] Axis {options} Angle <ang>
位置は、指定角度だけ軸のまわりに「swing」(回転)できます。軸の構文については「 軸の指定 」を参照してください。moveと同様に複数のswingを連続して指定できます。次の例では、Curve 11で定義した軸のまわりに位置(2.5, 5, 5)を30度回転します。軸まわりのswing方向は右ねじの法則で決まります。
draw location 2.5 5 5 swing about axis curve 11 angle 30

図1 — 位置のSwing
複数位置の指定
Location {options} Location {options}...
1つのコマンドで複数の位置指定を使用できます。たとえば、次のコマンドは複数の位置を使って、点(0,0,0)、(1,2,3)、(4,5,6)、(7,8,9)を通るspline Curveを作成します。
create curve spline location 0 0 0 location 1 2 3 location 4 5 6 location 7 8 9
位置のプレビュー
コマンドで使用する前に位置をプレビューすると便利な場合があります。位置はDrawコマンドでプレビューできます。コマンドで位置指定に使用できるすべてのオプションをプレビューにも使用できます。各オプションの説明は上記を参照してください。コマンド構文は次のとおりです。
Draw Location {options}