四則演算|数値を計算する基本
要点
AutoLISPでは演算子を先頭に置いて計算します。足し算・引き算・掛け算・割り算と、整数・実数による結果の違いを確認します。
始める前に
先に確認すると読み進めやすい記事:
確認の手順
- コマンド欄で加算と減算の式を入力します。
- 乗算と除算の結果を確認します。
- 整数だけの場合と、小数を含む場合を比較します。
- 掲載例のtest-calcを実行し、各計算の結果を照合します。
四則演算とは?
四則演算とは、以下の4つの基本的な計算のことです:
| 演算 | AutoLISP関数 | 例 | 結果 |
|---|---|---|---|
| 加算 | (+ a b) | (+ 3 5) | 8 |
| 減算 | (- a b) | (- 10 4) | 6 |
| 乗算 | (* a b) | (* 2 3) | 6 |
| 除算 | (/ a b) | (/ 10 2) | 5 |
AutoLISPでは「前置記法(Prefix Notation)」を使います。つまり、演算子が先に来て、その後に引数(数値)が並びます。
実際に使ってみよう!
以下のコードをAutoCADのコマンドラインやLISPファイルに入力してみましょう。
(defun c:test-calc ()
(setq a 10)
(setq b 5)
(setq sum (+ a b))
(setq diff (- a b))
(setq prod (* a b))
(setq quot (/ a b))
(princ (strcat "\n加算: " (rtos sum 2 2)))
(princ (strcat "\n減算: " (rtos diff 2 2)))
(princ (strcat "\n乗算: " (rtos prod 2 2)))
(princ (strcat "\n除算: " (rtos quot 2 2)))
(princ)
)この関数 c:test-calc を実行すると、各演算の結果がコマンドラインに表示されます。
応用ポイント
- 複数の数値を一度に計算
AutoLISPでは、加算や乗算に複数の引数を渡すことができます。(+ 1 2 3 4) ; 結果は 10 (* 2 3 4) ; 結果は 24 - 小数点の扱い
除算では小数点が出ることがあります。(rtos)関数で文字列に変換する際に桁数を指定できます。
よくあるミスと対策
- ゼロ除算
(/ a 0)はエラーになります。除算前にゼロチェックを入れましょう。(if (/= b 0) (/ a b) (princ "\nゼロ除算はできません") ) - 文字列との混同
数値と文字列を混ぜて演算しようとするとエラーになります。型に注意しましょう。
まとめ
AutoLISPの四則演算はシンプルですが、スクリプトの基礎を支える重要な要素です。慣れてくると、条件分岐やループ処理と組み合わせて、より柔軟な自動化が可能になります。
結果の確認
整数の除算と実数の除算の違いを確認します。必要な精度に合わせて実数を使い、ゼロで割る値が入らないか確認してください。
参照資料
対象環境・動作確認
AutoLISP対応環境(関数・OSごとの対応は要確認)。内容更新:2026年10月5日。掲載コードのCAD実機検証は未実施です。図形を変更する例は、コピーした図面で結果を確認してください。