【AutoLISP入門】四則演算をマスターしよう!

Autolisp

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の四則演算はシンプルですが、スクリプトの基礎を支える重要な要素です。慣れてくると、条件分岐やループ処理と組み合わせて、より柔軟な自動化が可能になります。

コメント

タイトルとURLをコピーしました