Voici le tutoriel sur la fonction la plus utilisée, la plus indispensable, la « respiration » du Lisp : (setq).
Si (defun) est le cerveau qui crée les ordres, (setq) est la mémoire. Sans elle, votre programme est comme un poisson rouge : il oublie tout instantanément.
1. Le Concept : « La Boîte à Chaussures »
Imaginez que la mémoire d’AutoCAD® est une immense étagère vide.
(setq) sert à prendre une boîte à chaussures, écrire un nom dessus au marqueur, mettre quelque chose dedans, et la poser sur l’étagère.
-
Le Nom sur la boîte : C’est la Variable (ex:
MaLargeur). -
Ce qu’il y a dedans : C’est la Valeur (ex:
50,"Bonjour", ou un point(0 0 0)).
À tout moment plus tard, vous pourrez dire : « AutoCAD®, donne-moi le contenu de la boîte MaLargeur », et il vous répondra « 50 ».
2. La Syntaxe (Simplissime)
Le nom vient de l’anglais « SET Quote » (Fixer une valeur), mais retenez juste SET (Fixer/Définir).
(setq NOM_DE_LA_BOITE CE_QU_ON_MET_DEDANS)
-
Exemple 1 (Un nombre) :
(setq Rayon 10.5) -
Traduction : « Crée une variable ‹ Rayon › et mets 10.5 dedans. »
-
Exemple 2 (Du texte) :
(setq MonNom "Patrick") -
Traduction : « Crée une variable ‹ MonNom › et mets ‹ Patrick › dedans. »
3. L’Exemple : La Petite Calculette
On va créer une commande qui utilise (setq) pour stocker deux nombres, les multiplier, et stocker le résultat.
Copiez ce code et lancez TEST-MEMOIRE.
(defun c:TEST-MEMOIRE ( / largeur hauteur surface )
(prompt "\n--- DÉBUT DU TEST ---")
;; 1. On remplit les boîtes (Assignation)
(setq largeur 5.0)
(prompt "\nJ'ai mis 5.0 dans la boîte 'largeur'.")
(setq hauteur 10.0)
(prompt "\nJ'ai mis 10.0 dans la boîte 'hauteur'.")
;; 2. On utilise le contenu des boîtes pour faire un calcul
;; On crée une nouvelle boîte 'surface' pour le résultat
(setq surface (* largeur hauteur))
;; 3. On affiche le résultat
;; (rtos transforme le nombre en texte pour l'affichage)
(alert (strcat "Le calcul de " (rtos largeur) " x " (rtos hauteur) " donne : " (rtos surface)))
(princ)
)
4. L’Astuce de Pro (Le « Combo »)
Vous n’êtes pas obligé d’écrire (setq) à chaque ligne. Vous pouvez remplir plusieurs boîtes d’un coup !
(setq a 10
b 20
c 30)
AutoCAD® comprend : a=10, b=20, c=30.
Résumé pour briller
-
(setq) = Stocker Et Tenir (moyen mnémotechnique).
-
C’est le seul moyen de conserver une information pour l’utiliser trois lignes plus bas.
-
Si vous ne mettez pas une info dans un
(setq), elle est perdue à jamais !
- Utile
- Peut mieux faire
- Inutile
Tous les tutos AutoLISP
