GetAngle メソッド(ActiveX)

指定された角度を取得します。システム変数 ANGBASE と ANGDIR の設定が考慮されます。

サポートされているプラットフォーム: Windows のみ

構文と要素

VBA:

RetVal = GetAngle([Point] [, Prompt])
object

タイプ: Utility

このメソッドが適用されるオブジェクト。

Point

アクセス: 入力のみ; オプション

タイプ: バリアント型(3 要素の倍精度浮動小数点数型配列)

1 番目の点を指定する 3D WCS 座標。

Prompt

アクセス: 入力のみ; オプション

タイプ: バリアント型(文字列)

ユーザに入力を求めるときに表示される文字列。

戻り値(RetVal)

タイプ: 倍精度浮動小数点数型

指定された角度

注意

AutoCAD は、ユーザが角度を入力するのを待って、選択された角度の値に対する戻り値を設定します。パラメータ Point は、角度の基点の 2 次元 WCS を指定します。パラメータ Prompt は、ユーザ入力を求める際に AutoCAD が表示する文字列を指定します。Point および Prompt はオプションです。

現在の角度単位の形式で数値を入力すれば、角度を指定することができます。また、グラフィックス画面上で 2D の 2 点を指定して角度を設定することもできます。角度が視覚的に指定できるように、最初の点から現在のクロスヘア カーソルの位置にラバーバンド線を描きます。パラメータ Point が与えられている場合は、その値が 2 点の内の最初の点として使用されます。角度は、WCS の XY 平面で測定されます(GetAngle では Point の Z フィールドは無視されます)。

どの方法で角度を指定しようと、GetAngle メソッドは戻り値を常にラジアンで表します。角度は、システム変数 ANGDIR により、時計回りまたは反時計回りに増加します。

この機能は GetOrientation メソッドとほとんどおなじですが、GetAngle メソッドではシステム変数 ANGBASE の現在の値が考慮されます。GetOrientation では、角度 0 (ゼロ)は常に真東、つまり 3 時の方向です。GetAngle メソッドでは、角度 0 の方向はシステム変数 ANGBASE の値となり、90 度きざみの四半円点のいずれかに設定することができます。GetAngle メソッドも GetOrientation メソッドも、基準の 0 度から計測した角度(実数)をラジアンで返します。GetAngle メソッドの場合、基準角度はシステム変数 ANGBASE に等しく、GetOrientation メソッドの場合は、基準角度は右になります。どちらの関数も、システム変数 ANGDIR の現在の値を考慮します。

ユーザ入力(度) GetAngle の戻り値 GetOrientation の戻り値
0(ゼロ) 0.0 1.5708
-90 1.5708 3.14159
180 3.14159 4.71239
90 4.71239 0.0

GetAngle メソッドでは、0 度を入力すると常に 0 ラジアンが返されるため、これを利用してブロック挿入の際の回転量を取得することができます。GetOrientation メソッドを使用して、テキスト図形を他のオブジェクトに整列させるための基準線の角度を取得することができます。

角度ではなくキーワードが返された場合は、「ユーザ入力がキーワードです」というエラー メッセージが表示されます。GetInput メソッドを使用して、戻り値からキーワードを取得します。

VBA:

Sub Example_GetAngle()
    ' This example demonstrates 4 different ways to retrieve
    ' an angle from the user using the GetAngle method.
    
    AppActivate ThisDrawing.Application.Caption

    Dim retAngle As Double
    
    ' Return the angle in radians with a prompt
    retAngle = ThisDrawing.Utility.GetAngle(, "Enter an angle: ")
    MsgBox "The angle entered was " & retAngle, , "GetAngle Example"
    
    ' Return the angle in radians without any prompt
    retAngle = ThisDrawing.Utility.GetAngle()
    MsgBox "The angle entered was " & retAngle, , "GetAngle Example"
    
    ' Return the angle in radians with a prompt and an angle base point
    Dim basePnt(0 To 2) As Double
    basePnt(0) = 2#: basePnt(1) = 2#: basePnt(2) = 0#
    retAngle = ThisDrawing.Utility.GetAngle(basePnt, "Enter an angle: ")
    MsgBox "The angle entered was " & retAngle, , "GetAngle Example"
    
    ' Return the angle in radians with an angle base point but no prompt
    retAngle = ThisDrawing.Utility.GetAngle(basePnt)
    MsgBox "The angle entered was " & retAngle, , "GetAngle Example"
    
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_GetAngle()
    ;; This example demonstrates 4 different ways to retrieve
    ;; an angle from the user using the GetAngle method.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
      
    ;; Return the angle in radians with a prompt
    (setq retAngle (vla-GetAngle (vla-get-Utility doc) nil "\nEnter an angle: "))
    (alert (strcat "The angle entered was " (rtos retAngle 2)))
    
    ;; Return the angle in radians without any prompt
    (setq retAngle (vla-GetAngle (vla-get-Utility doc)))
    (alert (strcat "The angle entered was " (rtos retAngle 2)))
    
    ;; Return the angle in radians with a prompt and an angle base point
    (setq basePnt (vlax-3d-point 2 2 0))
    (setq retAngle (vla-GetAngle (vla-get-Utility doc) basePnt "\nEnter an angle: "))
    (alert (strcat "The angle entered was " (rtos retAngle 2)))
    
    ;; Return the angle in radians with an angle base point but no prompt
    (setq retAngle (vla-GetAngle (vla-get-Utility doc) basePnt))
    (alert (strcat "The angle entered was " (rtos retAngle 2)))
)