Macro pour obtenir un stl avec des arrondis parfaits et piloter octoprint

Forum destiné aux questions et discussions en français
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Post Reply
User avatar
-alex-
Veteran
Posts: 1861
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: Macro pour obtenir un stl avec des arrondis parfait

Post by -alex- »

Bien joué!
Oui il faut insister un peu avec les paquets à installer, @RustyM a eu ce probleme aussi.
Effectivement soit on installe par petit nombre de paquets, ou simplement on relance la commande complete plusieurs fois.
Une façon de vérifier si tout c'est bien installé après apt install c'est peut-être c'est de faire un

Code: Select all

apt-cache policy "liste des paquets"
et de regarder si certains paquet sont marqués "installé: aucun".
A essayer à la prochaine installe, sur Raspberry OS64 peut-être ;)
Si tu veux n'hésites pas à dupliquer ton message précédent sur le fil français dédié https://forum.freecadweb.org/viewtopic.php?f=12&t=37314
C'est toujours bon de donner un retour d'expérience de ce genre pour les autres :)
User avatar
2cv001
Posts: 484
Joined: Wed Jan 01, 2020 9:30 am

Re: Macro pour obtenir un stl avec des arrondis parfait

Post by 2cv001 »

C'est fait :D il y a pas mal de jours maintenant.

Sinon, pour en revenir à la macro,
J'ai eu besoin de lancer d'autres ordre que simplement ouvrir le fichier stl (chez moi sous cura) :
-allumer l'imprimante (via mon installation domotique).
-allumer la lumière (pour la caméra)
-Au bout de quelques secondes, lancer la connexion entre octoprint et l''imprimante
-Lancer octopi sur mon navigateur web

Bref, j'ai modifié le programme pour que l'on puisse ajouter autant de commandes que l'on veut.

Il suffit d'ajouter dans la macro des lignes telles que celles que je donne en exemple :
Juste des exemples, bien sûr que vous n'avez pas besoin de lancer paint ou la calculatrice !

commandes.append(['calc.exe', 'params', '','Lancer la calculatrice ?'])
commandes.append(['curl','http://pidomotique/connecte.php' , '','Allumer et connecter l\'imprimante ?'])
commandes.append(['C:\\WINDOWS\\system32\\mspaint.exe','','','Lancer Paint ?'])
commandes.append(['C:\\Program Files\\Ultimaker Cura 4.8.0\\Cura.exe','','.stl','Lancer Cura ?'])
commandes.append(['C:\\Program Files\\Mozilla Firefox\\firefox.exe','https://octopi','','Lancer Octoprint ?'])

D'ici 5mn, je modifie le source qui dans le premier message.

Ha oui, j'oubliais, j'ai aussi changé la façon d'ouvrir les programmes externe car avant, avec un subprocess.call, c'était bloquant (FreeCAD n'est plus acccessible tant que le programme externe n'est pas fini). L'utilisation d'un subprocess.Popen résout ce problème.
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
openBrain
Veteran
Posts: 9041
Joined: Fri Nov 09, 2018 5:38 pm
Contact:

Re: Macro pour obtenir un stl avec des arrondis parfait

Post by openBrain »

2cv001 wrote: Thu Dec 10, 2020 1:01 pm commandes.append(['calc.exe', 'params', '','Lancer la calculatrice ?'])
commandes.append(['curl','http://pidomotique/connecte.php' , '','Allumer et connecter l\'imprimante ?'])
commandes.append(['C:\\WINDOWS\\system32\\mspaint.exe','','','Lancer Paint ?'])
commandes.append(['C:\\Program Files\\Ultimaker Cura 4.8.0\\Cura.exe','','.stl','Lancer Cura ?'])
commandes.append(['C:\\Program Files\\Mozilla Firefox\\firefox.exe','https://octopi','','Lancer Octoprint ?'])
Je ne comprends pas trop pourquoi tu utilises 'append' plutôt que de créer directement la liste. Mais j'attends de vois le code. :)
Ha oui, j'oubliais, j'ai aussi changé la façon d'ouvrir les programmes externe car avant, avec un subprocess.call, c'était bloquant (FreeCAD n'est plus acccessible tant que le programme externe n'est pas fini). L'utilisation d'un subprocess.Popen résout ce problème.
Idéalement il faut bien passé à Popen l'argument 'close_fds=True', sinon les process créés seront des enfants du process FreeCAD, et donc seront fermés si FC l'est. ;)
User avatar
2cv001
Posts: 484
Joined: Wed Jan 01, 2020 9:30 am

Re: Macro pour obtenir un stl avec des arrondis parfait

Post by 2cv001 »

C'est bien d'avoir des vrais sachants dans la place ! :D
Le code a été changé pour incorporer le 'close_fds=True. Pendant qu'on y est, quand je déclenche un ordre genre 'curl', il ouvre une fenêtre type console qui se voit et qui reste tant que le curl par exemple n'a pas fini. Je comprends bien que la commande s'éxécute dans une fenêtre dos ou linux, mais n'y a t il pas moyen de masquer cette fenêtre ? J'ai cherché sur internet, pas trouvé. Ca fonctionne, mais ce serait plus élégant si ce n'était pas le cas.
Je vais regarder pour les append...
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
User avatar
2cv001
Posts: 484
Joined: Wed Jan 01, 2020 9:30 am

Re: Macro pour obtenir un stl avec des arrondis parfait

Post by 2cv001 »

Comme ça pour retirer les appends ?

Code: Select all

#Utilisez la syntaxe suivante en ajoutat une ligne dans commandes=....:
#      ['commande à exécuter', 'paramètres', 'extention','question à poser'],
#
# 'commande à exécuter' : la commande que vous voulez exécuter. 
#     Par exemple 'monProgramme.exe' si besoin mettre aussi son chemin. 
# 'parametres' : si votre programme a besoin de paramètres. Ne sera pris en compte que
#     si extention=''#
# 'extention': si non vide, le paramètre sera le nom de votre
#     fichier FreeCAD mais avec votre extension :
# 'question à poser' : la question à afficher dans la boite de dialogue

# Pour rendre actifs les exemples suivant : retirer le # devant.
# A noter les doubles \ en remplacement des \ (car les caractères spéciaux
# doivent être précédés d'un \ en python). idem pour par exemple l'apostrophe
#
# Exemples : 

commandes=[
              # ['calc.exe', 'params', '','Lancer la calculatrice ?'],
              # ['curl','http://pidomotique/connecte.php' , '','Allumer et connecter l\'imprimante ?'],
              # ['C:\\WINDOWS\\system32\\mspaint.exe','','','Lancer Paint ?'],
              # ['C:\\Program Files\\Ultimaker Cura 4.8.0\\Cura.exe','','.stl','Lancer Cura ?'],
              #  dans l'exemple suivant, si besoin remplaccez https://octopi par par exemple 
              # l'adresse correspondant à votre installation
              #['C:\\Program Files\\Mozilla Firefox\\firefox.exe','https://octopi','','Lancer Octoprint ?'],
                   # pour edge : "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
                   # pour chrome: C:\Users\VOTRE NOM UTILIATEUR\AppData\Local\Google\Chrome\Application\chrome.exe
           ]
           
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
openBrain
Veteran
Posts: 9041
Joined: Fri Nov 09, 2018 5:38 pm
Contact:

Re: Macro pour obtenir un stl avec des arrondis parfait

Post by openBrain »

2cv001 wrote: Thu Dec 10, 2020 3:40 pm Le code a été changé pour incorporer le 'close_fds=True. Pendant qu'on y est, quand je déclenche un ordre genre 'curl', il ouvre une fenêtre type console qui se voit et qui reste tant que le curl par exemple n'a pas fini. Je comprends bien que la commande s'éxécute dans une fenêtre dos ou linux, mais n'y a t il pas moyen de masquer cette fenêtre ?
Pas sûr que ce soit possible de supprimer la fenêtre dans ce cas. Typiquement 'curl' est une commande shell, et pas vraiment un exécutable. Donc je pense qu'il faut un environnement pour l'exécuter, et du coup une fenêtre. :)
2cv001 wrote: Thu Dec 10, 2020 3:56 pm Comme ça pour retirer les appends ?
:+1:
User avatar
-alex-
Veteran
Posts: 1861
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: Macro pour obtenir un stl avec des arrondis parfait

Post by -alex- »

2cv001 wrote: Thu Dec 10, 2020 1:01 pm C'est fait :D il y a pas mal de jours maintenant.
yeap j'ai vu ça merci ;)
Bref, j'ai modifié le programme pour que l'on puisse ajouter autant de commandes que l'on veut.
Pas encore testé tout ça, j'ai pas utilisé octoprint depuis un moment (là je transfère ma sdcard à l'ancienne du RPI à l'imprimante...)
Sympa ces possibilités supplémentaires, on aura bientôt plus rien à faire, c'est pour quand la commande vocale?
Nan j'deconne :mrgreen:
On a un bon petit flux de travail pour lancer une belle impression là, vite fait bien fait.
Merci à tous les 2 8-)
User avatar
2cv001
Posts: 484
Joined: Wed Jan 01, 2020 9:30 am

Re: Macro pour obtenir un stl avec des arrondis parfait

Post by 2cv001 »

Ho tu sais, il n'y a pas de problème à faire de la commande vocale en utilisant google ou alexa. J'ai déjà fait ce genre de chose avec succès. Seul problème, en ce cas, nos données sont envoyées chez eux. Bon, de toutes les façons, c'est déjà fait. Par contre, je ne sais pas piloter freecad via des api et donc autant je saurais allumer l'imprimante par commande vocale, autant je ne saurais pas par exemple déclencher une macro freecad par commande vocale.
Sinon, je me suis dit ce matin que je pourrais ainsi me rajouter une commande qui préchauffe le plateau de l'imprimante. Je crois que je vais regarder cela.
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
User avatar
2cv001
Posts: 484
Joined: Wed Jan 01, 2020 9:30 am

Re: Macro pour obtenir un stl avec des arrondis parfait

Post by 2cv001 »

Ca y est, j'ai modifié le programme pour pouvoir lancer des curl plus complexes (avec beaucoup de paramètres) et j'ai pu ainsi, en plus d'allumer l'imprimante, via octoprint lancer la chauffe du plateau de l'imprimante. En fait, on peut envoyer n'importe quel Gcode.
J'arrange un peu mon code et surtout les commentaires et je replace le code dans le premier message.
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
User avatar
2cv001
Posts: 484
Joined: Wed Jan 01, 2020 9:30 am

Re: Macro pour obtenir un stl avec des arrondis parfait/Piloter octoprint

Post by 2cv001 »

Fait : le source est maintenant un fichier joint au premier message.
Il montre succinctement comment piloter octoprint à partir de FreeCAD.
Si ça intéresse quelqu'un, je pourrais par ailleurs plus expliquer et détailler un certains nombre d'API que l'on peut lancer à partir de FreeCAD pour piloter octoprint.
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
Post Reply