コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
GizmoLab 関連
オンラインショップ
CAD&CGブログ
YouTube
GitHub
CAD 系
GizmoTools
AutoLISP
Visual LISP
BricsCADのLISP
GzLib
DCL
OpenDCL
DWG
DXF
CADのコマンド一覧
システム変数
図形の種類
Ver別サポートAPI
CAD用語集
メモ
newLISP
CommonLISP
Script-Fu
Inno setup
JavaScript
ANDROID
Windowsでのファイルハッシュ確認
Prolog
Python
Clojure
Electron
フォント
数学メモ
イメージサイズとメモリ量
blender
Processwire
Win10,11メモ
IIJmio
mediawiki資料
ヘルプ
検索
検索
表示
ログイン
個人用ツール
ログイン
Transのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Trans
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
; 構文 : (trans ''pt'' ''from'' ''to'' [''disp'']) ; 機能 : ある座標系から別の座標系に、点(または変位)を変換する。 ; 引数 :* pt : 3D 点または 3D 変位(ベクトル)を表す 3 つの実数リスト。 :* from : pt 引数の座標系を表す整数コード、項目名、または 3D 押し出しベクトル。整数コードには、次の値の 1つを指定することができる。 ::: 0 ワールド座標系(WCS) ::: 1 ユーザ座標系(現在の UCS) ::: 2 コード 0(ゼロ)または 1 と組み合わせて使用した場合、現在のビューポートのディスプレイ座標系(DCS)を表す。コード 3 と組み合わせて使用した場合、現在のモデル空間ビューポートの DCSを表す。 ::: 3 ペーパー空間 DCS(コード 2 との組み合わせだけで使用する) ; :* to : 関数が返す点の座標系を表す整数コード、項目名、または 3D 押し出しベクトル。 有効な整数コードのリストについては、from 引数を参照。 :* disp : nil 以外の値を指定すると、pt 引数は点ではなく3D 変位として扱われる。 * from 引数 または to 引数に図形名を使用する場合、entnext、entlast、entsel、nentsel、ssname 関数が返すのと同じ形式の値を渡さなければならない。この形式を使用することによって、特定のオブジェクトのオブジェクト座標系(OCS)との間で点を変換できる。 (オブジェクトによっては、OCS と WCS が等しいものもあり、このようなオブジェクトでは、OCS と WCS の間の変換で演算は行われない。) 3D 押し出しベクトル (3 つの実数のリスト)でも、オブジェクトの OCS との間で変換できる。 しかし、OCS と WCS が等しいオブジェクトの場合はその限りではない。 ; 戻り値 : 指定された to 座標系での 3D 点(または変位)。 ; サンプル <pre class="brush:autolisp;"> (setq pt1 (getpoint)) ;; >(6.85268 3.94705 0.0) (trans pt1 0 1) ;; > (-2.05459 -4.40897 6.23523) (trans pt1 0 1 T) ;; >(-4.36405 -5.28773 3.94124) ; --- ; 次の例では、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) </pre> : 座標系については、AutoCAD の『AutoLISP 開発者用ガイド』の「[[座標系の変換]]」に詳細な説明がある。AutoCADとIJCADで考え方は同じ。IntelliCAD 6.xベースでは同じ式で変換された座標が AutoCAD と IJCAD で異なる事があった。 <pre class="brush:autolisp;"> ; 文字の挿入点から(オブジェクト スナップを使用せずに)線分を描くには、 ; 文字オブジェクトの挿入点を文字オブジェクトの OCS から UCS に変換する。 (trans text-insert-pointtext-ename 1) ; 上記の変換を行うことにより、結果を、始点を求めるプロンプトに渡すことができる。 ; 一方、点(または変位)の値を entmod 関数に渡すには、その前にその図形の OCS に変換しなければならない。 ; たとえば、UCS でのオフセット(1,2,3)で(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 座標は無視)、 ; どちらの端が近いかを判別できる。 ; UCS座標での円の原点を調べる場合 (trans '(0 0 0) 1 circle-ename) </pre> : trans 関数は、2D 点を変換することもできる。 2D 点の変換は、Z 座標に適切な値を設定することによって行われる。 使用される Z 座標は、指定された from 座標系と値を点として変換するか変位として変換するかによって決定される。 値を変位として変換する場合、Z 座標は常に 0.0 になる。 値を点として変換する場合、Z 座標に設定する値は次の表に示すように決定される。 :{| class="wikitable" ! colspan=2 | 変換する 2D 点の Z の値 |- ! from !! Z に設定する値 |- | WCS || 0.0 |- | UCS || 現在の高度 |- | OCS || 0.0 |- | DCS || 現在の作図平面への投影 (UCS の XY 平面 + 現在の高度) |- | PSDCS || 現在の作図平面への投影 (UCS の XY 平面 + 現在の高度) |} [[Category:AutoLISP]]
このページで参照読み込みされているページ:
テンプレート:AutoLISP
(
ソースを閲覧
)
Trans
に戻る。
検索
検索
Transのソースを表示
話題を追加