Bonjour à tous,
J'ai écrit un programme PowerShell qui teste une série de fichiers et en fonction de ces tests génère un script autocad.scr à la volée dynamiquement. Ce programme PowerShell lance alors AutoCAD en passant le script en paramètre "/b".
Si j'exécute ce programme PowerShell depuis l'interface PowerShell , tout se passe à merveille.
Si j'exécute ce programme depuis une tâche planifiée, mais que j'autorise ce script à s'exécuter seulement quand l'utilisateur est connecté, cela se passe aussi très bien. On voit alors le script PowerShell qui s'exécute, AutoCAD qui se lance et exécute le script, etc.
Par contre, si je demande à ce programme de s'exécuter que l'utilisateur soit connecté ou pas, là, rien ne va plus. Le programme PowerShell s'exécute, crée le .scr, lance AutoCAD (on le voit via le task manager), mais AutoCAD ne fait rien. Comme si AutoCAD avait besoin d’interagir avec un affichage à l'écran ou que sais-je. Faut-il mettre une option au démarrage d'AutoCAD pour qu'il puisse s'exécuter en arrière plan ? Je n'ai rien trouvé de tel ! Je sais que certains programmes ont une option de démarrage lorsqu'ils doivent s'exécuter en arrière plan.
Merci pour votre aide
Résolu ! Accéder à la solution.
Résolu par didier_lourdelle. Accéder à la solution.
Résolu par Caderix. Accéder à la solution.
Bonjour,
Vous pouvez peut-être essayer d'utiliser AutoCAD Core Console pour une exécution sans interface graphique.
https://help.autodesk.com/view/OARX/2025/FRA/?guid=AUTOCAD_CORE_CONSOLE
Cordialement
Eric GUELEN
Formateur AutoCAD
Site Internet
Je prolonge la réponse de @Caderix .
Votre approche fonctionne bien dans un environnement interactif, mais l'exécution d'AutoCAD en arrière-plan via une tâche planifiée pose souvent des difficultés, notamment lorsque l'utilisateur n'est pas connecté.
Une solution à envisager est d'utiliser AutoCAD Core Console (accoreconsole.exe), disponible depuis AutoCAD 2013.
Cette version allégée d'AutoCAD, sans interface graphique, est spécialement conçue pour exécuter des scripts en tâche de fond, ce qui la rend idéale pour les tâches planifiées, même sans utilisateur connecté.
Il est possible de lancer plusieurs instances d'accoreconsole.exe en parallèle sur différents fichiers .dwg.
Avec les processeurs actuels, c'est la meilleure solution lorsqu'il y a un grand nombre de fichiers à traiter.
Vous trouverez plus de détails sur cette fonctionnalité dans cet article de 2012
https://through-the-interface.typepad.com/through_the_interface/2012/02/the-autocad-2013-core-consol...
Merci pour vos réponses.
Je ne connaissais absolument pas. Je teste cela et reviens ici (j'espère rapidement) pour vous confirmer que cela fonctionne.
Bonne journée
Bonjour à tous,
Effectivement, cela semble bien être la solution. Je vois une fenêtre qui s'ouvre, qui fait des choses et qui se referme.
Toutefois, avant de valider la solution, j'ai un autre soucis. Je ne sais pas si c'est mieux de la mettre ici à la suite ou créer un nouveau sujet.
Mon souci désormais, c'est que j'ai l'impression que le script ne s'exécute pas dans sa globalité. J'ai enlevé la ligne _QUIT, mais la fenêtre se ferme tout de même. Je ne sais donc pas voir où mon script autocad coince. Encore une fois, mon script fonctionnait parfaitement en le lançant avec "un vrai" (un full) autocad et les interaction avec l'écran.
Une idée de comment voir ce qui coince dans le cas de l’utilisation de accoreconsole.exe ?
Merci
Bonjour,
Je ne sais pas si cela fonctionne aussi avec l'AutoCAD Core Console, mais on peut créer un fichier journal de ce qui se passe dans AutoCAD en utilisant les variables LOGFILEMODE, LOGFILEPATH et LOGFILENAME.
A tester.
Cordialement
Eric GUELEN
Formateur AutoCAD
Site Internet
J'ajouterai à la réponse de @Caderix
Sans voir le script, il est difficile d'identifier exactement ce qui ne va pas !
Cependant, depuis des années, je préfère utiliser des commandes via l'instruction AutoLISP "command" , par exemple :
(command "_zoom" "_e")
Cela permet d'éviter certains problèmes de base, comme les espaces en trop ou manquants.., qui peuvent survenir en envoyant simplement des commandes.
De plus, j'ajoute régulièrement des lignes pour afficher des messages intermédiaires dans la ligne de commande AutoCAD, comme ceci :
(prompt "\nTraitement de la partie XXXX terminé.")
Cela ne nécessite pas beaucoup de compétences en AutoLISP pour utiliser les instructions command
et prompt
.
Cela permet de tester rapidement le fichier .scr
en le glissant-déposant simplement dans un AutoCAD LT classique, afin de vérifier si le traitement s'exécute correctement dès le départ.
Alors, pour être tout à fait honnête, personnellement je n'ai aucune connaissance en script AutoCad. Le script de base a été écrit par un dessinateur. Moi, je ne fait que le générer depuis un PowerShell pour qu'il s'adapte dynamiquement.
Voici un exemple. Devrait-il être réécrit ?
Vous travaillez déjà avec un script bien spécifique utilisant des plugins. Plusieurs possibilités :
En théorie, le plug-in est chargé puisque je passe le paramètre /p à accorconsole. Vu les liens entre autodesk et eptura(archibus), j'ose espérer que le plug-in est compatible.
Mais effectivement c'est un de mes inquiétudes.
Je vais déjà commencer par sortir l'output dans un fichier pour voir où cela coince. Malheureusement, je n'aurai pas l'occasion de voir cela aujourd'hui. Déjà MERCI
Effectivement, dans les logs, j'obtiens
Commande: AFM_CATALOG
Commande inconnue "AFM_CATALOG". Appuyez sur F1 pour obtenir de l'aide.
Pourtant je définis bien
$PathAutocad="C:\Program Files\Autodesk\AutoCAD 2024\accoreconsole.exe"
$WorkdirAutocad="C:\Program Files\Autodesk\AutoCAD 2024\UserDataCache\"
$ArglistAutocad='/s "C:\Users\slhoir\Desktop\Scripts\MAD\Routine_MAD.scr" /product ACAD /language "fr-FR" /p "Smart Client Extension for AutoCAD"'
Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.