Vla-getorientation

提供:GizmoLabs - だいたい CAD LISP なサイト
2016年1月23日 (土) 22:22時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-getorientation ''vla-object'' ''Point'' ''Prompt'') ; 機能 : 指定された角度を取得する。システム変数 ANGBASE の設定...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-getorientation vla-object Point Prompt)


機能
指定された角度を取得する。システム変数 ANGBASE の設定は無視される。


引数
  • vla-object … VLAオブジェクト
  • Point … 基点を指定する 3D WCS 座標
  • Prompt … ユーザに入力を求めるときに表示される文字列。


戻り値
指定された角度


MEMO
  • CAD は、ユーザが角度を入力するのを待って、選択された角度の値に対する戻り値を設定する。
  • パラメータ Point は、WCS での角度の基点を指定する。
  • パラメータ Prompt は、ユーザ入力を求める際に CAD が表示する文字列を指定する。
  • Point および Prompt はオプション。
  • 現在の角度単位の形式で数値を入力すれば、角度を指定することができる。また、グラフィックス画面上で 2D の 2 点を指定して角度を設定することもできる。角度が視覚的に指定できるように、最初の点から現在のクロスヘア カーソルの位置にラバーバンド線を描く。
  • 引数 Point が与えられている場合は、その値が 2 点のうちの最初の点として使用される。
  • 角度は、WCS の XY 平面で測定されます(このメソッドは、Point の Z フィールドを無視する)。角度は、常に反時計回り方向に増加する。
  • どのメソッドで角度を指定しようと、GetOrientation メソッドは戻り値を常にラジアンで表します。
  • このメソッドは GetAngle メソッドによく似ているが、システム変数 ANGBASE に格納されている現在の角度 0 の方向は無視する。GetOrientation メソッドの場合、角度 0 の方向は常に右(「東」または「3 時」)となる。
  • 角度ではなくキーワードが返された場合は、「ユーザ入力がキーワードです」というエラー メッセージが表示される。GetInput メソッドを使用して、戻り値からキーワードを取得する。


サンプル
(vl-load-com)
(defun c:Example_GetOrientation()
    ;; GetOrientation メソッドを使用して、ユーザーから方向を取得する 3 つの方法を示すサンプル。
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; プロンプトをラジアンで方向を返す
    (setq retOrientation (vla-GetOrientation (vla-get-Utility doc) nil "方向を入力 : "))
    (alert (strcat "入力方向は " (rtos retOrientation 2) "\n"
                   "(プロンプトを表示せずには、次の値を入力します。)"))

    ;; 任意のプロンプトなしでラジアン方向を返す
    (setq retOrientation (vla-GetOrientation (vla-get-Utility doc)))
    (alert (strcat "入力方向は " (rtos retOrientation 2)))
    
    ;; ラジアン、プロンプトと向き基本点方向を返す
    (setq basePnt (vlax-3d-point 2 2 0))
    (setq retOrientation (vla-GetOrientation (vla-get-Utility doc) basePnt "方向を入力 : "))
    (alert (strcat "入力方向は " (rtos retOrientation 2)))
)

関連事項