Maîtriser les opérations arithmétiques fondamentales en AutoLISP

Comment puis-je effectuer des calculs arithmétiques de base en AutoLISP, et quels sont les pièges à éviter, notamment avec la division et les calculs imbriqués ?

En AutoLISP, les opérations arithmétiques utilisent la notation préfixée, où l’opérateur (le verbe) précède toujours les nombres (les opérandes). Cela signifie que vous écrivez « (opérateur nombre1 nombre2) » au lieu de « nombre1 opérateur nombre2 ».

Voici comment gérer les opérations courantes et leurs particularités :

  1. L’Addition (+) :

    • Utilisez le signe + au début, suivi de tous les nombres à additionner. Vous pouvez enchaîner autant de nombres que nécessaire.
    • Exemple : (+ 2 3 5) retournera 10.
  2. La Soustraction (-) :

    • L’opérateur - est placé avant les nombres. Le deuxième nombre est soustrait du premier.
    • Exemple : (- 10 4) retournera 6.
  3. La Multiplication (*) :

    • L’étoile * est l’opérateur de multiplication. Comme pour l’addition, vous pouvez multiplier plusieurs nombres à la suite.
    • Exemple : (* 2 3 4) retournera 24.
  4. La Division (/) - Attention aux entiers ! :

    • C’est le piège le plus courant pour les débutants. Si vous divisez deux nombres entiers, AutoLISP renverra un nombre entier, tronquant toute partie décimale sans l’arrondir.
    • Exemple : (/ 5 2) retournera 2 (le .5 est ignoré).
    • Solution : Pour obtenir un résultat précis avec des décimales, assurez-vous qu’au moins un des nombres impliqués dans la division est un nombre à virgule flottante (utilisez un point . pour indiquer la décimale).
    • Exemple : (/ 5.0 2) ou (/ 5 2.0) ou (/ 5.0 2.0) retourneront 2.5.
  5. Les Calculs Imbriqués :

    • Pour des opérations complexes, AutoLISP travaille de l’intérieur vers l’extérieur. Chaque opération est une expression entre parenthèses.
    • Exemple : Pour calculer (2 + 3) * 4,
      • Vous commencez par l’addition : (+ 2 3).
      • Ensuite, vous multipliez le résultat par 4 : (* 4 (+ 2 3)).
      • Cette expression retournera 20.
  6. Raccourcis pour incrémenter/décrémenter de 1 :

    • Pour ajouter 1 à un nombre, utilisez la fonction (1+ nombre). C’est l’équivalent de (+ nombre 1) mais plus concis et lisible.
    • Pour soustraire 1 à un nombre, utilisez la fonction (1- nombre). C’est l’équivalent de (- nombre 1).
    • Ces fonctions sont optimisées et améliorent la lisibilité du code. Cependant, elles sont strictement limitées à l’ajout ou la soustraction de 1. Pour toute autre valeur, vous devez utiliser les opérateurs + ou - classiques.

En maîtrisant ces principes, vous pouvez effectuer efficacement tous les calculs nécessaires dans vos routines AutoLISP.