Archives de catégorie : personnalisation

image

AutoLISP : l’aide cachée qui vous fait gagner du temps dans Visual LISP

Que l’on débute en AutoLISP, qu’on reprenne un code existant ou qu’on remette le nez dans un vieux projet, on a toujours besoin d’un petit rappel sur certaines fonctions.

Bonne nouvelle : pas besoin de fouiller Google à chaque fois — Visual LISP intègre déjà une aide contextuelle… à condition de savoir où la trouver !

vlide aide instruction autolisp visual lisp

Exemple de la capture d’écran ci dessous :

  1. Sélectionnez le nom de la fonction (princ, tblnext, entget…) dans votre éditeur Visual LISP.
  2. Cliquez sur l’icône d’aide contextuelle (celle du point d’interrogation rouge).
  3. AutoCAD ouvre directement la documentation officielle Autodesk à la bonne page.

🧭 En une seconde, vous savez exactement à quoi sert la fonction, sa syntaxe et ses paramètres.

🎯 Conclusion

La productivité en AutoLISP ne passe pas seulement par la vitesse d’écriture, mais aussi par la rapidité à retrouver le sens du code.

L’aide intégrée de Visual LISP est un réflexe simple, souvent méconnu, qui fait gagner un temps fou lors de la maintenance de vos developpement autolisp ou scripts avancée avec du lisp.

image 2

AutoLISP moderne !

AutoLISP moderne : tirer le meilleur de Visual Studio Code et du débogueur VLIDE

Depuis des années, le développement AutoLISP repose sur l’éditeur historique Visual LISP (VLIDE) intégré à AutoCAD (introduit avec la version 14).
Cependant, VLIDE n’est plus disponible dans AutoCAD LT 2024 et versions ultérieures.

Aujourd’hui, avec des environnements modernes comme Visual Studio Code, il devient possible de développer, organiser et maintenir son code AutoLISP bien plus efficacement, tout en conservant la puissance du débogueur intégré d’AutoCAD.

Pour les utilisateurs d’AutoCAD LT, il reste tout à fait envisageable de travailler “à l’ancienne”, c’est-à-dire en éditant le code dans un éditeur externe — mais cette fois avec Visual Studio Code, bien plus puissant et ergonomique que Notepad++.

🎯 Le concept : le meilleur des deux mondes

L’idée est simple :

  • 🧠 Écrire, organiser et refactoriser ton code dans Visual Studio Code ;
  • ⚙️ Déboguer et compiler dans VLIDE (le moteur natif d’AutoCAD).

Ce duo permet d’allier productivité, lisibilité et stabilité du code sans casser la compatibilité avec AutoCAD.

🧩 Comparatif rapide

VS CodeVLIDE
🔍 Recherche multi-fichiers, navigation rapide🧠 Débogage pas à pas, exécution partielle
🌳 Arborescence claire du projet⚙️ Compilation directe en .fas / .vlx
🧩 Extensions (AutoLISP, Git, snippets)📚 Aide intégrée sur les fonctions AutoLISP
🎨 Environnement moderne et ergonomique💡 Stabilité et compatibilité totale avec AutoCAD

Astuce : gérer l’encodage historique ANSI (Windows-1252)

Les fichiers AutoLISP d’origine sont souvent enregistrés en ANSI (Windows-1252), le format utilisé par l’éditeur Visual LISP (VLIDE). Pour garantir la compatibilité avec AutoCAD, il est recommandé de conserver cet encodage, surtout lors du débogage ou de la compilation dans VLIDE.

Voici comment ouvrir ou convertir un fichier .lsp en ANSI avec les deux éditeurs les plus courants :

🧠 Visual Studio Code

Changement d'encodage ANSI Windows-1252 dans Visual Studio Code

1️⃣ Cliquez sur l’encodage en bas à droite → 2️⃣ Choisissez Reopen with EncodingWestern (Windows-1252).

🧩 Notepad++

Changement d'encodage ANSI dans Notepad++
1️⃣ Menu Encodage → sélectionnez ANSI ou utilisez Convertir en ANSI pour réenregistrer le fichier au bon format.


✅ Une fois ces paramètres appliqués, vos fichiers .lsp s’ouvriront correctement dans AutoCAD et dans VLIDE, sans perte de caractères accentués ni corruption du code source.

🔄 Cycle de développement

  • Édition / refactorisation : dans VS Code (navigation, recherche, nettoyage du code).
  • Chargement : dans AutoCAD avec (load "mon_fichier.lsp").
  • Débogage : dans VLIDE, ligne par ligne, inspection des variables.
  • Compilation : création du projet .prj et génération du .fas ou .vlx.

✅ Bénéfices

  • 💨 Productivité accrue (VS Code pour la navigation et la recherche)
  • 🧱 Séparation claire entre code source et compilation
  • 🧠 Débogage intelligent avec VLIDE
  • 🔍 Traçabilité et gestion de version avec Git
  • 📚 Code plus propre, prêt pour le packaging ApplicationPlugins
animation simple dans AutoCAD LT à partir d’un bloc dynamique

🎬 Présentation d’une animation simple dans AutoCAD LT à partir d’un bloc dynamique

Dans le cadre de mes expérimentations pédagogiques autour d’AutoCAD LT, j’ai réalisé une animation simple en utilisant un bloc dynamique illustré par des smileys. L’objectif était de démontrer comment manipuler la visibilité d’éléments via des calques, sans recourir à des outils externes.

🔧 Méthodologie utilisée :

  • Création d’un bloc dynamique intégrant plusieurs représentations de smileys.
  • Chaque smiley est affecté à un calque distinct (Calque1 à Calque6).
  • L’animation est obtenue en activant chaque calque à tour de rôle tout en désactivant les autres, créant ainsi une séquence visuelle dans AutoCAD.

💡 Intérêts pédagogiques et techniques :

  • Illustrer plusieurs états d’un objet dans un même dessin.
  • Montrer les possibilités d’animation in situ avec les seuls outils AutoCAD et quelques instructions Autolisp de base .
  • Souligner l’efficacité des blocs dynamiques couplés à une gestion de calques via script.

📌 Le script AutoLISP utilisé sera bientôt disponible en téléchargement sur mon site.
🔐 Pour celles et ceux qui souhaitent l’obtenir en avant-première, vous pouvez me contacter en message privé.

AutoCAD filtres de selection objets

Macro avec un filtre de sélection d’objets

🔹 Ma méthode préférée ? La sélection par filtre ! 🔹

Un outil puissant qui permet de créer et d’enregistrer des filtres complexes, réutilisables en quelques clics. Contrairement au filtre rapide, qui nécessite une reconfiguration à chaque utilisation, cette méthode apporte un vrai gain de temps, surtout sur les projets complexes ! ⏳

💡 Astuce : Même sous AutoCAD LT, cette approche permet d’optimiser vos sélections et workflows.

Pour ceux qui codent en AutoLISP ou débutent, c’est une excellente base pour développer des filtres sur mesure et automatiser encore plus votre travail grâce à la sélection par filtre d’objets ! 🚀


📌 Fonctionnement du fichier filter.nfl

Lors de l’utilisation de la commande FILTER,

AutoCAD filtres de selection objets

AutoCAD génère un fichier filter.nfl qui sauvegarde vos différents ‘filtres nommés’ dans le dossier Support.

Ce fichier stocke les filtres enregistrés et peut être utilisé pour appliquer des sélections avancées.

🔎 Trouver le fichier filter.nfl en AutoLISP création d’une macro.

;; Macro pour une palettes d'outils

^c^c(command "AI_EDITCUSTFILE" (findfile "filter.nfl"))

🔍 Recherche de l’emplacement du fichier :

Exécutez cette instruction AutoLISP → (findfile "filter.nfl")

Cette fonction renvoie le chemin complet du fichier, comme illustré ci-dessous, s’il est trouvé. Sinon, elle retourne nil s’il est introuvable.

Affiche l'emplacement du fichier filter.nfl

📄 Exemple de fichier filter.nfl :

Filter.nfl  --  Ne modifiez pas ce fichier.
:ai_lisp|CercleBlocText
(-4 . "<OR")
(0 . "CIRCLE")
(0 . "INSERT")
(0 . "*TEXT")
(-4 . "OR>")
:ai_str|CercleBlocText
** Début   OR
Objet		=	Cercle
Objet		=	Bloc
Objet		=	Texte
** Fin      OR

📌 Construction d’un filtre de sélection en AutoLISP

Voici un exemple de code permettant de créer un filtre pour sélectionner tous les cercles, blocs et textes dans un dessin :

;;
;; Exemple de commande rapide pour appliquer un filtre de sélection
;; Définition de la commande $f001
;;
(defun c:$f001 ( / )
  ;; Liste des critères de filtre
  ;; (Copier-coller les lignes du fichier filter.nfl ici)
  (setq LstFiltre '(
    (-4 . "<OR")        ;; Début d'une condition OR 'ou'
    (0 . "CIRCLE")      ;; Sélectionne les cercles
    (0 . "INSERT")      ;; Sélectionne les blocs insérés
    (0 . "*TEXT")       ;; Sélectionne tout type de texte
    (-4 . "OR>")        ;; Fin de la condition OR 'ou'
  ))
  ;; Exécute le filtre et sélectionne les objets correspondants dans le dessin
  (setq JeuxSelection (ssget "X" LstFiltre))
)

Avec cette approche, vous pouvez automatiser la sélection d’objets spécifiques et améliorer considérablement votre efficacité sur AutoCAD ! 💪

Petit rappel : lors d’une sélection, n’oubliez pas la commande Précédent.