Jump to content
nouveau

CuraEngine et python

Recommended Posts

Posted (edited) · CuraEngine et python

Bonjour, je tente depuis presque 2 semaines de faire communiquer python et CuraEngine sans résultat jusqu'à présent.

j'utilise le code :

from os import popen

CheminSortie =r'C:\...\Sortie.gcode'
CheminFichier =r'C:\...\Box.stl'
Profile =r'D:\...\ultimaker.def.json'

sortie = popen(f"CuraEngine slice -v -p -j {Profile} -o {CheminSortie} -l {CheminFichier}'", 'r',1)
print(sortie)
print(sortie.read())

Cela doit normalement renvoyer la sortie de la commande mais il ne revoie rien.

J'ai aussi ajouté les chemins vert curaEngine aux variable d'environnement pour être tranquille.

Après avoir tournée en rond j'ai tester ceci directement dans l'invite de commande (je suis sous window 7).

CuraEngine slice -v -p -j "D:\...\tam.def.json" -o "C:\...\Sortie.gcode" -l "C:\...\Box.stl" > Sortie.txt

le fichier Sortie.txt et aussi complètement vide pour être certain j'ai ensuite fait ceci

help > help.txt

cette fois le fichier help.txt contient bien l'aide comme prévus.

Si qu'elle qu'un peux m'expliquer ce phénomène je suis preneurs.

J'essayer de récupérer via python les 12 dernières lignes qui apparaissaient, celle qui donne l'estimation de volume de temps et les différent temps de calcule 

merci pour votre aide

bonne soirée

Edited by nouveau
la traduction de google qui fichu le bazar

Share this post


Link to post
Share on other sites
Posted · CuraEngine et python

Est-ce qu'il te manque pas des paramètres dans ta commande ? Sur ce thread, ça semble plus complet qu'ici. Peut-être le reproduire à l'identique comme tout est expliqué et ensuite voir pour l'intégration en Python ?

Ce sujet m'intéresse beaucoup alors n'hésite pas à détailler 😛 

 

Share this post


Link to post
Share on other sites
Posted (edited) · CuraEngine et python

Bonjour,je viens d'essaie ce qui été indiquer sur la page indiquer cela me donne ne donne rien.

 

La seul chose qui change entre sa commande et la mien ce qu'il a modifier certain paramètre d’impression, via l’argument -s. Dans un premier temps modifier les paramètre de tranchage ne m'intéresse pas, mais je l'envisage pour la suite, mais je pensée plutôt utiliser des fichier ".json" cela permet de passer plus argument sans surcharger le code.

 

Apres j'ai tenter de passer "help" a la fonction "os.popen" et la sortie fut tout a fait correcte s'est pour cette raison que je pense que qu'il y a qu'elle chose de différents entre CuraEngine et les autre fonction. Mais je ne trouve pas quoi.

 

Edited by nouveau

Share this post


Link to post
Share on other sites
Posted · CuraEngine et python

Ok, je me documente sur le sujet, en attendant il y a déjà le repo officiel

Ensuite ce lien à l'air de bien expliquer ce qu'on peut faire en lignes de commande.

N'hésite pas si tu as trouvé un truc en plus de ton côté 😃

Share this post


Link to post
Share on other sites
Posted · CuraEngine et python

ok tu si tu veux l'intégralité des commande curaEngine et leur usage

tu peux ouvrir l'invite de commande de window 

taper

cd C:\Program Files\Ultimaker Cura 3.6

CuraEngine - help

et tu auras tu se dont tu a besoin pour les utiliser.

Je continue a tenté d’éclairesire ce mystère. 

Dans qu'elle finaliter tu aurais besoin de dialoguer  en python avec cura  ?

Share this post


Link to post
Share on other sites
Posted (edited) · CuraEngine et python

Merci pour l'info.

 

Regarde par hasard s'il est possible d'activer un logger qui soit verbeux et de récupérer ce qu'il dit. Il y a probablement une erreur (fichier de conf, variables d'environnement, etc) qui est échappée et que tu ne vois pas.

 

Sinon je n'ai pas de finalité avec Python, mais bien avec l'invite de commande (je travaille en NodeJs). Et il se trouve que cette commande sera la même dans les deux cas 🙂. C'est pour gérer ma ferme

Edited by osmoz3d

Share this post


Link to post
Share on other sites
Posted · CuraEngine et python

En utilisant ça :

CuraEngine.exe slice -v -j "D:\Program Files\Ultimaker Cura 4.0\resources\definitions\ultimaker2_plus.def.json" -l "D:\Program Files\Ultimaker Cura 4.0\TEST\anthony.STL" -o "D:\Program Files\Ultimaker Cura 4.0\TEST\test.gcode"

Et en ayant créé un dossier "TEST" contenant un STL bidon. J'ai le GCODE en PJ

 

Est-ce que tu peux essayer de reproduire exactement ces étapes ?

 

output.png

test.gcode

Share this post


Link to post
Share on other sites
Posted (edited) · CuraEngine et python

Ta commande et juste. je reçois la même  sortie.

 

j'ai résolue mon problème. Ce qui ce passer s'est que Cura utilise la sorti 2 donc en utilisant la sortie standard il ni avait rien. 

Avec ce code ça fonction presque comme je veux, du moin sa retourne les résultat dans un fichier.

from os import popen, system

CheminSortie = r'"C:\Users\Ivain\Desktop\testeretour console\Sortie.gcode"'
CheminFichier = r'"C:\Users\Ivain\Desktop\testeretour console\Box.stl"'
Profile = r'"D:\Program Files\Ultimaker Cura 4.0\resources\definitions\tam.def.json"'

system(f"CuraEngine slice -v -j {Profile} -o {CheminSortie} -l {CheminFichier} 2> SortieTeste.txt")

le fait de remplacer > par 2> lui indique qu'il doit utiliser cette sortie je te joint le fichier retourner.

donc si tu passe cette commande a NodeJs tu auras un fichier contenant la sortie. Reste plus qua trouver un moyen de faire la même chose mais dans une variable pour la récupérer dans no langage respectifs.

CuraEngine slice -v -j <tonprofile> -o <Fichierdesortie> -l <lestl> 2> SortieTeste.txt

 

PS: le fichier box et un cube de 20 mm

Teste3.3mf

Edited by nouveau
box
  • Like 1

Share this post


Link to post
Share on other sites
Posted · CuraEngine et python

Ah super !! L'avantage c'est que tu peux faire une première passe pour créer le fichier et ensuite tu peux le lire dans n'importe quel langage !

 

D'ailleurs si tu regardes comment fonctionne le GUI de Cura, tu remarqueras qu'ils ne récupèrent pas le GCODE de sortie mais qu'il est bien "juste" enregistré dans un fichier.

 

Tu vas en faire quoi de ce bout de code du coup ?

Share this post


Link to post
Share on other sites
Posted (edited) · CuraEngine et python

ha ok je n'avais pas remarquer ceci dans la GUI. Du coups problème résolue je reviendrait içi si je trouver un moyen d'envoyer la sortie sans passer par un fichier sa éviterais des opération inutile.

 

Pour ma part je ne chercher pas récupérer le Gcode mais l'estimation de masse et temps  renvoyer dans la l'invite de commande pour comparaison avec mes méthode de calcule. Mais comme je tester sur un grand nombre de forme sa commencer a me fatiguer de faire les tranchage à la main. La au moins sa va vite, s'est organiser pas d'érreure possible ET sa se fait tout seul ^^.

Edited by nouveau
  • Like 1

Share this post


Link to post
Share on other sites
Posted · CuraEngine et python

Non pas vraiment cela déjà été fait des dizaine de fois, mais plutôt a corriger certain default qui me dérange comme l'estimation du temps d'impression qui et parfoit très loin de la réaliter.

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Our picks

    • Ultimaker Cura 4.0 | Stable available!
      Ultimaker Cura 4.0 is mainly focused on the improved user interface and cloud integration.
      As always, we want to collect your user feedback for this release. If there are any improvements you can think of, feel free to mention it here and help us to shape the next release.
      • 98 replies
×
×
  • Create New...

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!