Cvunit

提供:GizmoLabs - だいたい CAD LISP なサイト
2011年9月28日 (水) 17:15時点におけるGizmon (トーク | 投稿記録)による版
構文
(cvunit value from-unit to-unit)


機能
ある計測単位から別の計測単位に値を変換する。
from-unit と to-unit 引数は、.unt ファイル(AutoCADは acad.unt、IJCADはicad.unt)内に存在する単位ならどれでも使用できる。
引数
  • value : 変換する数値または点リスト(2D 点または 3D 点)。
  • from-unit : 変換前の value の単位。
  • to-unit : 変換後の value の単位。
戻り値
正常に変換された場合は、変換後の値。
単位名が不明(Icad.unt ファイル内に見つからない)か、2つの単位間に関連性がない場合は、nil。


サンプル
 (cvunit 1 "minute" "second") ; 分 → 秒
 60.0

 (cvunit 1 "gallon" "furlong") ; ガロン → ハロン 
 nil

 (cvunit 1.0 "inch" "cm")  ; インチ → センチ
 2.54

 (cvunit 1.0 "acre" "sq yard")  ; エーカー → 平方ヤード
 4840.0

 (cvunit '(1.0 2.5) "ft" "in")  ; フィート → インチ
 (12.0 30.0)

 (cvunit '(1 2 3) "ft" "in")  ; フィート → インチ
 (12.0 24.0 36.0)

 ; AREAコマンドから図形の面積と長さを平米、メートルの単位で出す。
 (command "_Area" "o" pause)
 (strcat "面積:" 
         (rtos(cvunit (getvar "area") "sq mm" "sq m") 2 3)  ; 平方ミリ → 平メートル
         " 平方メートル、長さ:" 
         (rtos(cvunit (getvar "perimeter") "mm" "m") 2 3)  ; ミリメートル → メートル
         "メートル")
 )


  • 複数の値を同じように変換する場合は、一度 1.0 をその値に変換し、以後その結果を換算係数として関数または計算に適用すると便利です。 この方法は、あらかじめ定義された単位なら何にでも応用できます。ただし、温度の単位はオフセットを考慮しなければならないので、この方法は使用できません。