Aller au contenu

GO Print

Condition if... then dans le gcode


Aller à la solution Résolu par papaone,

Messages recommandés

Bonjour,

Je souhaiterais en fin de print faire remonter la tête à 150 si elle est en dessous de 150.

Quelque chose comme : if (Z<150) {G1 Z150 F1500.0}

Quelle est la syntaxe exacte à insérer dans le gcode svp

Lien vers le commentaire
Partager sur d’autres sites

Bonne question ... de se que j'ai compris de cura il ne semble pas possible de faire cela : "du conditionnel dans le gcode" ni "des opération sur les valeurs des mots de remplacement" :

; M109 S{material_print_temp_wait + 10 } ; Ne fonctionne pas et fait planter les autre {...} même si en commentaire ...

Alors pour du conditionnel ... :

( de 2019) Non  https://community.ultimaker.com/topic/27271-if-switch-in-start-gcode/

a vérifier si la dernier version 4.9 le permet ou pas ... https://www.google.com/search?q=cura+gcode+conditional

Edit ha ... et non : https://github.com/Ultimaker/Cura/issues/7056 Status: Deferred

 

Mais il semble que d'autre trancheur y arrive genre Repetier Host ou Simplify3D ...

Pour la liste des mots de remplacement cura  https://www.lesimprimantes3d.fr/forum/topic/36316-ultimaker-cura-nouvelle-version-480/?do=findComment&comment=429437 

Modifié (le) par PPAC
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, PPAC a dit :

Bonne question ... de se que j'ai compris de cura il ne semble pas possible de faire cela : "du conditionnel dans le gcode" ni "des opération sur les valeurs des mots de remplacement" :

; M109 S{material_print_temp_wait + 10 } ; Ne fonctionne pas et fait planter les autre {...} même si en commentaire ...


Alors pour du conditionnel ... :

( de 2019) Non  https://community.ultimaker.com/topic/27271-if-switch-in-start-gcode/

a vérifier si la dernier version 4.9 le permet ou pas ... https://www.google.com/search?q=cura+gcode+conditional

Edit ha ... et non : https://github.com/Ultimaker/Cura/issues/7056 Status: Deferred

 

Mais il semble que d'autre trancheur y arrive genre Repetier Host ou Simplify3D ...

Pour la liste des mots de remplacement cura  https://www.lesimprimantes3d.fr/forum/topic/36316-ultimaker-cura-nouvelle-version-480/?do=findComment&comment=429437 

Merci de m'avoir aiguiller vers d'autre slicer, on dirait que Prusaslicer gère ça :

https://help.prusa3d.com/en/article/macros_1775

Lien vers le commentaire
Partager sur d’autres sites

A vue de nez, dans prusasclicer ceci devrait faire le taf :

{if layer_z < 150}G1 Z150 F1500.0{endif}

Je vérifierai ça de retour à la casa...

Message à l'admin : impossible de rééditer mon dernier post pour modif (bug??), je corrigerai dés que possible

Modifié (le) par chacha007
Lien vers le commentaire
Partager sur d’autres sites

La question des cas avec commentaire ... faut il faire un retour a la ligne avant le {endif}

ou comme cela est pré parsé cela ne pose pas de problème ...

ex 

; forcement pas bon :
{if layer_z < 10}M117 msg z<10 ... ; ha ha ce qui suit est commenté ? {elsif layer_z < 45}M104 S240 {endif}

; vs peut etre
{if layer_z < 10}M117 msg z<10 ... ; ha ha ce qui suit est commenté ? {elsif layer_z < 45} ;mais alors là ?
M104 S240 {endif}

; vs la moins de risques ...
{if layer_z < 10}M117 msg z<10 ... ; ...
{elsif layer_z < 45}
M104 S240 ; il va fair chaud cet été ;)
{endif}

 

Sinon pour l’édition seulement jusqu’à 12h après la création du message.

Modifié (le) par PPAC
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

il y a 20 minutes, PPAC a dit :

Je dirais que là tu mette un commentaire qui contiens la commande ... cf le ';' a enlever


{if layer_z < 150}G1 Z150 F1500.0{endif}

Et justement cela me fait me poser la question des cas avec commentaire ... faut il faire un retour a la ligne avant le {endif}

ou comme cela est pré parsé cela ne pause pas de problème ...

ex 


; forcement pas bon :
{if layer_z < 10}M117 msg z<10 ... ; ha ha se qui suit est commenté ? {elsif layer_z < 45}M104 S240 {endif}

; vs peut etre
{if layer_z < 10}M117 msg z<10 ... ; ha ha se qui suit est commenté ? {elsif layer_z < 45} ;mais alors là ?
M104 S240 {endif}

; vs la moins de risques ...
{if layer_z < 10}M117 msg z<10 ... ; ...
{elsif layer_z < 45}
M104 S240 ; il va fair chaud cet été ;)
{endif}

 

Sinon pour l’édition seulement jusqu'a 12h après la création du message.

Dac 😉, je corrige en virant ";"

et concernant la syntaxe des commentaires, je n'en ai aucune idée si ce n'est :

; ha ha se ce qui suit est commenté ? 😁

  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

il y a une heure, Mat63 a dit :

Quel est le but ? 

Par curiosité et parce-que je suis une grosse feignasse qui aime tout automatiser, comme soulever (mais pas trop et suivant la hauteur finale) la tête après le print pour faciliter le fait d'enlever et remettre le bed magnétique. tiens je suis tomber la dessus aussi, trop cool : 😁

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

  • Solution

Bonsoir,

PrusaSlicer gère cela.

exemple de mon gcode de fin:

{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F600 ; Move print head up{endif}
G1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print
{if max_layer_z < max_print_height-10}G1 Z{z_offset+min(max_layer_z+70, max_print_height-10)} F600 ; Move print head further up{endif}
{if max_layer_z < max_print_height*0.6}G1 Z{max_print_height*0.6} F600 ; Move print head further up{endif}
M140 S0 ; arrêt chauffe du bed
M104 S0 ; arrêt chauffe de la buse
M107 ; Arrêt ventilos
M84 X Y E ; désactivation moteurs

  • J'aime 1
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

il y a 18 minutes, papaone a dit :

Bonsoir,

PrusaSlicer gère cela.

exemple de mon gcode de fin:

{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F600 ; Move print head up{endif}
G1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print
{if max_layer_z < max_print_height-10}G1 Z{z_offset+min(max_layer_z+70, max_print_height-10)} F600 ; Move print head further up{endif}
{if max_layer_z < max_print_height*0.6}G1 Z{max_print_height*0.6} F600 ; Move print head further up{endif}
M140 S0 ; arrêt chauffe du bed
M104 S0 ; arrêt chauffe de la buse
M107 ; Arrêt ventilos
M84 X Y E ; désactivation moteurs

Waoo 🤩, j'adore !! merci pour le partage 😉

Lien vers le commentaire
Partager sur d’autres sites

Pour ma part en fin de gcode j'ai juste un G0 X0 Y330 et de cette façon je n'ai pas de gêne pour retirer mes pièces du plateau. Après sinon en passant en coordonnées relatives tu peux alors quel que soit ta hauteur remonter de par exemple +10mm par rapport à la dernière position en Z. Si ça a vraiment son importance.

 

Enfin si tu as trouvé une solution 😁. Mais je comprend juste pas pourquoi vouloir monter à moins de 150mm jusqu'à 150mm et ne pas le faire pour les valeurs supérieures. 

Lien vers le commentaire
Partager sur d’autres sites

Petit question stupide:

Si à la fin d'une impression tu lui indique G1 Z250 Fquelquechose, la tête va t-elle monter au max? (et s'arrêter d'elle même au max défini dans les limites de l'imprimante), ou va-t-elle continuer de monter à Zfinal de l'impression + 250??

Merci beaucoup

(je pose la question car mon gcode fait monter la tête de 5cm d'office, mais je n'ai pas encore imprimé quelques chose de + de 20cm (et ma limite est à 25cm))

Lien vers le commentaire
Partager sur d’autres sites

il y a 19 minutes, Bestor a dit :

ou va-t-elle continuer de monter à Zfinal de l'impression + 250??

Dépend si tu a ou non d'activé les "endstop" logiciel ... cf https://marlinfw.org/docs/gcode/M211.html

Bien souvent, les butés/limite physique/matériel se chargent de bloquer les déplacements. Tu aura un gros "grrrrrg" de forçage a la fin ... 😉

Modifié (le) par PPAC
  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

J'ai déjà eu le grrr en essayant de jouer manuellement avec les limites.... J'ai cru que j'allais éclater le moteur..... et seulement pendant une demi-seconde, je n'ose pas imaginer plusieurs secondes.....

Et comme je n'ai pas compilé le marlin (j'ai juste récupéré celui de DGR70), je pense que le mieux c'est d'essayer

Modifié (le) par Bestor
  • Haha 1
Lien vers le commentaire
Partager sur d’autres sites

il y a une heure, Mat63 a dit :

Pour ma part en fin de gcode j'ai juste un G0 X0 Y330 et de cette façon je n'ai pas de gêne pour retirer mes pièces du plateau. Après sinon en passant en coordonnées relatives tu peux alors quel que soit ta hauteur remonter de par exemple +10mm par rapport à la dernière position en Z. Si ça a vraiment son importance.

 

Enfin si tu as trouvé une solution 😁. Mais je comprend juste pas pourquoi vouloir monter à moins de 150mm jusqu'à 150mm et ne pas le faire pour les valeurs supérieures. 

je souhaite utiliser ce gcode quelque soit la hauteur de la pièce, si +10mm + max de hauteur @PPAC en parles plus haut. De plus, en milieux de course ça me permet aussi d'avoir un bon visu de la buse. trop haut faudra attendre que la buse redescende pour le prochain print et je suis plutôt impatient.😁

il y a 55 minutes, Bestor a dit :

Petit question stupide:

Si à la fin d'une impression tu lui indique G1 Z250 Fquelquechose, la tête va t-elle monter au max? (et s'arrêter d'elle même au max défini dans les limites de l'imprimante), ou va-t-elle continuer de monter à Zfinal de l'impression + 250??

Merci beaucoup

(je pose la question car mon gcode fait monter la tête de 5cm d'office, mais je n'ai pas encore imprimé quelques chose de + de 20cm (et ma limite est à 25cm))

Tout dépends de ce qui indiqué avant (positon relative ou absolue).

Si c'est : G91 ; position relative , elle tentera max+250 et sera stoppé par le endstop

Si c'est : G90 ; position absolue , elle ira a max

Lien vers le commentaire
Partager sur d’autres sites

Tu en penses quoi de mon gcode de fin; En imaginant que j'imprime une pièce approchant la limite supérieure?

M104 S0 ; Coupe le chauffage de la buse
M140 S0 ; Coupe le chauffage du plateau
G91 ; Positions relatives
G1 Z+40 E-5 X-20 Y-20 F2000 ; Monte le Z et rétracte le filament (5mm)
G28 X0 Y0 ; Mise de la buse sur les endstops (Homing) (X à gauche et plateau sur l'arrière)
G1 Y220 ; Présentation de la pièce (le plateau s'avance vers l'avant)
M84 ; Arrêt des moteurs
G90 ; Positions absolues
M107 ; Arrêt des ventilateurs (si possible)

Pour le G1 Y220, ça fonctionne bien car je fais un home avant, mais impossible de faire ça pour Z...

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...