Que es el G-CODE y su importancia en la impresión 3D.
Es uno de los componentes fundamentales de la impresión 3D y que a veces es más desconocido dentro del proceso.
Empezamos por recordar que nuestra impresora es “tonta” y no entiende ni sabe nada de ficheros 3D, superficies, o mallas trianguladas. Nuestra impresora 3D “solo sabe” desplazarse a la coordenada X, Y, Z y depositar una cierta cantidad de material.
Precisamente el G-Code es el fichero que contiene esa programación como un listado de instrucciones sencillas que la impresora tiene que seguir para imprimir la pieza correctamente.
En G-Code se obtiene del proceso de Slicer, donde sí se tiene en cuenta la geometría 3D a través del fichero STL, así como los distintos parámetros y configuración como, por ejemplo, del material e impresora.
El resultado es un fichero de texto plano que finalmente pasamos a la impresora, bien por cable, por tarjeta SD, o por WiFi, para realizar la impresión.
Si abrimos este fichero con un editor de texto, veremos un listado muy largo de instrucciones que tiene la siguiente forma.
G-Code
Afortunadamente para nosotros, la mayor parte de las veces no tendremos que hacer nada con el G-Code. Nuestra función se limitará en cogerlo y pasarlo a la impresora para ejecutar el trabajo.
Solo en raros casos donde queramos algo muy avanzado (variar la temperatura entre capas, añadir una pausa para poner un inserto) deberemos modificarlo. Y siempre con cuidado, porque la máquina va a hacer lo que digamos, y podemos cargárnosla.
Sin embargo, aunque la mayoría de las veces el G-Code va a ser transparente para nosotros, dado su papel fundamental en la impresión 3D bien merece la pena para que entendamos qué es y cómo funciona.
¿QUÉ ES EL G-CODE?
El G-Code, también conocido como RS-274, lenguaje de programación G, o ISO-Code, es el lenguaje de programación más empleado en máquinas de control numérico (CNC).
El código G-Code no es exclusivo de la impresión 3D. Por el contrario, es ampliamente empleado en todo tipo de máquinas como tornos, fresadoras, corte por láser, desde muy pequeñas hasta de tamaño industrial.
Un fichero en G-Code está formado por un conjunto de instrucciones sencillas que indican a una máquina las operaciones que debe realizar. Por ejemplo, desplazar una parte (cabezal, garras, topes), realizar un cambio de herramienta.
Aunque el conjunto de instrucciones está “más o menos” estandarizado, existen distintas implementaciones como por ejemplo la ISO 6983, DIN66025, Siemens, FANUC, Haas. También es frecuente que algunos fabricantes añadan algunas instrucciones para trabajar con sus máquinas.
Cada línea (llamado bloque) de un programa escrito en RS-274 tiene la siguiente forma,
N , G , X , Y , Z , F , M , S , T ;
Cada bloque puede tener alguna o todas de esas direcciones aunque, de existir, el orden debe mantenerse. Además, se pueden poner comentarios empezando por ‘;’
Los significados de cada una de estas letras es el siguiente
N | Line number |
---|---|
G | Motion |
X | Horizontal distance |
Y | Vertical distance |
Z | Depth |
F | Feed rate |
S | Spindle speed |
T | Tool selection |
M | Miscellaneous functions |
I and J | Incremental center of an arc |
R | Radius of an arc |
G-CODE EN IMPRESIÓN 3D
Como vemos, el G-Code es un lenguaje de programación de máquinas CNC y sus distintas implementaciones están pensadas para controlar distintos tipo de máquinas, por lo cual contienen un conjunto de instrucciones muy amplio para poder controlar a todas ellas.
Nuestra impresora 3D no deja de ser una máquina CNC. En este caso el firmware es el que se encarga de interpretar cada línea de G-Code y ejecutar las acciones oportunas en la impresora.
Sin embargo, lógicamente, no todas las instrucciones del estándar son de aplicación en una impresora 3D.
Aquí tenes un listado con algunas de las más importantes y que más frecuentemente encontraremos en el ámbito de impresoras FFF/FDM.
Código | Significado |
---|---|
M0 | Parada |
M1 | Sleep |
M2 | Fin de programa |
M70 | Mostrar mensaje en pantalla |
M104 | Temperatura del extrusor |
M106 | Velocidad del ventilador |
M107 | Apagar ventilador |
M140 y M190 | Temperatura de la cama |
M116 | Esperar que temperaturas se estabilicen |
M112 | Parada de emergencia |
G0 | Movimiento rápido |
G1 | Movimiento controlado |
G4 | Pausa |
G10 | Retracción |
G11 | Desretracción |
G20 | Establecer unidades en pulgadas |
G21 | Establecer unidades en milimetros |
G28 | Mover al origen (Home) |
G29 | Autonivelado |
G90 | Posicionamiento absoluto |
G91 | Posicionamiento relativo |
G92 | Establecer posición |
De esta forma, el fichero que antes hemos visto, significa lo siguiente.
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 Imprimiendo… ;escribir mensaje en el LCD G0 F9000 X58.972 Y85.198 Z0.300 ;posicionamiento rápido en 58.972,85.198,0.300 G1 F1200 X60.320 Y84.421 E0.02927 ;establecer velocidad a 1200 milímetros/minuto, posicionar en 60.320,84.421 y extruir a 0.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 ... ;codigo eliminado hasta primera capa para el ejemplo 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 ;codigo eliminado hasta final extrusion para el ejemplo 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
CONCLUSIÓN
Hemos visto qué es el G-Code, un lenguaje de programación para máquinas CNC, ampliamente empleado en la industria, y del que existen distintas implementaciones para todo tipo de máquinas, incluidas nuestras impresoras 3D.
El G-Code está formado por un conjunto de instrucciones sencillas que indican a la impresora los trabajos a realizar para conseguir imprimir la pieza correctamente.
En la mayoría nuestra función con el será únicamente traspasarlo a la impresora para ejecutar el trabajo. Aunque, en ocasiones, podemos hacer modificaciones a mano para añadir ciertas funciones.
Hasta aquí la entrada sobre G-Code en impresión 3D. En la próxima entrada empezaremos a ver las partes de una impresora FFF/FDM.
Te gusto?
Nuestra web se mantiene gracias a la colaboración de personas como tú. Si encuentras nuestro contenido útil y quieres ayudarnos a seguir ofreciéndolo, invitamos un Tecito. Al hacerlo, estarás contribuyendo al mantenimiento y mejora de nuestro sitio. ¡Gracias por tu colaboración!