ある座標系から別の座標系に、点(または変位)を変換します。
サポートされているプラットフォーム: Windows および Mac OS
(trans pt from to [disp])
タイプ: リスト
3D 点または 3D 変位(ベクトル)を表す 3 つの実数のリスト。
タイプ: 整数、リスト、ads_name
pt 引数の座標系を表す整数コード、項目名、または 3D 押し出しベクトル。整数コードには、次の値の 1 つを指定することができます。
0: ワールド(WCS)
1: ユーザ座標系(現在の UCS)
2: コード 0(ゼロ)または 1 と組み合わせて使用した場合、現在のビューポートのディスプレイ座標系(DCS)を表します。コード 3 と組み合わせて使用した場合、現在のモデル空間ビューポートの DCS を表します。
3: ペーパー空間 DCS(コード 2 との組み合わせのみで使用します )
タイプ: 整数、リスト、ads_name
関数が返す点の座標系を表す整数コード、項目名、または 3D 押し出しベクトル。有効な整数コードのリストについては、from 引数を参照してください。
タイプ: リスト
nil 以外の値を指定すると、pt 引数は点ではなく 3D 変位として扱われます。
タイプ: リスト
指定された to 座標系での 3D 点(または変位)。
from 引数 または to 引数に図形名を使用する場合、entnext、entlast、entsel、nentsel、ssname 関数が返すのと同じ形式の値を渡さなければなりません。この形式を使用することによって、特定のオブジェクトのオブジェクト座標系(OCS)との間で点を変換できます。(オブジェクトによっては、OCS と WCS が等しいものもあります。このようなオブジェクトでは、OCS と WCS の間の変換で演算は行われません。)3D 押し出しベクトル(3 つの実数のリスト)でも、オブジェクトの OCS との間で変換できます。しかし、OCS と WCS が等しいオブジェクトの場合はその限りではありません。
trans 関数は、2D 点を変換することもできます。2D 点の変換は、Z 座標に適切な値を設定することによって行われます。使用される Z 座標は、指定された from 座標系と値を点として変換するか、変位として変換するかによって決定されます。値を変位として変換する場合、Z 座標は常に 0.0 です。値を点として変換する場合、Z 座標に設定する値は次の表に示すように決定されます。
変換する 2D 点の Z の値 |
|
---|---|
from |
Z に設定する値 |
WCS |
0.0 |
UCS |
現在の高度 |
OCS |
0.0 |
DCS |
現在の作図平面への投影 (UCS の XY 平面 + 現在の高度) |
PSDCS |
現在の作図平面への投影 (UCS の XY 平面 + 現在の高度) |
次の例では、UCS を、WCS の Z 軸を中心に反時計回りに 90 度回転させています。
(trans '(1.0 2.0 3.0) 0 1) (2.0 -1.0 3.0) (trans '(1.0 2.0 3.0) 1 0) (-2.0 1.0 3.0)
たとえば、文字の挿入点から(オブジェクト スナップを使用せずに)線分を描くには、文字オブジェクトの挿入点を文字オブジェクトの OCS から UCS に変換します。
(trans text-insert-point text-ename 1)
上記の変換を行うことにより、結果を、始点を求めるプロンプトに渡すことができます。
一方、点(または変位)の値を entmod 関数に渡すには、その前にその図形の OCS に変換しなければなりません。たとえば、UCS でのオフセット(1,2,3)で(AutoCAD の MOVE[移動]コマンドを使用せずに)円を移動したい場合、変位を UCS から円の OCS に変換しなければなりません。
(trans '(1 2 3) 1 circle-ename)
次に、結果の変位を円の中心点に加えます。
たとえば、ユーザが入力した点があり、線分のどちらの端がその点に近いかを調べる場合、ユーザが入力した点を UCS から DCS に変換します。
(trans user-point 1 2)
次に、線分の端点を OCS から DCS に変換します。
(trans endpoint line-ename 2)
これによって、ユーザの点と線分の両端の間の距離を計算することが可能になり(Z 座標は無視)、どちらの端が近いかを判別できます。