Voici le « Big Boss » des fonctions AutoLISP. C’est celle par qui tout commence.
Si vous avez compris (setq) pour les variables, alors (defun) est l’étape où vous passez de « Bricoleur » à « Inventeur ».
1. Le Concept : « Apprendre un nouveau tour à AutoCAD® »
AutoCAD® est comme un chien savant. Il connait « LIGNE », « CERCLE », « COPIER ».
Mais il ne connait pas la commande « DESSINE_MAISON » ou « CALCULE_TRUC ».
(defun) signifie DEfine FUNction (Définir Fonction).
C’est la commande qui vous permet de dire : « Écoute-moi bien AutoCAD®. À partir de maintenant, quand je tape ce mot magique, tu vas faire cette liste d’actions. »
2. La Syntaxe (La Recette de Cuisine)
Cela ressemble toujours à ça :
(defun c:MON_NOM_DE_COMMANDE ( / variables_locales )
;; Ici, on met les ingrédients (les actions)
(action 1)
(action 2)
(princ) ;; Le petit dessert (pour finir proprement)
)
Il y a 3 zones critiques à comprendre :
c:(Le Préfixe Magique) :
-
Si vous écrivez
(defun c:TOTO ...)→ Vous pourrez taper TOTO directement dans la ligne de commande AutoCAD®. C’est ce qu’on veut 99% du temps. -
Si vous écrivez
(defun TOTO ...)(sans le c:) → C’est une fonction « timide ». On ne peut pas l’appeler au clavier. Elle sert d’aide pour d’autres programmes.
( / )(La Parenthèse Mystère) :
-
C’est la zone de « nettoyage ».
-
Tout ce que vous écrivez après le slash / sera oublié par AutoCAD® une fois la commande finie.
-
Analogy : C’est le flash des « Men in Black ». On utilise des variables pour travailler, mais à la fin, flash, on efface la mémoire pour ne pas polluer AutoCAD®.
- Le Corps : C’est là qu’on empile les commandes.
3. L’Exemple : Le « Super Zoom »
On va créer une commande qui n’existe pas. On va l’appeler ZTOP.
Elle va faire deux choses d’un coup :
-
Faire un Zoom Étendu (tout voir).
-
Sauvegarder le dessin (pour ne rien perdre).
Copiez ceci, chargez-le, et tapez ZTOP.
(defun c:ZTOP ( / ) ;; Pas de variables ici, donc parenthèses vides
(prompt "\nAttention, je zoome et je sauvegarde...")
;; Action 1 : Zoom Étendu
(command "_.ZOOM" "_E")
;; Action 2 : Sauvegarde Rapide
(command "_.QSAVE")
(alert "Dessin cadré et sauvegardé avec succès !")
(princ) ;; Le "silence" final pour ne pas afficher de message bizarre
)
Résumé pour briller
-
(defun) : « Je crée une nouvelle commande ».
-
c: : « Je veux pouvoir la taper au clavier ».
-
( / ) : « Je nettoie mes variables à la fin ».
Félicitations, vous venez de créer votre première commande AutoCAD® personnalisée !
- Utile
- Peut mieux faire
- Inutile
Tous les tutos AutoLISP
