J’aimerais apprendre à intégrer des logiques de décision dans mes scripts AutoLISP pour qu’AutoCAD puisse exécuter des actions différentes selon certaines conditions. Quelles sont les fonctions clés pour gérer ces conditions et grouper des actions ?
Pour permettre à AutoCAD de prendre des décisions et d’exécuter des actions conditionnelles via AutoLISP, vous utiliserez principalement les fonctions IF, PROGN et COND. Chacune répond à un besoin spécifique de logique décisionnelle.
-
La fonction (IF) :
- C’est la base pour un choix binaire : « Si une condition est vraie, fais ceci ; sinon, fais cela. »
- Syntaxe :
(if <condition> <action-si-vrai> [<action-si-faux>]) - Exemple :
(if (= maVariable 10) (princ "La variable est 10") (princ "La variable n'est pas 10")) - Note importante :
IFn’accepte qu’une seule action pouraction-si-vraietaction-si-faux.
-
La fonction (PROGN) :
- Utilisez
PROGNlorsque vous avez besoin d’exécuter plusieurs actions après une conditionIF.IFest « radin » et n’accepte qu’une seule expression. PROGNagit comme un « sac » qui regroupe plusieurs expressions en une seule, permettant àIFde les traiter comme une unique action.- Syntaxe :
(progn <action1> <action2> ... <actionN>) - Exemple :
(if (= a 10) (progn (princ "\nA est égal à 10.") (command "._CIRCLE" "0,0" 5) (setvar "CLAYER" "0") ) (princ "\nA n'est pas égal à 10.") ) - Astuce mnémotechnique : PROGN = « PROGramme N » actions.
- Utilisez
-
La fonction (COND) :
- Pour gérer des choix multiples ou des conditions complexes,
CONDest plus propre et lisible que desIFimbriqués. CONDteste les conditions séquentiellement. Dès qu’une condition est vraie, les actions associées sont exécutées, etCONDs’arrête (les conditions suivantes ne sont pas évaluées).- Syntaxe :
(cond (<condition1> <action1.1> <action1.2> ...) (<condition2> <action2.1> ...) ... (T <action-par-defaut>)) - Exemple (analyse de note) :
(setq note 15) ; Supposons une note de 15 (cond ((>= note 18) (princ "\nExcellent !")) ((>= note 14) (princ "\nTrès bien.")) ((>= note 10) (princ "\nBien.")) ((>= note 7) (princ "\nPeut mieux faire.")) (T (princ "\nInutile.")) ; Le T final agit comme un "Sinon" par défaut ) - Le
Tà la fin est une condition toujours vraie, servant de clause « sinon » si aucune des conditions précédentes n’a été satisfaite.
- Pour gérer des choix multiples ou des conditions complexes,