Aller au contenu

GO Print

G-Code pour changement de filament


Messages recommandés

Bonjour.

J'aimerai bien m’exercer à faire des changements de couleur en cours d'impression.

J'ai essayé sur Cura de faire: Extensions / Post-traitement / Modifier le G-Code / Filament change ...
Mais ça ne marche pas; l'impression suit sa course comme si de rien n'était.

D'ailleurs, le G-Code généré pour faire le changement de filament me semble bien pauvre:
"M600 E30.00 L300.00 ; Generated by FilamentChange plugin"
Comme si la fonction M600 ne fonctionnait pas sur ma machine (Alfawise U30).

Du coup, je suis tenté d'écrire mon petit bout de G-Code pour gérer cette fonction.
Ça me donnera l'occasion de mettre un peu les mains dans le cambouis et de comprendre un peu ce code.

J'ai donc à faire un bout de code à insérer au bon endroit qui fasse:

- retour à la position home
- monter la tête un peu
- retirer le filament en arrière
- envoyer un message "attente changement filament"
- attendre la validation de l'utilisateur
- repousser le filament en avant, suffisamment pour purger la buse
- retourner à la dernière position avant l'arrêt
- reprendre l'impression

Mais comme je suis encore très débutant, vos avis, aides et conseils seront les bienvenus.

Lien vers le commentaire
Partager sur d’autres sites

Il y a 4 heures, Olaf Grossebaf a dit :

- retour à la position home
- monter la tête un peu
- retirer le filament en arrière
- envoyer un message "attente changement filament"
- attendre la validation de l'utilisateur
- repousser le filament en avant, suffisamment pour purger la buse
- retourner à la dernière position avant l'arrêt
- reprendre l'impression

Ça c'est la théorie, ça donne quoi en pratique en gcode ?

Lien vers le commentaire
Partager sur d’autres sites

Il y a 11 heures, fdorful a dit :

Ça c'est la théorie, ça donne quoi en pratique en gcode ?

Euh, ben, c'est ça la question.

Comme je n'ai encore jamais fait de gcode, je demande si quelqu'un peut m'aider un peu.

Pour l'instant, la principale difficulté que j'entrevois c'est: comment faire pour reprendre l'impression en cours en retournant à la dernière position avant l'interruption ?
J'ai peur qu'en envoyant la tête à une position, ça brouille le repérage.
J'ai pas encore bien compris G90, G91 et G92.

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Je te conseille la lecture des articles suivants :

http://www.cr10.fr/changement_couleur_s3d/
http://www.cr10.fr/couleursansm600s3d/

Je sais pas quel trancheur tu utilises, moi je travaille avec Simplify3D

Voici un exemple fait pour une Alphawise U20 (qui ne doit pas trop différer d'une U30)

Le fichier gcode pour impression complète en une seule couleur :

cerf.gcode

et les deux fichiers gcode, l'un pour la première couleur (le fond), l'autre pour imprimer la tête.

cerf1.gcodecerf2.gcode

regarde les débuts et fins de chaque gcode.

A la fin du premier, on est en couche 7 et on ne touche pas Z, on revient en X0 Y0 histoire de ne pas faire de caca lors du changement de filament.

Quand le filament est en place, on lance le second gcode, on fait une préparation de la buse et ensuite on imprime en ayant pris soin de dire à la tête de commencer en Z1.640 (ligne 17 du gcode), c'est elle qu'il ne faut pas oublier de mettre manuellement dans le deuxième gcode.

Allez, un peu de travail personnel😋 et n'hésite pas à poser des questions.

NB : utilise Geany pour visualiser les gcode https://www.geany.org

il est bien pratique pour les manip sur gcode.

Cordialement

Lien vers le commentaire
Partager sur d’autres sites

Premier essai avec le code suivant:

;-----Changement de filament------------------------
G91 ; Passage coordonnées relatives
G1 Z10 F4000 ;Monte la tete de 10 mm
G90 ; Passage coordonnées absolues
G1 X10 Y10 ; Déplace la tête vers position d'attente
M0 Click To Restart ; Mise en pause et message ; NE MARCHE PAS
G91 ; Passage coordonnées relatives
G1 Z-10 F4000 ; Descent la tete de 10 mm
G90 ; Passage coordonnées absolues
;-----Fin-------------------------------------------

La routine fonctionne, sauf un truc: la fonction M0 qui devrait arrêter l'impression.
La tête va bien à la position d'attente mais elle ne s'arrête pas et retourne aussitôt pour reprendre l'impression.

Lien vers le commentaire
Partager sur d’autres sites

Le 18/04/2019 at 12:21, fdorful a dit :

Salut,

...

et les deux fichiers gcode, l'un pour la première couleur (le fond), l'autre pour imprimer la tête.

regarde les débuts et fins de chaque gcode.

A la fin du premier, on est en couche 7 et on ne touche pas Z, on revient en X0 Y0 histoire de ne pas faire de caca lors du changement de filament.

...

Oui, effectivement, y'a cette solution toute simple: on coupe le gcode en deux (ou plus si on veut plusieurs changements de couleur), ce qui évidemment crée un arrêt.
Quitte a ajouter un bout de code à la fin du premier pour gérer le dégagement de la tête et un autre code au début de la deuxième pour gérer la purge de la buse et la reprise d'impression.

C'est un peu fastidieux mais c'est pas bête.
J'aurai préféré quelque chose de plus élégant (un seul bout de code à coller à l'endroit du changement de filament) mais ça fonctionne.

Merci pour le tuyau.

Lien vers le commentaire
Partager sur d’autres sites

Il y a 3 heures, Olaf Grossebaf a dit :

J'aurai préféré quelque chose de plus élégant (un seul bout de code à coller à l'endroit du changement de filament)

Tu as la commande M600 pour ça, MAIS il faut être présent pour changer le filament ET je ne suis pas sûr que les Alphawise répondent à cette commande (j'ai pas testé).

Les autres solutions pour ceux qui veulent passer la tondeuse pendant que leur imprimante travaille, c'est soit la double extrusion ou le summum (pour les grosses tirelires) c'est Palette 2 ( https://www.atome3d.com/products/palette-2?ls=fr-FR ). 😁

Lien vers le commentaire
Partager sur d’autres sites

Il y a 22 heures, fdorful a dit :

Tu as la commande M600 pour ça, MAIS il faut être présent pour changer le filament ET je ne suis pas sûr que les Alphawise répondent à cette commande (j'ai pas testé).

Les autres solutions pour ceux qui veulent passer la tondeuse pendant que leur imprimante travaille, c'est soit la double extrusion ou le summum (pour les grosses tirelires) c'est Palette 2 ( https://www.atome3d.com/products/palette-2?ls=fr-FR ). 😁

J'ai essayé M600 (j'ai même commencé par ça): ça marche pas sur mon imprimante !😥

Quand à acheter du matos supplémentaire (hors de prix), c'est pas l'idée du moment.

Lien vers le commentaire
Partager sur d’autres sites

Le 18/04/2019 at 12:21, fdorful a dit :

NB : utilise Geany pour visualiser les gcode https://www.geany.org

il est bien pratique pour les manip sur gcode.

C'est la galère !
J'ai essayé tout bêtement de couper un fichier gcode en deux.
Histoire de voir ce que ça donne, qui à faire le positionnement de la tête à la main.
Et ben; l'imprimante (U30) se plante (reset général) à la fin de la première partie.

J'ai édité les gcode avec le bloc note, ça peut venir de ça ?

Lien vers le commentaire
Partager sur d’autres sites

il y a 19 minutes, Olaf Grossebaf a dit :

J'ai édité les gcode avec le bloc note, ça peut venir de ça ?

L'editeur de gcode ,'a rien à voir.

Tout comme on opère pas d'un appendicite avec un sabre, on prend un scalpel et des pinces kocher et après incision, on dilacère doucement tout en ayant de bonnes connaissances en anatomie pour savoir ce qu'on fait et ou on va...

Il vaut mieux laisser ton slicer faire la séparation et ensuite intervenir sur les gcodes au bon endroit et EN TOUTE CONNAISSANCE DE CAUSE ET D'EFFET.

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

Il y a 18 heures, fdorful a dit :

L'editeur de gcode ,'a rien à voir.

Tout comme on opère pas d'un appendicite avec un sabre, on prend un scalpel et des pinces kocher et après incision, on dilacère doucement tout en ayant de bonnes connaissances en anatomie pour savoir ce qu'on fait et ou on va...

Il vaut mieux laisser ton slicer faire la séparation et ensuite intervenir sur les gcodes au bon endroit et EN TOUTE CONNAISSANCE DE CAUSE ET D'EFFET.

Pourtant, en utilisant Geany au lieu du bloc-note ça marche mieux.
Peut-être que le bloc-note insère un caractère invisible (fin de ligne ou autre) qui plante le gcode ?
[edit] en fait c'est du au fait qu'il faut insérer un Enter après la dernière ligne. https://www.youtube.com/watch?v=xL7rjklhvSY
Enfin, j'ai progressé puisque l'arrêt et la reprise fonctionne.
Le problème c'est que les mouvements reprennent, mais pas l'extrusion.

Je pense que ça pourrait venir du fait que Cura génère des extrusions en mode absolu alors que dans le fichiers cerf que tu m'a donné en exemple les extrusions sont en mode relatif.
J'imagine que l'imprimante fait une RAZ de la longueur de filament au début de l'impression ce qui fait qu'elle perd les pédales si elle reprend avec un fichier tronqué.

Quand à laisser faire la séparation par le slicer, évidemment ça serait mieux.
Le problème c'est que Cura ne sait pas le faire et/ou que la fonction M600 ne semble pas gérée par mon imprimante.
As-tu essayé de ton côté cette fonction ?

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

il y a 34 minutes, Olaf Grossebaf a dit :

Le problème c'est que les mouvements reprennent, mais pas l'extrusion.

Raison pour laquelle le cerf2 commence avec le même script de démarrage que cerf1 pour amorcer la buse ensuite ce n'est qu'au moment du print qu'il faut insérer manuellement la ligne 17 pour positionner en Z à la bonne hauteur.

 

il y a 38 minutes, Olaf Grossebaf a dit :

la fonction M600 ne semble pas gérée par mon imprimante.

Je l'ai déjà plus ou moins dit le firmware des Alphawise ne gère pas le M600

Lien vers le commentaire
Partager sur d’autres sites

Il y a 5 heures, fdorful a dit :

Je l'ai déjà plus ou moins dit le firmware des Alphawise ne gère pas le M600

D'origine, c'est exact.

Mais en implantant le firmware alternatif basé sur Marlin 2.0, c'est faisable 😉 .

Lien vers le commentaire
Partager sur d’autres sites

Bon, alors j'ai essayé une autre technique:

Je génère les couches comme des objets .stl indépendants (avec Tinkercad dans mon cas).

Je slice chaque fichier en .gcode (avec Cura dans mon cas).

Puis j'insère au début du deuxième fichier un petit bout de code permettant de décaler l'impression en hauteur:

; ** décallage de couche en hauteur **
; pour impression multicouche par exemple
; 1: récupérer hauteur Z de la dernière couche précédente
; 2: générer le gcode de la nouvelle couche
;    sans aucune jupe, radeau ou autre
; 3: placer cette séquence juste après -- end of START GCODE --
; 4: modifier Zx.xx ligne suivante
G0 Zx.xx ; place à la hauteur de la dernière couche précédente
G92 Z0 ; initialise l'axe Z
; ** fin décallage en hauteur **

Ensuite j'imprime chaque .gcode l'un après l'autre.

C'est un peu fastidieux, mais ça marche.

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