C'est quoi AutoLISP ?
Dernière mise à jour : lundi 18 août 2025Introduction
AutoLISP est un langage de programmation intégré à Autodesk AutoCAD, dérivé du langage LISP (LISt Processing). Introduit dans AutoCAD en 1986, AutoLISP permet aux utilisateurs d'automatiser des tâches répétitives, de créer des commandes personnalisées et d'étendre les fonctionnalités du logiciel de CAO (Conception Assistée par Ordinateur).
Origine et héritage du LISP
AutoLISP trouve ses racines dans le langage LISP, créé par John McCarthy en 1958 au MIT. LISP est l'un des plus anciens langages de programmation encore utilisés aujourd'hui et a été conçu pour le traitement de listes et l'intelligence artificielle. Autodesk a adapté LISP pour créer AutoLISP, en conservant sa philosophie fonctionnelle tout en l'adaptant spécifiquement aux besoins de la CAO.
Caractéristiques principales
Syntaxe basée sur les parenthèses
AutoLISP utilise une notation préfixée où les opérateurs précèdent leurs opérandes, le tout encadré par des parenthèses :
(+ 5 3) ; Addition : 5 + 3 = 8
(* 2 4) ; Multiplication : 2 × 4 = 8
Traitement de listes
Comme son ancêtre LISP, AutoLISP excelle dans la manipulation de listes, ce qui est particulièrement utile pour traiter les coordonnées et les propriétés d'objets :
(setq point1 '(10.0 20.0 0.0)) ; Définit un point 3D
Intégration native à AutoCAD
AutoLISP peut directement interagir avec les objets AutoCAD, accéder à la base de données du dessin et utiliser toutes les commandes du logiciel.
Mode REPL interactif
La ligne de commande d'AutoCAD fonctionne comme un REPL (Read-Eval-Print Loop), similaire à Python. Cela permet de tester très facilement du code AutoLISP directement depuis l'interface d'AutoCAD. Par exemple, vous pouvez simplement taper dans la ligne de commande :
(alert "Coucou")
Cette commande affichera immédiatement une boîte de dialogue avec le message "Coucou", permettant un apprentissage et un prototypage rapides.
Applications pratiques
Automatisation de tâches répétitives
- Création automatique de blocs standardisés
- Génération de nomenclatures
- Calculs automatiques de surfaces et volumes
- Mise à jour en lot des propriétés d'objets
Personnalisation de l'interface
- Création de nouvelles commandes
- Développement de boîtes de dialogue personnalisées
- Modification des menus et barres d'outils
Intégration de données externes
- Import/export vers des bases de données
- Lecture de fichiers Excel ou CSV
- Génération de rapports automatisés
Avantages d'AutoLISP
Accessibilité
AutoLISP est relativement facile à apprendre pour les utilisateurs d'AutoCAD, même sans expérience préalable en programmation. Sa syntaxe simple et sa documentation extensive facilitent l'apprentissage.
Intégration transparente
Étant intégré directement dans AutoCAD, AutoLISP ne nécessite aucune installation ou configuration supplémentaire. Les programmes peuvent être chargés et exécutés directement depuis l'interface d'AutoCAD.
Flexibilité
Le langage permet de créer des solutions sur mesure adaptées aux besoins spécifiques de chaque utilisateur ou entreprise.
Communauté active
Une large communauté d'utilisateurs partage des routines, des conseils et des solutions, facilitant l'apprentissage et le développement.
Évolution moderne
Visual LISP (VLISP)
Autodesk a introduit Visual LISP et son environnement de développement intégré (VLIDE) qui offre :
- Un éditeur de code avec coloration syntaxique
- Un débogueur intégré
- Des outils de formatage automatique
- Une interface graphique améliorée
Depuis AutoCAD 2021, Autodesk propose une alternative à VLIDE : on peut maintenant utiliser VS Code avec une extension nommée AutoCAD AutoLISP Extension. Notez qu'on ne peut pas compiler en fas ou en vlx, il faut continuer à utiliser VLIDE pour cela.
Alternatives modernes
Bien qu'AutoLISP reste populaire, Autodesk propose également :
- VBA (Visual Basic for Applications) : L'avantage de cette technologie, c'est qu'elle est développé par Microsoft et qu'on la retrouve dans de nombreuses applications comme Microsoft Office ou SolidWorks. Mais elle est cependant obsolète et n'est plus développée. Par ailleurs, elle n'est plus installée par défaut avec AutoCAD, il faut la télécharger séparément.
- .NET API : Pour le développement d'applications robustes en C#
- ObjectARX : Pour ceux qui maitrisent le C++ et veulent des performances maximales
Limitations
Performance
AutoLISP étant un langage interprété, il peut être plus lent que les langages compilés pour des tâches très intensives.
Portabilité limitée
Les programmes AutoLISP sont spécifiquement conçus pour AutoCAD et ne sont pas portables vers d'autres applications. On peut cependant souvent les utiliser sur les clones d'AutoCAD comme DraftSight, BricsCAD, ZWCAD, GstarCAD, etc.
Évolution technologique
Bien que toujours supporté, AutoLISP n'évolue plus autant que les technologies plus récentes proposées par Autodesk. La liste des derniers changements en date peut être consultée ici
Options pour le développement d'interfaces utilisateur limitées
Si vous devez afficher des données ou créer des formulaires de saisie, votre choix se limitera à la technologie DCL (Dialog Control Library), qui est très basique et difficile à utiliser ou OpenDCL qui est également limitée. Alors qu'en .NET par exemple, on peut utiliser WPF ou WinForms qui sont bien plus puissantes et flexibles.
Exemple concret
Voici un exemple simple d'une routine AutoLISP qui dessine un rectangle :
(defun c:rectangle ()
(setq pt1 (getpoint "\nPoint de départ : "))
(setq pt2 (getpoint pt1 "\nPoint opposé : "))
(setq pt3 (list (car pt2) (cadr pt1)))
(setq pt4 (list (car pt1) (cadr pt2)))
(command "LINE" pt1 pt3 pt2 pt4 "C")
(princ)
)
Cette routine crée une nouvelle commande appelée "RECTANGLE" qui demande à l'utilisateur deux points et dessine automatiquement un rectangle.
Conclusion
AutoLISP demeure un outil puissant et accessible pour personnaliser et automatiser AutoCAD. Bien qu'il existe des alternatives plus modernes, sa simplicité d'apprentissage et son intégration native en font un choix privilégié pour de nombreux utilisateurs d'AutoCAD souhaitant améliorer leur productivité. Que ce soit pour automatiser des tâches répétitives ou créer des solutions personnalisées, AutoLISP continue de jouer un rôle important dans l'écosystème AutoCAD.
Besoin d'un développement AutoCAD ? Contactez-moi pour un devis gratuit.