Dépannage LISP AutoCAD : Identifier les erreurs de chargement au démarrage

Comment identifier un fichier LISP, FAS ou VLX défectueux qui empêche le chargement d’autres applications au démarrage d’AutoCAD via la suite de démarrage, et où est gérée cette liste d’applications ?

L’erreur ‹ type d’argument incorrect: stringp nil › indique généralement un problème de syntaxe ou de données dans un fichier LISP, FAS ou VLX, qui peut bloquer le chargement des scripts suivants. La liste des applications de la suite de démarrage d’AutoCAD n’est pas stockée dans un fichier texte unique et directement éditable, mais est gérée par le logiciel lui-même et stockée dans le Registre Windows. L’ordre de chargement n’est pas alphabétique mais dépend de l’ordre d’ajout ou de l’ordre interne du registre.

Voici une démarche experte pour identifier le fichier problématique et gérer vos applications LISP au démarrage :

  1. Comprendre la Suite de Démarrage AutoCAD

    • La liste des applications est accessible via la commande APPLOAD (ou _APPLOAD), puis en cliquant sur le bouton « Contenu… » dans l’onglet « Suite de démarrage ».
    • AutoCAD charge ces fichiers dans l’ordre où ils apparaissent dans cette liste, qui n’est pas nécessairement alphabétique. Une erreur dans un fichier peut interrompre le chargement des suivants.
  2. Méthodes d’Identification du LISP Problématique

    • Méthode A : Désactivation Séquentielle (Manuelle)

      1. Ouvrez la boîte de dialogue APPLOAD et accédez à la « Suite de démarrage » via le bouton « Contenu… ».
      2. Notez la liste actuelle de vos fichiers.
      3. Supprimez temporairement tous les fichiers de la liste, sauf un.
      4. Redémarrez AutoCAD. Si aucune erreur n’apparaît, le fichier testé est probablement sain.
      5. Répétez l’opération en ajoutant les fichiers un par un, en redémarrant AutoCAD à chaque ajout, jusqu’à ce que l’erreur réapparaisse. Le dernier fichier ajouté est le coupable.
    • Méthode B : Regroupement et Débogage (Inspirée de la suggestion de Luna)

      1. Créez un fichier LISP maître (par exemple, mon_startup.lsp) et placez-le dans un chemin de support AutoCAD.
      2. Dans ce fichier maître, utilisez la fonction (load) pour charger vos autres LISPs. Entourez chaque appel (load) de messages (princ) pour suivre le processus :
        (princ "\nChargement de CHANGER HAUTEUR TEXTE.FAS...")
        (if (load "CHANGER HAUTEUR TEXTE.FAS" nil)
            (princ " [OK]")
            (princ " [ERREUR]")
        )
        (princ "\nChargement de ROTATION.FAS...")
        (if (load "ROTATION.FAS" nil)
            (princ " [OK]")
            (princ " [ERREUR]")
        )
        ; Répétez pour tous vos fichiers
        
      3. Ajoutez uniquement ce fichier mon_startup.lsp à la suite de démarrage d’AutoCAD.
      4. Redémarrez AutoCAD. La ligne de commande affichera les messages de chargement et indiquera quel fichier a échoué.
      5. Pour un débogage plus précis, si le fichier problématique est un .lsp, vous pouvez copier son contenu directement dans mon_startup.lsp et insérer des (princ) à des points clés pour isoler la ligne de code exacte qui génère l’erreur.
    • Méthode C : Surveillance de la Ligne de Commande

      • La ligne de commande d’AutoCAD est votre premier outil de diagnostic. Les messages d’erreur LISP y sont généralement affichés. Gardez-la ouverte et surveillez-la attentivement lors du démarrage.
      • Pour les développeurs LISP, l’utilisation de (vl-catch-all-apply 'load '("chemin/fichier.lsp")) permet de tenter de charger un LISP et de capturer l’erreur sans interrompre l’exécution du reste du code, ce qui est utile pour des scripts de démarrage plus robustes.
  3. Bonnes Pratiques de Gestion des LISPs au Démarrage

    • Utiliser ACADDOC.LSP ou ACAD.LSP : Plutôt que de charger 156 fichiers individuellement dans la suite de démarrage, il est fortement recommandé d’utiliser un fichier ACADDOC.LSP (chargé à chaque ouverture de dessin) ou ACAD.LSP (chargé une fois par session AutoCAD) comme point d’entrée unique. Ce fichier maître se chargera ensuite de charger tous vos autres LISPs de manière structurée, comme décrit dans la Méthode B. Cela simplifie grandement la gestion, le déploiement et le débogage.
    • Gestion des Erreurs dans les LISPs : Intégrez des gestionnaires d’erreurs ((defun *error* (msg) ...) ) dans vos LISPs pour qu’ils se comportent de manière plus robuste en cas de problème, évitant ainsi de bloquer AutoCAD ou les scripts suivants.
    • Chemins de Support : Assurez-vous que le répertoire contenant vos fichiers LISP est inclus dans les « Chemins de recherche des fichiers de support » d’AutoCAD (OPTIONS → onglet « Fichiers »). Cela garantit qu’AutoCAD peut trouver vos fichiers sans spécifier le chemin complet à chaque fois.
    • Commentaires et Documentation : Documentez vos fichiers LISP avec des commentaires clairs pour faciliter la maintenance et la compréhension future, surtout si d’autres utilisateurs ou vous-même devez y revenir plus tard.

En suivant ces étapes, vous devriez pouvoir identifier rapidement le fichier LISP défectueux et optimiser la gestion de vos applications au démarrage d’AutoCAD.