# (defun) la mère de toutes les fonctions AutoLISP !

**URL:** https://dessein-tech.com/t/defun-la-mere-de-toutes-les-fonctions-autolisp/9668
**Category:** AutoLISP
**Tags:** debutant, lisp, programmation, tuto
**Created:** 2026-01-18T16:04:35Z
**Posts:** 4

## Post 1 by @Patrick — 2026-01-18T16:04:35Z

Voici le «&nbsp;Big Boss&nbsp;» des fonctions AutoLISP. C’est celle par qui tout commence.

 ![tutoriel_debutants_autolisp_autocad](https://dessein-tech.com/uploads/default/original/2X/f/f408190a8abcde1757498ebd5d4884096d452268.jpeg)

Si vous avez compris ([setq](https://dessein-tech.com/t/setq-la-fonction-la-plus-fondamentale-de-lautolisp/9669)) pour les variables, alors `(defun)` est l’étape où vous passez de «&nbsp;Bricoleur&nbsp;» à «&nbsp;Inventeur&nbsp;».

### 1. Le Concept : «&nbsp;Apprendre un nouveau tour à AutoCAD®&nbsp;»

AutoCAD® est comme un chien savant. Il connait «&nbsp;[LIGNE](https://help.autodesk.com/view/ACD/2026/FRA/?guid=GUID-E8C1190C-A26C-484C-ADDD-DDF81666F69F)&nbsp;», «&nbsp;[CERCLE](https://help.autodesk.com/view/ACD/2026/FRA/?guid=GUID-C60B6D5D-AAEB-420F-917F-6E6B47E92F48)&nbsp;», «&nbsp;[COPIER](https://help.autodesk.com/view/ACD/2026/FRA/?guid=GUID-1CF9287F-06E8-4D03-8377-2E130862FE02)&nbsp;».

Mais il ne connait pas la commande «&nbsp;DESSINE\_MAISON&nbsp;» ou «&nbsp;CALCULE\_TRUC&nbsp;».

**(defun)** signifie **DE** fine **FUN** ction (Définir Fonction).

C’est la commande qui vous permet de dire : _«&nbsp;Écoute-moi bien AutoCAD®. À partir de maintenant, quand je tape ce mot magique, tu vas faire cette liste d’actions.&nbsp;»_

### 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 :

1. **`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 «&nbsp;timide&nbsp;». On ne peut pas l’appeler au clavier. Elle sert d’aide pour d’autres programmes.

1. **`( / )` (La Parenthèse Mystère)** :

- C’est la zone de «&nbsp;nettoyage&nbsp;».

- Tout ce que vous écrivez **après le slash /** sera oublié par AutoCAD® une fois la commande finie.

- _Analogy :_ C’est le flash des «&nbsp;Men in Black&nbsp;». On utilise des variables pour travailler, mais à la fin, _flash_, on efface la mémoire pour ne pas polluer AutoCAD®.

1. **Le Corps** : C’est là qu’on empile les commandes.

### 3. L’Exemple : Le «&nbsp;Super Zoom&nbsp;»

On va créer une commande qui n’existe pas. On va l’appeler **ZTOP**.

Elle va faire deux choses d’un coup :

1. Faire un Zoom Étendu (tout voir).

2. 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)** : «&nbsp;Je crée une nouvelle commande&nbsp;».

- **c:** : «&nbsp;Je veux pouvoir la taper au clavier&nbsp;».

- **( / )** : «&nbsp;Je nettoie mes variables à la fin&nbsp;».

Félicitations, vous venez de créer votre première commande AutoCAD® personnalisée !

_Poll: Poll (view on site)_

:right_arrow: Tous les [tutos AutoLISP](https://go.dessein-tech.com/tutos-autolisp)

---

## Post 2 by @Fraiddd — 2026-01-20T15:56:29Z

Bonjour,

Je suis d’accord que les parenthèses ( / ) sont difficile à comprendre pour les débutant.  
Mais elles ne sert pas uniquement à déclarée les variables.  
Exemple : ( argument1 argument2 … / ma\_fonction\_locale ma\_variable\_locale …).  
Les arguments sont utilisés par des fonctions déclarées sans le c:.  
Si on déclare un defun dans un autre il peut etre locale ou globale comme les variables  
C’est peut être à développer pour bien comprendre.  
Pas le temps.

---

## Post 3 by @Patrick — 2026-01-20T16:18:19Z

Merci @Fraiddd pour tes commentaires, mais je vais rester dans la philosophie de ces mini-tutoriels qui sont destinés aux débutants. On pourrait dire bien d’autres choses à propos de ces fonctions, mais au risque de perdre et de lasser les bonnes volontés des débutants. :wink:

---

## Post 4 by @Fraiddd — 2026-01-20T16:28:54Z

Je pense que tu peux en faire un article à part, je parle de (/), remplaçable par nil, si on déclare rien.  
C’est la base du defun.  
En tout cas, je tiens à dire que c’est une bonne initiative et je t’encourage à continuer.  
J’aimerais t’aider dans cette tâche énorme, mais je ne suis pas encore à la retraite, encore 7ans pour arrivé à 67 et mon travail est vraiment hyper chronophage.

à plus
