franken 3d

franken 3d

Autopsie du GCode d'une impression

 

 

 

Comment est constitué un fichier GCode d'une impression 3D ?

 

La source du code est le logiciel d'impression CURA BY DAGOMA pour les imprimantes DAGOMA Discovery 200.
Lien du programme

 

Le contenu : 

  • Le start Gcode :

    définissant l'ensemble des instructions de mouvement, de positionnement, de nivellement et de chauffe préalable à l'impression elle-même,

  • Le Corps du Code :

    listant l'ensemble des instructions de l'impression à proprement parler,

  • Le End GCode :

    définissant quant à lui, les instructions de fin d'impression : positionnement, arrêt du chauffage, arrêt des ventilateurs, rétractation du filament.

 

 

Pour mieux comprendre les instructions GCode, n'hésitez pas à vous rendre sur la page http://reprap.org/wiki/G-code/fr qui explique très bien la signification des instructions dans le contexte de l'impression 3D, en effet ces instructions, ces codes pourront avoir des significations très différentes dans d'autres contextes, par exemple pour une CNC,

 

Le Start GCode est une partie très importante, il permet de fixer le niveau sur l'ensemble du plateau, la montée efficace de la température, le début d'une impression "propre" en laissant les écoulements de filament de la première phase sur un coin du plateau.

En comprenant ces enchaînements et leur utilité, vous serez à même de les intégrer dans le GCode de votre logiciel d'impression ou alors pourquoi pas, modifier directement le code généré pour l'impression, et ainsi par exemple, changer la température pour un nombre de couche donné, permettant ainsi une impression sans déformation d'une partie très fine.

 

 

PHASE DE DEMARRAGE (correspondant au Start GCode)

 

G91       Position relative, toutes les coordonnées à partir de maintenant sont liées à la dernière position,

 

G1 Z7    Déplacement linéaire sur l’axe Z de +7mm,

 

G90       Position absolue, toutes les coordonnées exécutées à partir de maintenant sont en rapport

              à l'origine de la machine,

 

G28 X    Déplacement aux origines (Homing), de l’axe X vers son origine (fin de course),

 

M106 S255   Allume les ventilateurs pour une valeur PWM de 255 (0 à 255),

 

M109 S180   Définit la température de l'extrudeur et attend (valeur à 180°C), cela permet une première

                     montée en T° jusqu’à 180°C, la montée vers 225 se fait lors de l’autonivellement,

M104 S225   Définit la température de l'extrudeur à 225°C sans attendre,

 

;M190 S60    Définit la température du plateau chauffant et attent (valeur à 60°C),

                     désactivé dans notre cas par le « ; »,

 

G28 X    Déplacement aux origines (Homing), de l’axe X vers son origine (fin de course),

 

G28 Y    Déplacement aux origines (Homing), de l’axe Y vers son origine (fin de course),

 

G01 X20 Y100    Déplacement linéaire de l’axe X de 20mm et de l’axe Y de 100mm,

 

G28 Z    Déplacement aux origines (Homing), de l’axe Z vers son origine (fin de course),

 

;bloc palpeur     Information : début de l’autonivellement,

 

G29       Commande d’autonivellement, il est réalisé suivant les points définis dans Marlin,

 

;bloc Offset        Information : début du réglage de l’offset,

 

G92 Z10      Définit la nouvelle position absolue de l’axe Z à 10mm, aucun mouvement,

                    seule la référence change,

 

G91        Position relative, toutes les coordonnées à partir de maintenant sont liés à la dernière position.                    Cela permet de partir sur une position de sécurité à +10mm, l’offset devra à présent compenser

              ce décalage pour donner la bonne position de la première couche sur l’Axe Z,

 

G1 Z-11.0          Déplacement linéaire sur l’axe Z de – 11mm, pour mon imprimante cela correspond à

                           l’offset entre la tête et la buse, cela signifie que la tête doit parcourir 1mm de plus vers

                           le bas lorsque le capteur inductif détecte le plateau. C’est cette valeur sur laquelle il faut

                           jouer pour affiner l’épaisseur de la première couche,

 

G90        Position Absolue, toutes les coordonnées exécutées à partir de maintenant sont en rapport à

               l'origine nouvellement défini par le positionnement à -11 de l’Axe Z, qui constitue la coordonnée

               sur l’axe Z de la tête à la bonne hauteur d’impression,

 

G92 Z0   Définit la nouvelle position absolue de l’axe Z à 10mm, aucun mouvement seule la référence

               change, et cette référence est recalée à 0 pour Z et non plus à -11, pour autant la hauteur

               physique reste identique,

 

G1 Z3     Déplacement linéaire sur l’axe Z de +3mm,

 

G1 X100 Y200 F3000    Déplacement linéaire sur l’axe X de +100mm, sur l’axe Y de 200mm avec une

                                       vitesse de 3000 mm/mn,

 

G1 Z2    Déplacement linéaire sur l’axe Z de +2mm,

 

M104 S225    Définit la température de l'extrudeur à 225°C sans attendre,

 

M82       Définit la position de l'extrudeur comme position absolue,

 

M107     Eteint les ventilateurs,

 

G92 E0  Définit la nouvelle position de l'extrudeur à 0,

 

G1 F200 E3    Le Moteur de l'extrudeur fait avancer le filament de 3mm avec une vitesse de 200 mm/mn,

                       cela permet de venir expulser le filament et de le coller au plateau, de manière à laisser le

                       filament écoulé pendant la phase d’autonivellement, rendant ainsi l’impression plus propre,

                       

G92 E0          Redéfinit la nouvelle position de l'extrudeur à 0,

 

G1 F4800       Définit la vitesse de déplacement à 4800mm/mn, pas de mouvement.

 

 

 

 

DEBUT DE L’IMPRESSION

 

;Layer count: 311    Indique un nombre de couche de 311,

 

;LAYER:0    Identifit la première couche n°0,

 

M107    Extension des ventilateurs, en effet pour une meilleure accroche et éviter le gauchissement,

             la première couche ne doit pas être refroidie par les ventilateurs de buse,

 

G0 F4800 X87.001 Y78.351 Z0.260    Déplacement rapide vers la position de départ de l’impression de la

            JUPE / SKIRT, la jupe est un contour qui entoure le modèle, mais le touche pas, elle permet

            d’amorcer le flux continu du filament,

 

;TYPE:SKIRT    Identifit le début de l’impression de la JUPE / SKIRT,

 

G1 F1020 X105.001 Y78.351 E0.77829     

G1 X105.001 Y90.351 E1.29715  

G1 X87.001 Y90.351 E2.07543    

G1 X87.001 Y78.351 E2.59429    

G0 F4800 X87.401 Y78.751          

G1 F1020 X104.601 Y78.751 E3.33799     

G1 X104.601 Y89.951 E3.82225  

G1 X87.401 Y89.951 E4.56595    

G1 X87.401 Y78.751 E5.05022    

G0 F4800 X87.801 Y79.151          

G1 F1020 X104.201 Y79.151 E5.75932     

G1 X104.201 Y89.551 E6.20900  

G1 X87.801 Y89.551 E6.91811    

G1 X87.801 Y79.151 E7.36779    

G1 F3000 E3.36779         

G0 F4800 X91.601 Y82.951

          

;TYPE:WALL-INNER   Fin de la Jupe et début de la paroi interne de la première couche,

 

G1 F3000 E7.36779         

G1 F1020 X100.401 Y82.951 E7.74828     

G1 X100.401 Y85.751 E7.86935  

G1 X91.601 Y85.751 E8.24984    

G1 X91.601 Y82.951 E8.37091    

G0 F4800 X91.201 Y82.551

          

;TYPE:WALL-OUTER    Début de la paroi externe,

 

G1 F1020 X100.801 Y82.551 E8.78600     

G1 X100.801 Y86.151 E8.94165  

G1 X91.201 Y86.151 E9.35674    

G1 X91.201 Y82.551 E9.51240    

G0 F4800 X91.819 Y83.051  

        

;TYPE:FILL    Début du remplissage,

 

G1 F1020 X94.418 Y85.650 E9.67132       

G0 F4800 X93.852 Y85.650          

G1 F1020 X91.699 Y83.497 E9.80297       

G0 F4800 X91.699 Y84.062          

G1 F1020 X93.287 Y85.650 E9.90008       

G0 F4800 X91.699 Y84.628          

G1 F1020 X92.721 Y85.650 E9.96257       

G0 F4800 X91.699 Y85.194          

G1 F1020 X92.155 Y85.650 E9.99045       

G0 F4800 X92.384 Y83.051          

G1 F1020 X94.984 Y85.650 E10.14941     

G0 F4800 X95.549 Y85.650          

G1 F1020 X92.950 Y83.051 E10.30833     

G0 F4800 X93.516 Y83.051          

G1 F1020 X96.115 Y85.650 E10.46726     

G0 F4800 X96.681 Y85.650          

G1 F1020 X94.081 Y83.051 E10.62621     

G0 F4800 X94.647 Y83.051          

G1 F1020 X97.246 Y85.650 E10.78513     

G0 F4800 X97.812 Y85.650          

G1 F1020 X95.213 Y83.051 E10.94406     

G0 F4800 X95.779 Y83.051          

G1 F1020 X98.378 Y85.650 E11.10298     

G0 F4800 X98.944 Y85.650          

G1 F1020 X96.344 Y83.051 E11.26194     

G0 F4800 X96.910 Y83.051          

G1 F1020 X99.509 Y85.650 E11.42086     

G0 F4800 X100.075 Y85.650        

G1 F1020 X97.476 Y83.051 E11.57978     

G0 F4800 X98.041 Y83.051          

G1 F1020 X100.300 Y85.309 E11.71789   

G0 F4800 X100.300 Y84.743        

G1 F1020 X98.607 Y83.051 E11.82138     

G0 F4800 X99.173 Y83.051           

G1 F1020 X100.300 Y84.178 E11.89029    

G0 F4800 X99.738 Y83.051          

G1 F1020 X100.300 Y83.612 E11.92463 

  

;LAYER:1   Début de la deuxième couche n°1,

 

M106 S104    Allumage des ventilateurs de buse vitesse PWM de 104 (0 à 255),

 

G0 F4800 X100.401 Y82.951 Z0.460    Déplacement Rapide vers la position de départ de la couche 1,

 

;TYPE:WALL-INNER    Début de la paroi interne,

                 

ETC, ETC,…. pendant 311 couches

 

 

 

 

PHASE DE FIN  (correspondant au End GCode)

 

M107   Extinction des ventilateurs de buse,

 

G1 F3000 E3488.49157    Là j’avoue que je cale, Déplacement linéaire du filament de l’extrudeur de

                                          3488.49157mm à une vitesse de 3000mm/mn ??? Cela m’interpelle !! À suivre

 

G0 F4800 X100.300 Y83.612 Z67.300    Déplacement rapide vitesse 4800mm/mn sur l’axe X de 100.3mm

             sur l’axe Y de 83.612mm et de 67.3mm sur l’axe Z, cela permet à la tête d’impression de libérer

             la zone d’impression et de se mettre en position de repli,

 

M104 S0    Définit la température de l'extrudeur à 0°C,

 

M106 S255    Pleine vitesse des ventilateurs de buse à 255 PWM,

 

M140 S0        Définit la température du plateau chauffant à 0°C (inutile dans ce cas),

 

G91    Position relative, toutes les coordonnées à partir de maintenant sont liés à la dernière position,

 

G1 E-1 F300    Rétraction du fiilament de l’extrudeur de 1 mm à une vitesse de 300mm/mn,

 

G1 Z+3 E-2 F4800    Déplacement linéaire de Z de 3mm, rétractation du filament de l’extrudeur de 2mm

                                  le tout à une vitesse de 4800mm/mn,

 

G28 X0 Y0    Déplacement aux origines/Homing (fin de course) de l’axe X et Y,

 

G4 P360000    Attente pendant 36000 millisecondes (36s),

 

M908    Arrêt des ventilateurs de buse,

 

M84      Arrêt des moteurs,

 

 

 

 

 

 

 

 



11/01/2018
0 Poster un commentaire

A découvrir aussi


Ces blogs de Informatique & Internet pourraient vous intéresser

Inscrivez-vous au blog

Soyez prévenu par email des prochaines mises à jour

Rejoignez les 31 autres membres