AutoLISP avec VS Code
dimanche 25 janvier 2026· mis à jour le mercredi 15 avril 2026Pour développer des macros AutoLISP, on utilise traditionnellement VLIDE (Visual Lisp IDE). Mais depuis la version 2021 d'AutoCAD, Autodesk propose une alternative : VS Code avec l'extension AutoCAD AutoLISP Extension.
Installation de Microsoft Visual Studio Code et de l'extension AutoCAD AutoLISP
Quand vous tapez VLISP sur la ligne de commande la première fois avec une version d'AutoCAD fraichement installée, l'écran suivant vous est présenté :

Si vous choisissez la première option et que Visual Studio Code n'est pas installé, vous allez avoir l'écran suivant :

Le lien Télécharger va vous amener sur la page de Visual Studio. Alors là attention, Visual Studio est différent de Visual Studio Code. C'est un environnement de développement complet, tandis que Visual Studio Code est un éditeur de code. Visual Studio n'est pas du tout adapté pour le développement avec AutoLISP, c'est Visual Studio Code qu'il vous faut. Vous pouvez le télécharger gratuitement ici.
Prenez l'installation pour l'utilisateur courant pour Windows x64.
L'étape suivante, c'est l'installation de l'extension AutoCAD AutoLISP Extension. Il suffit de cliquer sur le bouton Install et de suivre les instructions.
Relancez VLISP, vous devriez basculer vers VS Code et le message suivant devrait s'afficher :

Écriture de code AutoLISP avec VS Code
Appuyez sur Ctrl + N pour créer un nouveau fichier. Appuyez sur Ctrl + K, relâchez Ctrl et appuyez sur M pour choisir le langage AutoLISP.
Tapez le code suivant :
(defun c:hello ()
(princ "Hello, World!")
(princ)
)
Exécution du code AutoLISP
Appuyez sur Ctrl + F5 pour exécuter le code. VS Code va vous proposer d'enregistrer votre fichier avec une extension .lsp.
Basculez sur AutoCAD et tapez le nom de la commande que vous venez de créer (HELLO). Hello, World! devrait s'afficher dans la fenêtre texte d'AutoCAD.
/ide
Débogage du code AutoLISP
L'extension intègre un débogueur. Vous pouvez donc placer un point d'arrêt sur une ligne de code avec F9. Quand vous allez relancer votre commande HELLO, le débogueur va s'activer, VS Code va venir au premier plan et vous allez pouvoir inspecter les variables, la pile des appels, etc.
Vous pouvez même utiliser la console intégrée de VS Code pour exécuter des commandes AutoLISP.
Avantages par rapport à VLIDE
Vous avez un éditeur de code bien plus moderne qui vous permet d'utiliser l'IA. VS Code propose de nombreuses fonctionnalités telles que les curseurs multiples, l'intégration avec Git, les refactorings (renommage de symboles par exemple) qui vous rendent plus productif.
Un autre gros avantage : VS Code propose une fonction de recherche et remplacement sur plusieurs fichiers (Ctrl + Shift + H). C'est extrêmement pratique quand vous devez renommer une variable ou une fonction utilisée dans tout votre projet. Sur VLIDE, vous devez ouvrir chaque fichier un par un et faire le remplacement manuellement.
Limitations
Pour compiler en fas, vous n'avez pas un bouton qui vous permet de le faire en un clic, vous devez utiliser vlisp-compile :
(vlisp-compile 'st "mon_programme.lsp")
Bon ce n'est pas très compliqué, donc ce n'est pas un gros problème.
Pour créer un VLX, sur VLIDE, il faut utiliser le menu Fichier → Créer une application qui lance un assistant. Chez Autodesk, ils ont pensé à ça, car ils ont ajouté une commande à AutoCAD nommée FABLISPAPP qui lance le même assistant depuis VS Code, sans passer par VLIDE.
Que vous passiez par l'un ou l'autre, l'assistant (Make Application) permet de définir les fichiers et les options utilisés pour construire une application VLX, et génère un fichier .PRV qui contient toute la configuration de votre application. Ensuite, vous pouvez :
- Modifier la configuration de votre application avec l'option Propriétés, qui permet de rouvrir et d'éditer le fichier .PRV.
- Reconstruire le VLX avec l'option correspondante, sans avoir à repasser par toutes les étapes de l'assistant.
Attention : ne confondez pas les fichiers .PRV et .PRJ. Le fichier .PRJ est le fichier de définition de projet, utilisé aussi bien par VLIDE que par l'extension VS Code : il contient l'emplacement et les noms de tous les fichiers source qui constituent le projet, ainsi que certains paramètres et règles pour générer les fichiers FAS finaux. Le fichier .PRV, lui, décrit la configuration de build d'une application VLX ; il est généré par l'assistant Make Application, que vous le lanciez depuis VLIDE (Fichier → Créer une application) ou depuis VS Code via FABLISPAPP.
Travailler avec plusieurs fichiers source
Contrairement à VLIDE, l'extension VS Code ne propose malheureusement pas de mécanisme pour charger tous les fichiers d'un projet en une seule opération. Si votre application est composée de plusieurs fichiers, une bonne pratique consiste donc à créer un fichier de bootstrap qui charge tous vos fichiers.
La liste des fichiers source de votre application est maintenue dans un fichier .PRJ (via l'explorateur de projet de VLIDE ou l'extension VS Code). Ce fichier ressemble à ceci :
(VLISP-PROJECT-LIST
:name
MonApplication
:own-list
("utils" "commands" "dialogs")
...
)
Les fichiers sont listés dans la section :own-list, sans leur extension .lsp. On peut donc écrire un loader qui lit le .prj pour en extraire les fichiers à charger :
;; loader.lsp — charge les fichiers listés dans le .prj
(defun load-from-prj ( prjFile / base file line content start endPosition
listString position nameStart nameEnd name )
(setq base (vl-filename-directory prjFile))
(setq file (open prjFile "r"))
(setq content "")
(while (setq line (read-line file))
(setq content (strcat content line " "))
)
(close file)
(setq start (vl-string-search ":own-list" (strcase content T)))
(if start
(progn
(setq start (vl-string-search "(" content start))
(setq endPosition (vl-string-search ")" content start))
(setq listString (substr content (+ start 2) (- endPosition start 1)))
(setq position 0)
(while (setq nameStart (vl-string-search "\"" listString position))
(setq nameEnd (vl-string-search "\"" listString (1+ nameStart)))
(setq name (substr listString (+ nameStart 2) (- nameEnd nameStart 1)))
(load (strcat base "\\" name ".lsp"))
(setq position (1+ nameEnd))
)
)
)
(princ "\nApplication chargée.")
(princ)
)
(load-from-prj "D:/Projets/MonApplication/MonApplication.prj")
Pour que la fonction puisse localiser le fichier .prj, vous avez deux possibilités :
- Chemin absolu en dur : comme dans l'exemple ci-dessus, vous indiquez le chemin complet du fichier .prj.
- Utiliser
findfile: si vous ajoutez le répertoire contenant le .prj au chemin de recherche d'AutoCAD (Options → Fichiers → Chemin de recherche des fichiers de support), vous pouvez simplement écrire(load-from-prj (findfile "MonApplication.prj")).
L'avantage de cette approche, c'est que vous n'avez qu'une seule source de vérité : le .prj. Quand vous ajoutez ou supprimez un fichier dans l'explorateur de projet, le loader le prend en compte automatiquement. À chaque fois que vous voulez tester votre application, il suffit de lancer le débogage sur ce fichier pour recharger l'ensemble du code.
Repasser à VLIDE
Si vous n'arrivez pas à vous faire à l'environnement, vous pouvez basculer à VLIDE en modifiant la variable système LISPSYS. Il faut la passer à 0 puis relancer AutoCAD.
Pour revenir à VS Code, il faudra la passer à 1.
Conclusion
Je sais que ce n'est pas facile de changer ses habitudes, mais vous avez tout à gagner à passer à VS Code pour développer vos programmes AutoLISP.
Si vous voulez plus d'informations sur le sujet, consultez la documentation officielle d'AutoCAD ici.
Besoin d'un développement AutoCAD (AutoLISP, ObjectARX, .NET, VBA) ? Contactez-moi pour un devis gratuit.