Ai num

提供:GizmoLabs - だいたい CAD LISP なサイト
2016年6月3日 (金) 10:01時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (ai_num ''value'' ''error_msg'' ''range'') ; 機能 : 数値、エラーメッセージ、範囲値を渡して数値が範囲内であれば...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(ai_num value error_msg range)


機能
数値、エラーメッセージ、範囲値を渡して数値が範囲内であれば、値をそうでなければエラーを返す。


引数
  • value … 値
  • error_msg … エラーメッセージ
  • range … 範囲値のビット和
  • 0 - 数値なら [OK]
  • 1 - 正を拒否
  • 2 - 負の拒否
  • 4 - ゼロを拒否


戻り値
範囲値なら数値、範囲値外なら "error"タイルにエラーメッセージをセットして nil を返す。


  • MEMO :


サンプル

(ai_num 0.0 "ゼロは無理" 4)

(ai_num 0.0 "ゼロ以下は無理" 6)



; 関数の定義は以下のとおり
(defun ai_num ( value error_msg range / good_value )
  (cond
    ;; 数値
    ((not (setq good_value (distof value)))
      (set_tile "error" error_msg)
      nil
    )
    ;; 正数
    ((and (= 1 (logand 1 range))
       (= (abs good_value) good_value)
     )
      (set_tile "error" error_msg)
      nil
    )
    ;; ゼロ
    ((and (= 2 (logand 2 range))
       (= 0.0 good_value)
     )
      (set_tile "error" error_msg)
      nil
    )
    ;; 負数
    ((and (= 4 (logand 4 range))
       (/= (abs good_value) good_value)
     )
      (set_tile "error" error_msg)
      nil
    )
    (T good_value)
  )
)



関連事項

  • [[]]
  • [[]]