概要 - 単位変換(AutoLISP)

距離、体積、またはその他の測定形式を表す値は、実際に使用されている単位間で変換することができます。

acad.unt ファイルは、マイルからキロメートル、華氏から摂氏など、実際に使用される単位間のさまざまな変換を定義します。cvunit 関数は、ある単位系で表された値を受け取り、別の単位系に値を変換して返します。2 種類の単位系は、acad.unt で定義されている単位の式を表す文字列によって指定されます。cvunit 関数は、異なる種類の計測値は変換しません。たとえば、インチからグラムへの変換は行いません。

図面エディタ セッションで単位を変換する場合、cvunit は、指定された単位を表す文字列を acad.unt で探す必要があります。ルーチン内に、ある単位系から別の単位系に変換する値が多数ある場合は、cvunit 関数を 1 回呼び出して値 1.0 を変換してから、返された値をその後の変換係数として使用するのが効率的です。この方法は、acad.unt に定義されている、温度以外のすべての単位に使用できます。温度の単位を変換する場合は、換算係数に加えてオフセットも考慮しなければなりません。

次のコード例では、インチ単位の値をセンチメートル単位に変換します。

(cvunit 1.0 "inch" "cm")
2.54

次のコード例は、華氏の値を摂氏に変換します。

(cvunit 32 "fahrenheit" "celsius")
3.46317e-009

華氏から摂氏への変換後に返される値は正確に 0.0 ではありません。rtos を使用して cvunit によって返される値の精度をコントロールすることができます。それでも実数値が必要な場合は、rtos によって返される文字列を atof で変換することができます。

(setq temp (cvunit 32 "fahrenheit" "celsius"))
3.46317e-009

(setq temp (rtos temp 2 2))
"0.00"

(setq temp (atof temp))
0.0