Automatiser l'ouverture d'Excel lors d'un DWG dans AutoCAD

Est-il possible, lors de l’ouverture d’un fichier DWG dans AutoCAD, d’ouvrir automatiquement un fichier Excel associé ?

Oui, il est possible d’automatiser l’ouverture d’un fichier Excel lors de l’ouverture d’un fichier DWG dans AutoCAD. Cette automatisation peut être réalisée en utilisant des scripts ou des routines LISP.

Voici une approche générale utilisant LISP, qui est une méthode courante et efficace pour ce type de tâche dans AutoCAD :

Méthode par LISP :

  1. Création du fichier LISP (.lsp) :

    • Ouvrez un éditeur de texte simple (comme le Bloc-notes sous Windows, ou TextEdit sous macOS).
    • Copiez-collez le code LISP suivant, en adaptant les chemins des fichiers :
    (defun c:OuvrirExcelDWG () 
      (vl-load-com) ; Charge les fonctions Visual LISP
      (setq dwg_path (getvar "DWGPREFIX")) ; Récupère le chemin du DWG courant
      (setq dwg_name (substr (getvar "DWGNAME") 1 (- (strlen (getvar "DWGNAME")) 4))) ; Récupère le nom du DWG sans extension
      (setq excel_file (strcat dwg_path dwg_name ".xlsx")) ; Construit le chemin complet du fichier Excel attendu (suppose même nom et extension .xlsx)
      
      ; Vérifie si le fichier Excel existe
      (if (findfile excel_file)
          (progn
            (princ (strcat "Ouverture du fichier Excel : " excel_file "\n"))
            ; Lance Excel et ouvre le fichier spécifié
            (command "_SHELL" (strcat "start excel \"" excel_file "\"")) 
            (princ "Fichier Excel ouvert avec succès.")
          )
          (progn
            (princ (strcat "Le fichier Excel " excel_file " n'a pas été trouvé. Aucune action effectuée."))
          )
      )
      (princ)
    )
    
    ; Optionnel : Charger automatiquement cette routine à l'ouverture d'AutoCAD
    ; Pour cela, ajoutez la ligne (c:OuvrirExcelDWG) à votre fichier acad.lsp ou acad.mnl
    
  2. Adaptation du code LISP :

    • Assurez-vous que le nom du fichier Excel est bien le même que le fichier DWG, avec l’extension .xlsx (ou .xls si vous utilisez des versions plus anciennes d’Excel). Si votre convention de nommage est différente, modifiez la ligne (setq excel_file ...) en conséquence.
    • Si le fichier Excel n’est pas dans le même répertoire que le fichier DWG, vous devrez spécifier le chemin complet dans la variable excel_file.
  3. Chargement et exécution du fichier LISP :

    • Chargement manuel : Tapez APPLOAD dans la ligne de commande AutoCAD, naviguez jusqu’à votre fichier .lsp, sélectionnez-le et cliquez sur ‹ Charger ›.
    • Chargement automatique : Pour que cette routine s’exécute à chaque ouverture de fichier DWG, vous pouvez l’ajouter au fichier acad.lsp ou acad.mnl (qui sont chargés automatiquement au démarrage d’AutoCAD). Si ces fichiers n’existent pas, vous pouvez les créer.
    • Exécution : Une fois chargé, vous pouvez exécuter la commande OuvrirExcelDWG dans la ligne de commande AutoCAD. Si vous avez configuré le chargement automatique, le fichier Excel s’ouvrira dès que vous ouvrirez un fichier DWG correspondant.

Considérations importantes :

  • Chemins absolus vs relatifs : L’exemple utilise des chemins relatifs basés sur le répertoire du DWG. Si vos fichiers Excel sont stockés dans un emplacement centralisé, vous devrez utiliser des chemins absolus.
  • Gestion des erreurs : Le script vérifie l’existence du fichier Excel. Vous pourriez ajouter des contrôles supplémentaires pour la gestion des erreurs, par exemple si Excel n’est pas installé.
  • Versions d’AutoCAD : Cette méthode est compatible avec AutoCAD 2020 et les versions ultérieures, et utilise des fonctions Visual LISP courantes.
  • Alternatives : Pour des flux de travail plus complexes ou une intégration plus poussée, des solutions basées sur VBA ou .NET pourraient être envisagées, mais LISP est souvent la solution la plus rapide pour ce besoin spécifique.