AutoCADのカスタマイズに欠かせないAutoLISP。今回はその中でも最も基本的な「四則演算」について解説します。数値の計算はスクリプト作成の土台。しっかり理解しておくことで、より高度な処理にも応用できます。
🔢 四則演算とは?
四則演算とは、以下の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の四則演算はシンプルですが、スクリプトの基礎を支える重要な要素です。慣れてくると、条件分岐やループ処理と組み合わせて、より柔軟な自動化が可能になります。
コメント