La guía completa G-Code: de principiante a profesional
Qué es G-Code, cómo lo usan las máquinas y todo el proceso de producción: desde SVG e imágenes rasterizadas hasta archivos listos para máquinas para trazadores de lápiz, grabadores láser, impresoras 3D y fresadoras CNC.
¿Qué es G-Code?
G-Code (Código geométrico) es el lenguaje de texto sin formato que impulsa las máquinas CNC. Cada archivo, normalmente.gcode,.nc o.cnc, es una secuencia de instrucciones que le indican a la máquina dónde moverse, a qué velocidad y cuándo activar su herramienta. Las líneas se ejecutan de arriba a abajo, una a la vez.
Piense en su diseño como el plano y en G-Code como la navegación paso a paso. Una impresora 3D no puede procesar un JPG. Un trazador de lápiz no sabe cómo es la letra 'A'. G-Code resuelve esto dividiendo cualquier forma en movimientos elementales (líneas rectas, arcos y comandos de activación/desactivación de herramientas) que cualquier controlador de movimiento puede ejecutar de manera confiable.
El estándar se remonta al MIT en la década de 1950, se formalizó como RS-274 en 1963 y se publicó internacionalmente como ISO 6983 en 1982. A pesar de su antigüedad, G-Code sigue siendo el lenguaje universal de fabricación, desde impresoras de escritorio para aficionados hasta fresadoras industriales de cinco ejes.
¿Dónde se utiliza el modelo G-Code?
- Plotters de lápiz (AxiDraw, HP 7475A, DIY GRBL): mueve un lápiz físico sobre el papel para reproducir ilustraciones vectoriales, uno de los puntos de entrada más accesibles a G-Code para artistas y creadores.
- Grabadores y cortadores láser: dirige el rayo mientras modula la potencia para grabar imágenes en madera o cortar formas de acrílico.
- Impresoras 3D FDM (Prusa, Creality, Bambu Lab): coordina el cabezal de impresión en X, Y, Z mientras alimenta el filamento, construyendo objetos capa por capa.
- Fresadoras y fresadoras CNC: dirige una herramienta de corte giratoria a través del material para tallar, embolsar y perfilar.
- Tornos CNC, cortadoras de plasma, máquinas de electroerosión por chorro de agua y por hilo: todas utilizan G-Code o un derivado cercano.
La anatomía de un archivo G-Code
Cada línea (llamada bloque) es una instrucción completa. La máquina recuerda su estado entre líneas: una velocidad de avance establecida en la línea 10 permanece activa en la línea 200 a menos que la cambie. Esto se llama estado modal.
Aquí hay un programa de trazador de lápiz que dibuja un cuadrado de 50×50mm:
G21 ; millimeters
G90; posicionamiento absoluto
G0 Z5.0 ; lift pen
G0 X0 Y0 ; move to origin
M3 S1000 ; pen down
G1 X50.0 Y0 F2000
G1 X50.0 Y50.0
G1 X0 Y50.0
G1 X0 Y0
M5 ; pen up
M2 ; end
Desglosando G1 X50.0 Y25.3 F1500: G1 = trazar una línea recta, X50.0 Y25.3 = destino, F1500 = 1500 mm/min. Tenga en cuenta que G1 solo aparece una vez: cada línea de coordenadas siguiente la reutiliza automáticamente hasta que escriba G0 u otro comando de movimiento. Todo lo que aparece después de un punto y coma es un comentario que la máquina ignora.
Comandos esenciales de G-Code
Estos comandos funcionan en prácticamente todos los firmware, desde el GRBL para aficionados hasta el Fanuc industrial.
- G0 — Rapid Move: reposicione tan rápido como lo permita la máquina. Nunca lo use con el láser o el husillo activo.
- G1 — Movimiento lineal: dibuja o corta una línea recta con la velocidad de avance establecida (F). El comando principal para todo el trabajo CNC.
- G2 / G3 — Arco en sentido horario / antihorario: produce curvas suaves con un solo comando usando desplazamientos de centro I/J o radio R. Un G2/G3 reemplaza docenas de pequeños segmentos G1.
- G4 — Permanencia: pausa durante un tiempo determinado. ⚠ La unidad P varía: GRBL = segundos (G4 P1.5 = 1.5s), Marlin = milisegundos (G4 P1500 = 1.5s).
- G20 / G21: unidades en pulgadas/milímetros. Establezca siempre esto al comienzo de cada archivo.
- G28 — Inicio todos los ejes. El comportamiento varía según el firmware; verifíquelo siempre antes de usarlo.
- G90 / G91 — Posicionamiento absoluto / relativo. G90 es el valor predeterminado; G91 hace que cada coordenada sea relativa a la posición actual.
- G92: establece la posición actual como origen sin moverse. Se utiliza para definir el origen del trabajo a mitad del trabajo.
- M3 S[value] — Herramienta activada: dispara el láser, hace girar el eje o baja el servo del lápiz. S controla la potencia, las RPM o el ángulo del servo.
- M5: herramienta desactivada. Inclúyalo siempre antes de cualquier movimiento de viaje rápido.
- M104 / M109: establece la temperatura del hotend (impresión 3D). M109 espera hasta alcanzar el objetivo antes de continuar.
- M140 / M190: establecer la temperatura de la cama (impresión 3D). M190 espera: utilícelo antes de que comience la impresión.
- F — Avance en mm/min. Modal: persiste hasta que lo cambias.
- S — Potencia o velocidad: potencia del láser (0–1000 en GRBL), RPM del husillo o ángulo del servo.
- E — Distancia del filamento del extrusor (solo impresión 3D).
- I, J: Desplazamientos del centro del arco desde la posición actual, utilizados con G2 y G3.
GRBL usa segundos: G4 P1.5 hace una pausa de 1,5 segundos. Marlin usa milisegundos; G4 P1500 es la misma pausa. Usar la unidad incorrecta significa que su máquina apenas se detiene o se congela durante minutos. Siempre revise sus documentos de firmware.
Flujo de trabajo 1: trazador de lápiz
- 1
Diseño en software vectorial
Los trazadores sólo entienden rutas, no píxeles, rellenos ni texto sin formato. Utilice Inkscape, Illustrator o Affinity Designer para crear rutas de trazo SVG. Convierte todo el texto en contornos. Elimine rellenos, mapas de bits y efectos: el convertidor los ignora silenciosamente.
- 2
Optimice el SVG
Fusione rutas duplicadas (el lápiz trazaría la misma línea dos veces), simplifique los nodos densos y establezca las dimensiones del documento en milímetros (no en píxeles) para evitar problemas de escala de DPI más adelante.
- 3
Convertir a G-Code
El convertidor traduce cada ruta en movimientos G1 e inserta comandos de elevación de pluma M3/M5 entre trazos desconectados. La configuración más importante es la clasificación de rutas: en qué orden se dibujan los trazos. Un pobre tipo envía el bolígrafo zigzagueando por la página miles de veces. Una clasificación del vecino más cercano puede reducir el tiempo de viaje en un 50% o más en obras de arte densas.
- 4
Enviar a través de un remitente G-Code
Transmita el archivo al firmware GRBL a través de Universal Gcode Sender (UGS) o bCNC. El remitente entrega líneas una por una; GRBL traduce cada uno en pulsos de motor paso a paso.
Flujo de trabajo 2: grabador/cortador láser
- 1
Elige tu modo: vectorial o rasterizado
El modo vectorial traza caminos a potencia constante; utilícelo para cortar contornos y grabar líneas. El modo ráster se desplaza hacia adelante y hacia atrás como una impresora, variando la potencia píxel por píxel; utilícelo para fotografías y rellenos sombreados. Un solo trabajo puede utilizar ambos modos en capas separadas.
- 2
Generar G-Code con configuración láser
Herramientas como LightBurn o LaserGRBL generan M3 S[valor] para disparar el láser y M5 para detenerlo. En el modo ráster, el valor S cambia en cada línea G1, reproduciendo gradientes en escala de grises. Para esto, GRBL debe compilarse en modo láser: desactiva la rampa de velocidad y permite una respuesta de potencia instantánea.
- 3
Pruebe primero en chatarra
La potencia y la velocidad varían dramáticamente según el material. Realice siempre una pequeña prueba de red de potencia/velocidad en el mismo material antes de comenzar el trabajo real.
Láser: use gafas de seguridad clasificadas para su longitud de onda (CO2 = 10,600 nm; grabadores de diodos ≈ 450 nm; estos requieren gafas diferentes). Asegúrese de que haya ventilación: el grabado produce humos tóxicos de casi todos los materiales. Nunca deje desatendido un láser en funcionamiento. CNC: sujete la pieza de trabajo antes de hacer funcionar el husillo; una pieza no asegurada puede salir despedida a gran velocidad. Conozca su parada de emergencia antes de comenzar.
Flujo de trabajo 3: Impresión 3D
- 1
Modele y exporte como STL o STEP
Diseñar en Fusion 360, Blender, FreeCAD o similar. STL es el formato de intercambio estándar; STEP ofrece una geometría más precisa para piezas de ingeniería.
- 2
Cortar en capas
Una cortadora (PrusaSlicer, Cura, Bambu Studio) corta el modelo en capas horizontales de 0,1 a 0.3mm y calcula trayectorias, soportes, rellenos y puentes. Un movimiento típico se parece a G1 X42.5 Y88.3 E0.0234 F4500: mover el cabezal mientras se extruye exactamente 0.0234mm de filamento. La cortadora también inserta M109 y M190 para calentar la boquilla y la cama antes de que comience la impresión.
- 3
Enviar mediante tarjeta SD o red
Marlin, Klipper o RepRapFirmware ejecuta el archivo. Klipper descarga la computación a una Raspberry Pi y admite la configuración de entrada: mide la resonancia del cuadro con un acelerómetro y la filtra de los comandos de movimiento, lo que reduce los artefactos de timbre y permite velocidades de impresión más altas.
Flujo de trabajo 4: Mecanizado CNC
- 1
Modelo en CAD
Utilice Fusion 360, SolidWorks o FreeCAD. Las piezas mecanizadas requieren tolerancias de 0.01–0.05mm, por lo que la calidad del modelo determina directamente la calidad de la pieza.
- 2
Definir trayectorias de herramientas en CAM
El software CAM (Fusion 360 CAM, VCarve, Mastercam) le permite especificar la herramienta, la estrategia de corte (limpieza adaptativa, contorno, cajera), la profundidad de corte, la velocidad del husillo y la velocidad de avance. El objetivo es lograr un acoplamiento eficiente de la herramienta sin romper la broca ni quemar el material.
- 3
Postproceso para su controlador
Cada máquina industrial CNC habla su propio dialecto: Fanuc, Siemens Sinumerik, Heidenhain, Haas. Un posprocesador dentro de su software CAM traduce trayectorias de herramientas genéricas a la sintaxis exacta que espera su máquina. El uso del posprocesador incorrecto no sólo produce piezas defectuosas: puede estrellar la máquina contra la pieza de trabajo, destruyendo las herramientas y creando un peligro para la seguridad.
SVG a G-Code: lo que realmente sucede
Las rutas SVG utilizan curvas, arcos y líneas rectas Bézier. G1 solo dibuja líneas rectas, por lo que los convertidores deben cerrar la brecha de dos maneras:
El facetado divide las curvas en muchos pequeños segmentos rectos. Las curvas más suaves requieren segmentos más cortos, lo que significa archivos más grandes y posibles interrupciones del movimiento cuando el búfer de comandos de la máquina no puede seguir el ritmo.
El ajuste de arco es más inteligente: detecta cuando una serie de segmentos cortos forman colectivamente un círculo y reemplaza todo el grupo con un solo comando G2 o G3. Un círculo que toma 360 líneas G1 se convierte en una línea de G-Code. Las limas se encogen hasta un 90%, el movimiento es perfectamente suave y la máquina mantiene una velocidad continua a lo largo del arco. No todas las compilaciones de GRBL son compatibles con G2/G3; verifique antes de habilitarlas.
Exportaciones Illustrator en 72 DPI. Inkscape antes de v0.92 usaba 90 DPI. Las herramientas modernas utilizan 96 DPI. Si su convertidor asume 96 DPI pero su archivo proviene de Illustrator, cada dimensión es un 33% demasiado grande: una forma 100mm se traza en 133mm. Solución: haga coincidir la configuración de DPI de su convertidor con su aplicación de origen, o mejor aún, configure las dimensiones de su documento SVG en milímetros para que el DPI sea completamente irrelevante.
Dialectos G-Code: por qué un archivo no se adapta a todas las máquinas
Los comandos de movimiento central (G0, G1, G2, G3) funcionan en todas partes. Todo lo demás (secuencias de inicio, cambios de herramientas, sintaxis de comentarios) varía según la familia de firmware. Ejecutar G-Code desde el controlador incorrecto en una máquina CNC profesional no solo produce resultados incorrectos, sino que también puede causar un rápido choque contra la pieza de trabajo.
- GRBL: firmware dominante para trazadores de lápiz, grabadores láser y pequeños enrutadores CNC para aficionados. Basado en Arduino, ampliamente compatible con convertidores y herramientas CAM.
- Marlin: dominante para impresoras 3D FDM. Agrega control del extrusor, códigos M de temperatura y nivelación de la base además de los comandos de movimiento estándar.
- Klipper: firmware de impresora 3D moderno que se ejecuta en una Raspberry Pi. Permite dar forma a la entrada y velocidades de impresión más altas que no se pueden lograr en Marlin con el mismo hardware.
- Smoothieware: firmware ARM de 32 bits para grabadores láser de rango medio y CNC: más margen de procesamiento que el GRBL basado en Arduino.
- Fanuc: controlador industrial CNC dominante a nivel mundial. Incluye ciclos fijos (G81–G89) y programación de macros.
- Siemens Sinumerik / Heidenhain / Haas: Controladores industriales europeos y estadounidenses con dialectos propios. Un posprocesador Fanuc no se ejecutará correctamente en una máquina Sinumerik.
Conversión de fotografías en trazados trazables
Las fotos contienen sólo píxeles, no datos de ruta. Antes de poder trazar o grabar una fotografía, se debe convertir a SVG. Enfoques comunes:
- Trazado de arte lineal: extrae los contornos y los bordes estructurales del sujeto como trazados SVG. Ideal para logotipos, retratos e ilustraciones con contornos claros.
- Rayado/rayado cruzado: asigna el brillo de la imagen a la densidad de líneas; las áreas más oscuras obtienen líneas más juntas. Los resultados evocan el grabado tradicional y trazan maravillosamente.
- Punteado: asigna el brillo a la densidad de puntos. Cada punto es un breve toque con lápiz o láser, similar a la ilustración puntillista.
- Mapeo de contornos: trata la luminosidad como una elevación, dibujando líneas concéntricas en los umbrales de brillo. Produce resultados fluidos y orgánicos a partir de fotografías.
- Estilos algorítmicos (Voronoi, campos de flujo, patrones de ondas): transformaciones matemáticas moduladas por el brillo de la imagen para arte abstracto pero reconocible dibujado a máquina.
El proceso completo: Foto → SVG → G-Code con Laserlinez
Laserlinez convierte su foto en un SVG limpio y listo para máquina en estilos profesionales creados para trazadores de lápiz y grabadores láser: dibujo lineal, sombreado, punteado y más. Las rutas de salida están estructuradas como trazos discretos, lo que minimiza los levantamientos del lápiz y el tiempo de viaje.
Una vez que tenga SVG, el servicio SVG-to-G-Code genera el archivo final con la configuración del perfil de la máquina, comprobaciones previas y un artefacto de vista previa.
Este proceso de dos pasos (foto a SVG a través de Laserlinez, SVG a G-Code a través del servicio) lo lleva desde una fuente ráster a un archivo láser o de trazador preparado por máquina sin necesidad de escribir G-Code a mano.
Lista de verificación previa al vuelo
- Simule primero: utilice NCViewer (navegador, gratuito) o CAMotics (escritorio, gratuito) para renderizar la trayectoria completa antes de que la máquina se mueva. Atrapa tamaños incorrectos, faltan elevaciones del corral y rápidos inesperados.
- Verifique las unidades: G20 (pulgadas) o G21 (milímetros) deben coincidir con las dimensiones esperadas.
- Establezca el origen del trabajo: referenciado de la máquina, G92 o desplazamiento WCS colocado correctamente.
- Verifique el espacio libre Z: la altura del lápiz hacia arriba o del láser debe estar físicamente libre de la pieza de trabajo y de cualquier abrazadera.
- Busque caminos duplicados: cada contorno solo una vez; duplica doble quemado o doble corte.
- Revisar las velocidades de avance: demasiado rápido provoca que se omitan pasos; demasiado lento hace perder el tiempo.
- Confirme las unidades de permanencia de G4: segundos para GRBL, milisegundos para Marlin.
- Funcionamiento en seco a una altura segura: verifique que todo el recorrido se ajuste al área de trabajo de la máquina.
- Prueba en restos: para láser y CNC corte siempre el mismo material en restos antes de enviar la pieza final.
Problemas comunes y soluciones
- El dibujo se refleja: SVG Y aumenta hacia abajo; G-Code Y aumenta hacia arriba. Habilite la inversión del eje Y en su convertidor.
- Tamaño de salida incorrecto: no coinciden los DPI. Illustrator = 72, antiguo Inkscape = 90, herramientas modernas = 96. Haga coincidir los DPI del convertidor con su aplicación de origen o defina las dimensiones de SVG en milímetros.
- La máquina tartamudea en las curvas: demasiados segmentos diminutos desbordan el buffer de movimiento. Habilite el ajuste del arco, aumente la tolerancia de linealización o reduzca la velocidad de avance.
- El lápiz se arrastra y nunca se levanta: falta el comando M5 o el espacio libre Z es demasiado bajo para levantar físicamente el papel.
- El trabajo lleva mucho más tiempo de lo esperado: ordenación deficiente de las rutas. Vuelva a ordenar las rutas con vpype antes de regenerar G-Code.
- La máquina se mueve a una ubicación incorrecta al inicio: el origen del trabajo no está establecido. Vuelva a casa, avance hasta el origen deseado y ejecute G92 X0 Y0 antes de comenzar.
Comentarios
Cargando comentarios...