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 :
-
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)retournera10.
- Utilisez le signe
-
La Soustraction
(-):- L’opérateur
-est placé avant les nombres. Le deuxième nombre est soustrait du premier. - Exemple :
(- 10 4)retournera6.
- L’opérateur
-
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)retournera24.
- L’étoile
-
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)retournera2(le.5est 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)retourneront2.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.
- Vous commencez par l’addition :
-
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.
- Pour ajouter
En maîtrisant ces principes, vous pouvez effectuer efficacement tous les calculs nécessaires dans vos routines AutoLISP.