Synthèse de la discussion du forum CADxp : L’outil AcCoreConsole pour le traitement par lots

Synthèse de la discussion du forum CADxp : L’outil AcCoreConsole pour le traitement par lots

1.0 Introduction : Le potentiel et les enjeux de l’automatisation sans interface

L’automatisation des tâches répétitives représente un enjeu stratégique majeur dans l’univers de la conception assistée par ordinateur (CAO), permettant des gains de productivité considérables. Au sein de l’écosystème Autodesk®, l’outil AcCoreConsole constitue une solution native puissante pour le traitement par lots, bien que souvent méconnue. Apparu avec AutoCAD® 2013, il permet de piloter le moteur principal du logiciel sans lancer son interface graphique, offrant ainsi des performances inégalées pour l’exécution de scripts.

Ce document propose une synthèse d’une discussion technique particulièrement riche qui s’est déroulée sur le forum CADxp entre 2016 et 2017. L’objet principal de ces échanges était l’exploration de l’exécutable AcCoreConsole.exe pour l’automatisation de tâches sur des ensembles de fichiers DWG™.

Au-delà de ce thème central, plusieurs sujets connexes ont émergé, illustrant la dynamique d’une communauté d’experts :

  • Le développement et le test d’un utilitaire communautaire, BatchScript.exe, visant à simplifier l’usage de la console.
  • La découverte progressive de limitations techniques fondamentales, notamment l’incompatibilité avec Visual LISP et la non-prise en charge de certaines commandes.
  • Le partage de techniques de scripting avancées pour répondre à des cas d’usage concrets, comme le traitement récursif des sous-dossiers.

Le fil de discussion, qui s’est étendu sur près d’un an, révèle une progression logique, partant de l’enthousiasme initial pour les performances de l’outil jusqu’à une compréhension approfondie de son périmètre d’application et de ses contraintes.


2.0 Déroulement Chronologique de la Discussion

2.1 Lancement et premiers retours d’expérience (Février 2016)

La phase initiale d’une nouvelle technologie ou méthode est cruciale. Les tests menés par la communauté permettent non seulement de valider son potentiel, mais aussi d’en identifier rapidement les premiers écueils. La discussion sur AcCoreConsole a parfaitement illustré ce processus.

Tout a commencé par un message de l’utilisateur (gile) le 7 février 2016. Il y présente AcCoreConsole comme un outil apparu avec AutoCAD® 2013, permettant de piloter le « cœur » d’AutoCAD® (accore.dll) en ligne de commande. Il met en avant son principal atout : une vitesse d’exécution « imbattable » pour les traitements par lots. Pour faciliter son adoption, il partage un exemple de fichier .bat ainsi qu’un utilitaire de sa création, BatchScript.zip, conçu pour simplifier le processus.

L’utilisateur lili2006 a été l’un des premiers à tester la solution. Ses retours confirment immédiatement la vitesse « plus que rapide » du traitement. Cependant, un test plus ambitieux sur un très grand nombre de fichiers avec un script complexe a mis en lumière un premier problème : le blocage du programme.

Face à ce retour, (gile) a rapidement réagi. Il a mis à jour son utilitaire BatchScript (fourni via BatchScript.zip) pour offrir un meilleur retour visuel sur la progression du traitement. Plus important encore, il a fourni une version optimisée du script de lili2006, démontrant que le blocage initial n’était pas dû à une faille de AcCoreConsole mais à un script non-robuste, un enseignement clé pour tout processus d’automatisation. Cette première phase d’échanges a permis de valider le potentiel de performance exceptionnel de AcCoreConsole, tout en soulignant l’importance critique de la robustesse des scripts et la nécessité d’une approche de test progressive avant un déploiement à grande échelle.

2.2 Aparté sur le développement communautaire : le cas de l’utilitaire SAS (Février - Mars 2016)

Les forums techniques sont souvent le théâtre de dynamiques humaines qui dépassent le simple échange de code. Le développement d’outils par des passionnés repose en grande partie sur la motivation, elle-même nourrie par les retours des utilisateurs.

Dans son message initial, (gile) avait suggéré à Eric, le créateur du populaire utilitaire SAS (SuperAutoScript), d’envisager l’intégration de AcCoreConsole pour améliorer les performances de son programme. La réponse d’Eric offre un aperçu sincère des défis du développement communautaire. Il explique avoir déjà exploré cette piste mais avoir rencontré des difficultés techniques. Plus fondamentalement, il confie son découragement face au manque de retours, qu’ils soient positifs ou négatifs, sur son logiciel SAS au cours des années précédentes.

La réaction de l’utilisateur Dubloc est venue apporter un contre-exemple direct et positif. Il a assuré à Eric que son outil SAS était en réalité « très apprécié et utilisé » au sein de son bureau d’études, illustrant de manière tangible l’impact direct et positif que peut avoir un simple message de feedback sur la motivation d’un développeur. Cet échange, bien que bref, rappelle la dimension collaborative et humaine essentielle au partage de connaissances.

2.3 Résolution d’un problème pratique : le traitement des sous-dossiers (Mars - Avril 2016)

Après les validations de principe, la discussion s’est orientée vers la résolution de problèmes concrets. L’un des défis les plus courants en traitement par lots est l’application d’un script non pas à un seul dossier, mais à une arborescence complète de fichiers.

L’utilisateur SF.Designer a soumis précisément cette problématique : comment modifier un script batch pour qu’il recherche et traite tous les fichiers correspondant au masque *FAC*.dwg dans un dossier source ainsi que dans tous ses sous-dossiers.

La solution, trouvée et partagée quelques semaines plus tard par SF.Designer lui-même, est un point clé de la discussion. Il a proposé deux approches efficaces utilisant les capacités natives de la ligne de commande Windows :

  • Utilisation de la commande forfiles : Cette commande permet de parcourir une arborescence de fichiers et d’exécuter une autre commande pour chaque fichier trouvé.
  • Création d’une liste de fichiers : Cette méthode en deux étapes consiste d’abord à générer un fichier texte (.txt) contenant la liste complète des chemins de fichiers, puis à parcourir ce fichier ligne par ligne pour lancer le traitement.

Cet échange est un exemple parfait de résolution de problème pratique et de partage de connaissance, offrant des solutions directement applicables à d’autres membres de la communauté.

2.4 Identification des limitations techniques fondamentales (Juillet 2016 - Janvier 2017)

La phase la plus instructive de la discussion a été celle de la découverte des limites inhérentes à AcCoreConsole. Comprendre ce qu’un outil ne peut pas faire est aussi important que de savoir ce qu’il peut faire.

2.4.1 Incompatibilité avec Visual LISP (VLISP)

Le premier obstacle majeur a été rapporté par Goldorak44. Il a constaté qu’un code simple en AutoLISP s’exécutait perfectly, tandis qu’un code équivalent utilisant des fonctions Visual LISP (préfixées par vl-, vla-, vlax-) échouait systématiquement.

L’explication technique fournie par (gile) a été déterminante. Il a clarifié que AcCoreConsole est basé sur la bibliothèque accore.dll, qui constitue le noyau d’AutoCAD®. Ce noyau est partagé avec la version Mac du logiciel, laquelle ne supporte pas l’API COM/Automation, une technologie spécifique à l’écosystème Windows sur laquelle repose l’intégralité de Visual LISP. Cette incompatibilité est donc fondamentale et non contournable. En guise d’alternative, l’utilisateur Patrick_35 a suggéré la piste de ObjectDbx pour des manipulations d’objets sans interface.

2.4.2 Commandes non prises en charge (ex: ETRANSMIT)

Plusieurs mois plus tard, l’utilisateur jcouaknine a rencontré un second problème majeur en tentant d’automatiser la commande -etransmit. La console retournait systématiquement une erreur « commande inconnue », alors même que son script LISP fonctionnait parfaitement dans une session AutoCAD® complète.

La réponse finale de (gile) a apporté la conclusion de cette exploration technique : la console AutoCAD® ne reconnaît pas l’intégralité des commandes disponibles dans la version complète. Les commandes liées à des modules complexes (fichiers ARX) ou dépendantes de l’interface utilisateur ne sont généralement pas supportées. Cette limitation était également la cause probable du premier échec rapporté par jcouaknine avec ses routines LISP, qui devaient certainement appeler des commandes non supportées par la console.

La compréhension de ces deux limitations — l’incompatibilité avec VLISP et la liste restreinte de commandes — est donc essentielle pour évaluer la pertinence de AcCoreConsole pour un besoin d’automatisation donné.


3.0 Conclusion : Synthèse des apprentissages clés

Le parcours de la communauté CADxp autour de AcCoreConsole est exemplaire. Il illustre le passage de l’enthousiasme initial pour une promesse de performance à une compréhension mature et nuancée du périmètre d’application réel de l’outil et de ses contraintes techniques. Pour tout utilisateur envisageant d’adopter cette solution, les enseignements clés de cette discussion peuvent être résumés comme suit :

  • Performance : AcCoreConsole reste une solution d’une vitesse imbattable pour le traitement par lots de tâches simples (purges, modifications de variables, etc.) via des scripts AutoCAD® (.scr) bien testés.
  • Limitations : Avant de développer un script complexe, il est impératif de vérifier deux points critiques :
    1. Le script ne doit pas faire appel à des fonctions Visual LISP (API COM). Seul l’AutoLISP « pur » est supporté.
    2. Toutes les commandes AutoCAD® utilisées dans le script doivent faire partie de la liste restreinte des commandes supportées par la console.
  • Bonnes Pratiques : L’expérience des testeurs a montré qu’il est indispensable de valider un script sur un petit échantillon de fichiers avant de le lancer sur un grand volume de données, afin de prévenir les blocages et les erreurs inattendues.
  • Alternatives : Pour des besoins plus complexes comme le parcours de sous-dossiers, les solutions de scripting partagées par la communauté (via des commandes système comme forfiles) sont des compléments efficaces et robustes.

4.0 Référence

Pour consulter l’intégralité des échanges, des extraits de code et des détails techniques, les lecteurs sont invités à se référer à la discussion originale intitulée « AcCoreConsole » sur le forum CADxp, initiée par l’utilisateur (gile) en février 2016.