Jump to content
Ultimaker Community of 3D Printing Experts

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
  • 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 😛 

     

  • 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
  • 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  ?

  • 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
  • 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

  • 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
    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 ?

  • 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
    Link to post
    Share on other sites
    Posted · CuraEngine et python

    Tu cherches à faire ton propre slicer ?

  • 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
    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
    ×
    ×
    • Create New...