Analyse d’un GCode

La principale question que je me pose face aux différents slicer est la suivante :

« Comment correctement configurer un Slicer pour obtenir le meilleur résultat avec mon imprimante ? ».

Il y a énormément de solutions proposées sur les forums. Mais j’ai décidé de tenter une autre approche : partir du GCode généré depuis CuraByDagoma (qui est censé être parfaitement adapté à mon imprimante) , l’analyser et faire en sorte de le reproduire à l’identique avec les autres slicers.

La pièce de référence

L’objectif est de partir d’un fichier GCode le plus simple possible. Je vais tester avec une pièce rectangulaire de 10 mm x 10 mm, d’épaisseur 1 mm soit 5 couches de 0.2.

Elle sera à imprimer dans un premier temps dans une seule couleur, donc avec un seul extrudeur déclaré.

Je découpe le fichier avec CuraByDagoma, sans support, sans palpeur.

Le fichier généré est un fichier de 436 lignes. En comparant ce fichier avec le contenu du fichier de paramétrage de curaByDagoma (discoeasy200.xml), on devrait normalement pouvoir extraire ce qui concerne l’impression de la pièce et les information de configuration de l(imprimante, informations qui devront être renseignées quelque part dans un autre slicer. Il sera aussi utile d’avoir en tête le standard GCode afin d’avoir une idée des opérations programmées dans le code ( par exemple : https://reprap.org/wiki/G-code/fr).

Début et fin du code :

;Gcode by Cura by Dagoma 2.1.0 for DiscoEasy200
;Filament: PLA Chromatik / Temperature: 220°C / Retraction: 5.0mm
D131 E1 ; => désactivation filrunout 2, utile si l’imprimante a 2 extrudeurs
G90; => passage en positio absolue
M106 S255 => ventilateur max de la tête
G28 X Y => reset position machine en X et Y
G1 X50 => déplacement en 50 sur X
M109 R90 => on attend que l’extrudeur soit à 90°
G28 => reprise position 0
;Sensor activation
;No Sensor
M104 S220 => consigne de chauffage à 220°
M107 ; => arrêt des ventilateurs
G1 X100 Y20 Z0.5 F3000 => déplacement en 100,20,0.5 à 3000 mm/mn
M109 S220 => on attend que l’extrudeur soit à 220°
M82 ; => passage déplacement extruder en mode absolu
G92 E0 ; => déplacement de l’extrudeur en position 0
G1 F200 E10 ; => extrusion de 10mm à la vitesse de 200 mm/mn
G92 E0 ; => déplacement de l’extrudeur en position 0
G1 E-5.0 F5000 ; => retrait de 5 mm à la vitesse de 5000 mm/mn
G1 F240 Z3 => montée de la tête de 3 mm à la vitesse de 240 mm/mn
G1 F6000 => configuration vitesse à 6000 mm/mn

Dans le fichier de configuration de CuraByDagome, on retrouve ce code (ou presque) dans la partie Gstart :

;Gcode by Cura by Dagoma {app_version} for DiscoEasy200
;Filament: {filament_name} / Temperature: {print_temperature}°C / Retraction: {retraction_amount}mm
D131 E1 ;Disable filrunout 2, just in case the user has a bicolor printer
G90 ;absolute positioning
M106 S255 ;fan on for the sensor
G28 X Y
G1 X50
M109 R90 ;wait for cool down
G28
;Sensor activation
;{sensor}
M104 S{print_temperature} ;start the heater
M107 ;start with the fan off
G1 X100 Y20 Z0.5 F3000
M109 S{print_temperature}
M82 ;set extruder to absolute mode
G92 E0 ;zero the extruded length
G1 F200 E10 ;extrude 10mm of feed stock
G92 E0 ;zero the extruded length again
G1 E-{retraction_amount} F5000 ;filament retract length
G1 F240 Z3
G1 F{travel_speed}

La différence réside dans la présence de paramètres liés visiblement au filament utilisé (print_temperature, retractation_amount), ainsi que du paramètre (sensor) lié sans doute à la procédure de détection de niveau du plateau.

Si l’on regarde le Gstart renseigné dans Cura 4.2.0 pour la DiscoEasy 200 (configuration fournie avec cura) :

;Gcode by Cura
G90
M106 S255
G28 X Y
G1 X50
M109 R90
G28
M104 S{material_print_temperature_layer_0}
G29
M107
G1 X100 Y20 F3000
G1 Z0.5
M109 S{material_print_temperature_layer_0}
M82
G92 E0
G1 F200 E10
G92 E0
G1 Z3
G1 F6000

On retrouve dans les grandes lignes la même procédure de démarrage. Même constat pour la procédure de fin. On ne devrait donc pas avoir de problème pour imprimer avec Cura 4.2.0.

Translate »