概要 - 角度の変換(AutoLISP)

ほとんどの AutoLISP 関数によって返される角度値と図面に保存されている角度値は、ラジアン単位で表されます。一方、角度の入力は、通常は度またはラジアン以外の角度形式で指定されます。

角度値の変換は、数学関数の組み合わせを使用して直接行う、または angtofangtof の関数を使用して行うことができます。angtos 関数は、ラジアンで表された角度値を度またはサポートされている角度形式のいずれかに変換します。この関数は文字列値を返します。実数(または浮動小数点数)の値が必要な場合は、atof 関数を使用して、angtos 関数によって返された文字列値を変換することができます。

(setq half-PI (/ PI 2))
1.5708

(setq angstr (angtos half-PI 0 2))
"90.00"

(setq deg (atof angstr))
90.0

angtof 関数は angtos 関数の逆で、角度値を表す文字列をラジアン単位の実数(または浮動小数点数)の値に変換します。

(setq angstr (angtos 1.5708 1 6))
"90d0'0.76\""

(setq rad (angtof angstr 1))
1.5708

数学関数を使用してラジアンを度に、度をラジアンに変換する

数学関数を使用すると、angtos 関数と angtof 関数を使用するよりも効率的にラジアンを度に、あるいは度をラジアンに変換することができます。

ラジアンを度に変換する計算式は、次のとおりです。

(Radians / PI) * 180 = Degrees

AutoLISP では、次の関数で同じことを実行することができます。

; Convert value in radians to degrees
(defun Radian->Degrees (nbrOfRadians)
  (* 180.0 (/ nbrOfRadians pi))
)
RADIAN->DEGREES

(Radian->Degrees PI)
180.0

度をラジアンに変換する計算式は、次のとおりです。

(Degrees / 180) * PI = Degrees

AutoLISP では、次の関数で同じことを実行することができます。

; Convert value in degrees to radians
(defun Degrees->Radians (numberOfDegrees)
  (* pi (/ numberOfDegrees 180.0))
)
DEGREES->RADIANS

(Degrees->Radians 180.0)
3.14159