¿Qué es G-Code?

publicado en: Portada | 5

El G-Code (o código G, en castellano) es el nombre de un lenguaje de descripción de operaciones para máquinas de control numérico por ordenador (CNC) que puede ser usado también como lenguaje de programación para controlar estos dispositivos para simplificar operaciones utilizando, por ejemplo, bucles.

Desde que se estandarizó en los 80 como ISO 6983, el G-Code es el lenguaje más utilizado en la fabricación por ordenador. Aunque existen ampliaciones e implementaciones de algunos fabricantes así como estándares alternativos al internacional en algunos países, es más que probable que cualquier máquina de control numérico moderna sepa interpretar el G-Code básico. El estándar alemán DIN 66025 es la alternativa que más probablemente llegue a nuestro entorno tanto por su área de influencia como por su importante presencia en el mercado industrial.

El G-Code se almacena en formato texto, es decir, puede leerse (y modificarse) con un editor de texto plano aunque lo más habitual es que se genere y se visualice desde una aplicación de modelado y/o fabricación 3D o alguna herramienta o accesorio específico. En las capturas de pantalla de abajo se muestra una pieza en el visualizador yagv y en GCode Viewer GCode Analizer ambos licenciados como software libre por Alex Ustyantsev.

YAGV (Yet Another GCode Viewer) Visor G-CodeGCode Viewer GCode Analizer. Visor de G-Code

El G-Code describe el movimiento y las diferentes operaciones que la máquina CNC debe realizar para la fabricación del objeto que se describe. Actualmente es G-Code se ha popularizado mucho gracias a la impresión 3D, en ese uso el G-Code especifica dónde posicionar el extrusor, en horizontal y vertical, cuánto calentarlo y cómo disponer el filamento entre otras cosas. Las impresoras 3D suelen ser sistemas de 3 ejes: X, Y (plano) y Z (altura) Los sistemas de 4 o 5 ejes añaden información sobre giros de los cabezales de fabricación, y están presentes, por ejemplo, en tornos y fresadoras CNC.

Los programas de fabricación asistida por ordenador (CAM) suelen generar directamente documentos con las instrucciones G-Code para controlar los sistemas de fabricación (mecanizado, tradicionalmente) es decir, documentos G-Code. Los programas genéricos de modelado tridimensional no siempre tienen prevista esta opción por lo que se utiliza un formato intermedio (el más común es el STL) que puede ser leído por aplicaciones específicas que generan el G-Code para la fabricación. Este proceso se llama comúnmente laminado.

Junto con las impresoras 3D de código libre se han popularizado programas de modelado 3D también libres como FreeCAD y otros como Cura de Ultimaker (quizá no tan libre) para generar el código G para la impresión 3D, es decir, para laminar. En las siguientes capturas de pantalla se muestra una pieza exportada en formato STL en FreeCAD y el laminado realizado en Cura.

FreeCAD generando un documento STL para impresión 3DCura importando un documento STL para generar G-Code para impresión 3D

Del G-Code generado para la impresión 3D de la pieza del ejemplo se ha extraído y comentado unos fragmentos del principio y del final para dar una idea del aspecto que presenta el código que es interpretado por la impresora 3D Prusa Mendel i3.

G21 ;trabajar con milímetros
G90 ;usar posicionamiento absoluto
M82 ;colocar el extrusor en posicionamiento absoluto
M107 ;apagar ventilador
G28 X0 Y0 ;mover el extrusor a la posición 0,0 del plano
G28 Z0 ;bajar el extrusor hasta la posición 0 en altura
G92 E0 ;iniciar la extrusión a 0
G1 F200 E3 ;extruir 3 mm de filamento
G92 E0 ;resetear la extrusión a 0
G1 F9000 ;establecer velocidad a 9000 milímetros/minuto
M117 Imprusando… ;escribir mensaje en el LCD
G0 F9000 X58.972 Y85.198 Z0.300 ;posicionamiento rápido en 58.972,85.198,0.300
;establecer velocidad a 1200 milímetros/minuto
;posicionar en 60.320,84.421 y extruir a 0.02927
G1 F1200 X60.320 Y84.421 E0.02927
G1 X61.800 Y83.771 E0.05967 ;posicionar en 61.800,83.771 y extruir a 0.05967
G1 X63.363 Y83.286 E0.09046 ;posicionar en 63.363,83.286 y extruir a 0.09046
;Un montón de código aburridísimo borrado hasta a la primera capa
M106 S127 ;encender ventilador a la mitad de potencia (127)
G0 F9000 X62.284 Y90.092 Z0.400 ;posicionar rápidamente en 62.284,90.092,0.400
G1 F540 X61.718 Y90.448 E4.19702 ;posicionar en 61.718,90.448 y extruir a 4.19702
G1 X61.271 Y90.723 E4.20031 ;posicionar en 61.271,90.723 y extruir a 4.20031
G1 X60.679 Y91.092 E4.20468 ;posicionar en 60.679,91.092 y extruir a 4.20468
;Resto del aburrido código borrado hasta llegar al final de la impresión
M104 S0 ;apagar extrusor
M140 S0 ;apagar la cama caliente
G1 E-1 F300 ;retraer filamento (para liberar presión)
G28 X0 Y0 ;mover a 0,0
M84 ;apagar motores

Además de los códigos que empiezan por la letra G, los más básicos del estándar, puedes ver que hay otros códigos específicos de la máquina en concreto; por ejemplo, en nuestras impresoras 3D con M117 podemos escribir en el LCD y M106 enciende el ventilador de capa y M107 lo apaga.

Víctor Ventura

Desarrollando aplicaciones para la web conocí el potencial de internet de las cosas, encontré la excusa perfecta para satisfacer la inquietud de aprender electrónica que había tenido desde siempre. Ahora puedo darme el gusto de programar las cosas que yo mismo diseño y fabrico.

Más entradas - Página web

Sígueme:
TwitterLinkedIn

Seguir Víctor Ventura:

Programador multimedia y web + IoT. Mejor con software libre.

Desarrollando aplicaciones para la web conocí el potencial de internet de las cosas, encontré la excusa perfecta para satisfacer la inquietud de aprender electrónica que había tenido desde siempre. Ahora puedo darme el gusto de programar las cosas que yo mismo diseño y fabrico.

5 Respuestas

  1. Sergio Patiño

    Victor muy buenas tardes;felicitaciones por los logros obtenidos.
    queria pedirte el favor de orientarme de como genero el cdigo G de:
    Remplazar la cama por un eje y generar un cilindro hueco sobre el eje.

    Muchas gracias: Sergio

  2. FEG DE QUERETARO SA DE CV

    quiero saber como quitar un avance lento cuando trabaja la herramienta atacando radios. para una maquina fanuc robodril.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *