AutoLISP : le guide complet — Chapitre 1 / 16

Introduction — Qu'est-ce qu'AutoLISP ?

AutoLISP est le langage de programmation intégré à AutoCAD depuis 1986. Il permet d'automatiser des tâches, de créer des commandes personnalisées et d'étendre les fonctionnalités du logiciel. Avant de plonger dans la syntaxe et les exemples de code, prenons un moment pour comprendre d'où vient ce langage et pourquoi il a été choisi.

LISP : un langage né en 1958

Le LISP (LISt Processing) a été inventé par John McCarthy au MIT en 1958. C'est le deuxième plus ancien langage de programmation encore utilisé aujourd'hui, juste après le FORTRAN (1957).

John McCarthy

Photo : null0, CC BY 2.0

À l'origine, LISP a été conçu pour la recherche en intelligence artificielle. Son nom — traitement de listes — reflète sa capacité à manipuler des structures de données complexes et hétérogènes, ce qui le distinguait fondamentalement des langages numériques de l'époque comme FORTRAN ou COBOL.

LISP a introduit de nombreux concepts qui sont aujourd'hui omniprésents dans les langages modernes :

  • Le ramasse-miettes (garbage collector) pour la gestion automatique de la mémoire
  • Les fonctions de première classe : les fonctions peuvent être passées en argument ou retournées par d'autres fonctions
  • La récursivité comme mécanisme central de programmation
  • Le typage dynamique
  • Les expressions conditionnelles (l'ancêtre du if/else)

Pourquoi Autodesk a choisi LISP

En février 1985, John Walker, cofondateur d'Autodesk, a rédigé un document interne expliquant le choix de LISP comme langage d'extension d'AutoCAD. Ce choix, qui a fait ses débuts dans AutoCAD 2.1, était à la fois stratégique et pragmatique.

AutoCAD dans les années 80

Voici les raisons principales qui ont motivé cette décision :

Un langage taillé pour le processus de conception

LISP excellait dans la manipulation d'objets hétérogènes organisés en groupes de taille variable — exactement ce qu'on retrouve dans un dessin CAO où coexistent des lignes, des arcs, des blocs, des attributs et des cotes. Les langages numériques comme FORTRAN, conçus pour le calcul scientifique, étaient beaucoup moins adaptés à ce type de travail.

De plus, LISP se prêtait naturellement à l'interaction exploratoire qui caractérise le processus de conception. Un ingénieur ne sait pas toujours à l'avance quelle approche fonctionnera ; il a besoin d'essayer, de tester et d'ajuster rapidement. L'évaluation interactive de LISP correspondait parfaitement à cette façon de travailler.

Un langage reconnu en intelligence artificielle

En 1985, l'intelligence artificielle était au cœur de l'actualité technologique. LISP était le langage de référence dans ce domaine, avec des décennies de succès dans des systèmes complexes comme le programme de navigation de la navette spatiale (NAVEX). Autodesk souhaitait bénéficier de cette association positive.

Cependant, l'équipe d'Autodesk avait aussi une crainte : que les utilisateurs perçoivent LISP comme un langage ésotérique, réservé aux spécialistes. C'est pourquoi AutoLISP a d'abord été présenté sous le nom de « variables and expressions feature » (fonctionnalité de variables et d'expressions), un nom volontairement plus accessible.

Un langage facile à apprendre

Contrairement aux idées reçues, l'implémentation interactive d'AutoLISP avec ses outils de débogage intégrés le rendait comparable en difficulté à un interpréteur BASIC. L'utilisateur pouvait tester ses expressions directement dans la ligne de commande d'AutoCAD, sans avoir besoin d'un compilateur, d'un éditeur externe ou d'un environnement de développement complexe.

Un pari sur l'avenir

En 1985, des entreprises comme Symbolics et Texas Instruments développaient du matériel spécialisé pour exécuter LISP à haute performance. Autodesk anticipait que les applications CAO pourraient un jour tirer parti de ces machines dédiées. Même si cette prédiction ne s'est pas réalisée comme prévu, le choix de LISP s'est avéré remarquablement durable.

D'AutoLISP à Visual LISP

Au fil des versions d'AutoCAD, AutoLISP a évolué :

Période Évolution
1986 Introduction d'AutoLISP dans AutoCAD 2.1
Années 90 Ajout de fonctions d'accès aux entités et aux boîtes de dialogue (DCL)
1997 Apparition de Visual LISP (VLISP) avec un environnement de développement intégré (VLIDE)
2000+ Intégration de Visual LISP dans AutoCAD comme environnement standard
2021 Extension officielle AutoLISP pour Visual Studio Code, alternative moderne à VLIDE
2024 Support d'AutoLISP dans AutoCAD LT

Visual LISP a apporté des fonctionnalités importantes comme l'accès aux objets ActiveX/COM, un débogueur visuel, la coloration syntaxique et la possibilité de compiler le code en fichiers .fas protégés. Aujourd'hui, l'éditeur VLIDE est considéré comme obsolète : Autodesk recommande d'utiliser Visual Studio Code avec l'extension officielle AutoLISP, qui offre un environnement de développement bien plus moderne (débogage, intégration Git, support de l'IA).

AutoLISP aujourd'hui

Aujourd'hui, AutoLISP reste un outil incontournable pour de nombreux utilisateurs d'AutoCAD. Même si Autodesk a ajouté d'autres interfaces de programmation (VBA, .NET/C#, ObjectARX en C++), AutoLISP conserve des avantages uniques :

  • Aucune installation supplémentaire : il est intégré à AutoCAD
  • Accès direct depuis la ligne de commande
  • Fichiers texte simples (.lsp) faciles à partager et à modifier
  • Courbe d'apprentissage douce pour les non-programmeurs
  • Communauté active avec des décennies de code et d'exemples disponibles

AutoLISP n'est pas conçu pour développer des applications complexes avec des interfaces graphiques élaborées — pour cela, on préférera .NET ou ObjectARX. Mais pour automatiser des tâches répétitives, créer des commandes personnalisées ou manipuler des dessins par script, il reste le choix le plus efficace et le plus accessible.

Ce que vous allez apprendre

Dans ce tutoriel, nous allons explorer AutoLISP pas à pas :

  1. Premiers pas : tester des expressions directement dans la ligne de commande d'AutoCAD
  2. La syntaxe : comprendre la notation préfixée et l'imbrication des parenthèses
  3. Les opérations mathématiques : calculer avec +, -, *, /
  4. Les variables et les types de données : stocker et manipuler des valeurs
  5. Les fonctions : créer vos propres commandes
  6. Les structures de contrôle : prendre des décisions dans votre code
  7. Les listes : maîtriser la structure de données fondamentale de LISP
  8. Interagir avec l'utilisateur : recueillir des points, des distances et du texte avec les fonctions get*
  9. Interagir avec le dessin : créer et modifier des entités AutoCAD
  10. Lire et écrire des fichiers : exporter et importer des données
  11. La gestion des erreurs : protéger vos programmes avec *error*
  12. Les symboles et les lambda : comprendre les concepts avancés
  13. Les données étendues et les dictionnaires : attacher des données personnalisées aux entités
  14. Les reactors : réagir automatiquement aux événements dans AutoCAD
  15. L'interopérabilité ActiveX : piloter des applications externes depuis AutoLISP

Aucune expérience en programmation n'est requise. Tout ce dont vous avez besoin, c'est d'une copie d'AutoCAD (ou une version d'AutoCAD LT égale ou postérieure à la 2024).

Passons à la pratique !


Coup de pouce Besoin d'un développement AutoCAD (AutoLISP, ObjectARX, .NET, VBA) ? Contactez-moi pour un devis gratuit.