Programación CNC y cálculo de parámetros
Nicolas Garzón Acevedo,
[email protected] 14/10/2025
Introducción a la programación CNC
La programación de máquinas de control numérico computarizado (CNC) se basa
en lenguajes de bajo nivel conocidos como códigos G y M. Los códigos G controlan el
movimiento y las operaciones geométricas de la herramienta, mientras que los códigos M
activan funciones auxiliares, como el husillo, el refrigerante o el cambio de herramienta.
Una página educativa explica que los códigos G describen posiciones y movimientos como
el posicionamiento rápido (G00) y la interpolación lineal (G01), y que los códigos M se
utilizan para operaciones no relacionadas con el posicionamiento, por ejemplo detener el
programa, encender o apagar el husillo y activar sistemas de refrigeración[3, 2].
Los programas CNC se forman a partir de bloques de texto. Cada bloque habitualmen-
te comienza con un número de secuencia (N), seguido de comandos G o M y parámetros.
Los comandos son modales: permanecen activos hasta que otro comando del mismo grupo
los modifica. Por ejemplo, una vez seleccionado un plano de trabajo con G17 (plano XY ),
la máquina supondrá ese plano hasta que se emita G18 (XZ) o G19 (Y Z). Otros comandos
modales son la selección de unidades (G20 para pulgadas y G21 para milímetros) y el modo
de posicionamiento (G90 para coordenadas absolutas y G91 para coordenadas incrementa-
les). El modo absoluto calcula las coordenadas a partir del origen de programa, mientras
que el modo incremental suma las distancias relativas entre puntos consecutivos.
Sistemas de coordenadas y planos de trabajo
El control CNC utiliza varios sistemas de coordenadas. El sistema de máquina se
establece en el “home” de máquina y sirve como referencia fija. Los códigos G54 a G59
permiten definir desplazamientos de trabajo: cada uno especifica la ubicación de la pieza
en la mesa y actúa como nuevo origen para los movimientos siguientes. Una referencia
técnica explica que al ejecutar G54 o G55, máquina cambia el punto cero a la posición
correspondiente y mantiene ese desplazamiento activo hasta que se emite otro código de
la misma familia o G53[4]. De este modo se pueden mecanizar múltiples piezas en una
misma fijación sin reprogramar las coordenadas.
Los planos de trabajo se seleccionan con G17 (plano XY ), G18 (XZ) o G19 (Y Z). Las
unidades se definen con G20 (pulgadas) o G21 (milímetros). La instrucción G28 envía los
ejes a sus posiciones de referencia mediante un punto intermedio, permitiendo retirar la
herramienta de la pieza antes de volver al home. Para anular una compensación de radio
o longitud de herramienta se usan G40 y G49, respectivamente[1].
1
Ciclos fijos y comandos auxiliares
Los ciclos fijos simplifican operaciones repetitivas. Entre los más utilizados están:
G73 taladrado con peck : taladra en pasos sucesivos retirándose entre cada paso para
evacuar virutas.
G82 taladrado con pausa: taladra y mantiene la herramienta en el fondo del agujero
durante un tiempo programado (parámetro P ).
G83 taladrado con retracciones profundas: similar a G73 pero con profundidad de
corte mayor y retirada completa al plano de seguridad R después de cada pasada.
G84 roscado rígido: coordina la rotación del husillo con el avance de la mesa para
generar roscas. En modo G95, el parámetro F define el paso de rosca; en G94, F se
calcula como el producto de la velocidad del husillo en rpm por el paso de rosca en
milímetros.
Para finalizar un ciclo se emplea G80, que cancela cualquier ciclo activo y devuelve
el control al modo de interpolación normal. El cambio de herramienta se programa con
M06 y suele ir precedido de una retractación en Z mediante G28 para que la máquina se
encuentre en posición segura. Los códigos M manejan el husillo y el refrigerante: M03 inicia
el husillo en sentido horario, M04 lo hace antihorario, M05 lo detiene y M08/M09 encienden
o apagan el fluido de corte.
Cálculo de parámetros de corte y avance para las herra-
mientas
La selección correcta de la velocidad de corte (Vc ) y de la velocidad de avance (Vf ) de-
termina la vida útil de la herramienta y la calidad del acabado. Las fórmulas de corte para
fresado indican que la velocidad de corte (en metros por minuto) depende del diámetro
de la herramienta D y la frecuencia de rotación n (rpm):
πDn 1000 Vc
Vc = , n= , (1)
1000 πD
mientras que la velocidad de avance de la mesa se calcula como
Vf = fz · Z · n, (2)
donde fz es el avance por diente y Z el número de dientes de la herramienta. Estas
relaciones provienen de la definición de velocidad de corte y del hecho de que cada diente
avanza un incremento fz por vuelta[5].
A continuación se muestran los cálculos detallados para las siete herramientas del
inventario. Cuando se conoce la frecuencia de rotación (S) se calcula Vc sustituyendo en
la primera ecuación. Para fresado se supone normalmente que las herramientas poseen
dos filos activos; en taladrado, el avance por revolución se toma como el doble de fz . En
roscado rígido (G84) el código F se programa como el paso de rosca (p) y la velocidad de
avance equivalente es p n.
2
Ejemplo de cálculo por herramienta
T1 – Broca 11 mm Para una broca de 11 mm de diámetro se programó S = 1734 rpm.
Sustituyendo en la primera fórmula se obtiene Vc = π×11×1734/1000 ≈ 59,9 m/min.
Con un avance por revolución frev = 0,25 mm/rev (taladrado con dos labios), la ve-
locidad de avance resulta F = frev · n ≈ 0,25 × 1734 ≈ 433,5 mm/min.
T2 – Macho 1/2–13 UNC El paso de rosca es p = 25,4/13 = 1,953 846 mm. En rosca-
do rígido, F se programa igual al paso de rosca, por lo que F = 1,953 846 mm/rev.
A la velocidad dada S = 375 rpm la velocidad de avance equivalente es Vf = p n ≈
1,953846 × 375 ≈ 732,7 mm/min.
T3 – Fresa 16 mm Con S = 4774 rpm la velocidad de corte es Vc = π×16×4774/1000 ≈
240 m/min. Suponiendo Z = 2 dientes y fz = 0,10 mm, el avance se calcula como
F = fz Z n = 0,10 × 2 × 4774 ≈ 954,8 mm/min.
T4 – Planeadora 40 mm Con S = 1908 rpm y D = 40 mm se obtiene Vc ≈ 239,8 m/min.
Tomando un avance por diente ligeramente mayor fz = 0,20 mm y Z = 2, la veloci-
dad de avance resulta F = 0,20 × 2 × 1908 ≈ 763,2 mm/min.
T5 – Fresa 8 mm Para una fresa más pequeña se utilizó una velocidad de corte recomen-
dada de 240 m/min. El cálculo n = 1000 Vc /(πD) = 1000×240/(π×8) ≈ 9549,3 rpm.
Con Z = 2 y fz = 0,10 mm se obtiene F = 0,10 × 2 × 9549,3 ≈ 1909,9 mm/min.
T6 – Broca de centros 3,2 mm El centro requiere bajos avances. A S = 3800 rpm y
con frev = 0,05 mm/rev (equivalente a fz = 0,025 mm para dos filos), la velocidad
de avance es F = 0,05 × 3800 = 190 mm/min; la velocidad de corte correspondiente
es Vc ≈ π × 3,2 × 3800/1000 = 38,2 m/min.
T7 – Avellanador/Avellanador con chaflán 16 mm Con S = 4372 rpm se obtiene
Vc ≈ 219,8 m/min. El avance programado fue 218 mm/min. Se deduce un avance
por diente fz = F/(Z n) = 218/(2 × 4372) ≈ 0,025 mm.
Resumen de parámetros. Para facilitar la consulta se resume en la Tabla 1 la infor-
mación calculada para cada herramienta. Los valores de Vc y Vf se han redondeado a un
decimal, y las suposiciones sobre el número de dientes y el avance por diente se indican
en la columna “Supuestos”.
Cuadro 1: Velocidades calculadas para las siete herramientas.
Herramienta Tipo D [mm] Supuestos S [rpm] F [mm/min]
T1 Broca helicoidal 11 frev = 0,25 1734 433.5
T2 Macho 1/2–13 UNC 12.7 F = p = 1,95 375 732.7
T3 Fresa de 2 labios 16 Z = 2, fz = 0,10 4774 954.8
T4 Planeadora 40 Z = 2, fz = 0,20 1908 763.2
T5 Fresa 8 Vc = 240, Z = 2, fz = 0,10 9549.3 1909.9
T6 Broca de centros 3.2 frev = 0,05 3800 190.0
T7 Avellanador 16 Z = 2, F = 218 4372 218.0
3
Diccionario de códigos G y M
Las Tablas 2 y 3 recogen los códigos G y M estándar junto con su función. La enu-
meración se basa en listas proporcionadas por recursos educativos de CNC y referencias
técnicas[1, 2].
4
Códigos G (geométricos y modales)
Cuadro 2: Principales códigos G y su función (fresado/torneado)[1, 3, 4].
Código Categoría Función
G00 Movimiento Posicionamiento rápido; mueve la herramienta a máxima ve-
locidad sin cortar.
G01 Movimiento Interpolación lineal con avance programado.
G02/G03 Movimiento Interpolación circular en sentido horario (G02) o antihorario
(G03).
G04 Espera Pausa temporal (dwell ) por un tiempo especificado.
G10 Coordenadas Ajuste de los puntos cero de los sistemas G54–G59 para fijar
el origen de trabajo.
G17/G18/G19 Plano Selecciona el plano de trabajo (XY, XZ o YZ).
G20/G21 Unidades Usa pulgadas (G20) o milímetros (G21).
G28 Referencia Desplaza los ejes al home a través de un punto intermedio para
retirar la herramienta antes del cambio.
G40 Compensación Cancela la compensación del radio de la herramienta.
G41/G42 Compensación Activa la compensación de radio a la izquierda (G41) o a la
derecha (G42) de la trayectoria.
G43/G49 Compensación Aplica (G43) o cancela (G49) la compensación de longitud de
herramienta.
G54–G59 Coordenadas Selecciona un sistema de coordenadas de trabajo; cada código
especifica un desplazamiento distinto.
G73 Ciclo fijo Ciclo de taladrado con golpes (peck ); evacua virutas mediante
retracciones parciales.
G80 Ciclo fijo Cancela los ciclos fijos (G81–G89) y vuelve al modo de inter-
polación normal.
G81 Ciclo fijo Taladrado simple.
G82 Ciclo fijo Taladrado con pausa en el fondo del agujero.
G83 Ciclo fijo Taladrado con retracciones profundas; similar a G73 pero con
retirada completa al plano R.
G84 Ciclo fijo Ciclo de roscado a derecha; coordina rotación y avance para
cortar roscas.
G90/G91 Movimiento Selecciona modo de posicionamiento absoluto (G90) o incre-
mental (G91).
G94/G95 Avance Define el modo de avance: en G94 el avance se especifica en
mm/min; en G95, en mm por revolución.
G98/G99 Retorno Selecciona el plano de retorno de los ciclos fijos: en G98 se
vuelve al plano inicial; en G99 al plano R.
G96/G97 Velocidad G96 mantiene velocidad de corte constante (torneado); G97
cancela esta función y usa rpm constantes.
G10/G52/G92 Coordenadas Comandos para definir o desplazar temporalmente los sistemas
de coordenadas activos.
5
Códigos M (funciones auxiliares)
Cuadro 3: Principales códigos M y su función[2, 1].
Código Función
M00 Parada del programa que obliga al operador a reanudar manualmente.
M01 Parada opcional (solo se activa si el control lo permite).
M02/M30 Fin del programa; M30 además resetea el control y prepara la próxima ejecución.
M03 Enciende el husillo en sentido horario.
M04 Enciende el husillo en sentido antihorario.
M05 Detiene el husillo.
M06 Cambio de herramienta.
M07/M08 Encender refrigerante (neblina o chorro).
M09 Apagar refrigerante.
M10/M11 Abrir o cerrar mordazas de fijación.
M48/M49 Desactivar o activar el override de avances y velocidad.
M58 Activar fluido de corte interno de alta presión.
M98 Llamar a un subprograma.
M99 Finalizar subprograma y regresar al programa principal.
Otros Existen muchos códigos M adicionales para funciones especiales como cambios de
palé, control de evacuación de viruta, etc.
Códigos más utilizados y recomendaciones para el examen
Aunque el diccionario anterior cubre la mayoría de los códigos estándar, en la práctica
cotidiana y en las evaluaciones académicas ciertos códigos aparecen con frecuencia. La Ta-
bla 4 resume estos comandos con una breve explicación y su uso típico. Su estudio permite
redactar programas eficientes y comprender ejemplos de las diapositivas suministradas.
6
Cuadro 4: Códigos G y M de uso frecuente en fresado y taladrado[1, 3, 2].
Código Uso frecuente Comentario
G00 Posicionamiento rápido Se usa para mover la herramienta en vacío sin
cortar; seguro cuando la trayectoria está libre.
G01 Interpolación lineal Corta en línea recta a velocidad de avance; per-
manece activo hasta que otro comando de movi-
miento lo sustituye.
G02/G03 Arcos y círculos Permiten mecanizar curvas precisas en sentido
horario o antihorario.
G04 Espera Introduce una pausa (por ejemplo para refrigerar
o cambiar de husillo).
G17/G18/G19 Plano de trabajo Selecciona el plano donde operan G02/G03; im-
prescindible para interpolaciones circulares.
G20/G21 Unidades Cambia entre pulgadas y milímetros; conviene fi-
jarlo al inicio del programa.
G28 Volver al origen Lleva los ejes al "homeüsando un punto interme-
dio; se usa para retirar la herramienta y realizar
cambios seguros.
G40/G41/G42 Compensación de radio G41/G42 activan compensación de radio a iz-
quierda o derecha; G40 la cancela.
G43/G49 Compensación de longitud G43 aplica la compensación de longitud de herra-
mienta (usando un corrector H); G49 la cancela.
G54–G59 Sistemas de trabajo Seleccionan el origen de trabajo; útiles cuando se
mecanizan piezas repetidas o varias piezas en un
palé.
G73/G81–G84 Ciclos de taladrado G73 realiza taladrado con peck, G81 simple, G82
con pausa, G83 con retracción completa y G84
roscado.
G90/G91 Modos de coordenadas Determinan si las coordenadas se interpretan ab-
solutas o incrementales; conviene indicar el modo
al inicio.
G94/G95 Modo de avance G94 especifica el avance en mm/min; G95 lo de-
fine en mm por revolución.
M00/M01 Parada de programa M00 detiene la ejecución y espera intervención;
M01 solo se ejecuta si está activada la opción de
parada opcional.
M03/M04/M05 Control del husillo Encienden el husillo en sentido horario o antiho-
rario y lo detienen, respectivamente.
M06 Cambio de herramienta Selecciona la herramienta y activa el cambiador;
debe ir precedido de una retirada segura (G28
Z0).
M07/M08/M09 Refrigerante Activan (neblina o chorro) y desactivan el fluido
de corte.
M30 Fin de programa Termina el programa y reinicia el control.
M98/M99 Subprogramas M98 llama a un subprograma; M99 regresa al pro-
grama principal.
7
Programación paramétrica (macros)
Además de los comandos lineales, muchos controles permiten usar programación para-
métrica (Macro B en Fanuc) para crear patrones repetitivos con bucles y variables. En el
ejemplo de Excel suministrado se define una matriz de agujeros de 14×14. Las variables
#500 y #501 almacenan la posición inicial en X y Y , #505 define el paso entre agujeros,
#506 el avance por diente y #507 la rpm calculada mediante 1000 Vc /(πD), mientras que
#508 contiene la velocidad de avance Vf . El programa inicializa los contadores de fila y
columna y ejecuta un ciclo G73 para cada posición, decrementando #500 y #501 después
de cada agujero. Condiciones IF [cond] GOTO label controlan el número de agujeros
por fila y columna. Esta técnica permite parametrizar patrones complejos y ajustar el
tamaño de la matriz modificando sólo unas pocas variables.
Conclusiones y recomendaciones
Esta guía recopila los aspectos clave de la programación CNC manual que probable-
mente aparezcan en un examen: la interpretación de coordenadas absolutas e incremen-
tales, el uso de planos y sistemas de trabajo, los ciclos fijos de taladrado y roscado y la
distinción entre códigos G y M. Se presentaron las fórmulas para calcular la velocidad de
corte y el avance y se aplicaron a siete herramientas concretas, mostrando cómo ajustar
los parámetros según el diámetro, el material y el número de dientes. Las tablas de có-
digos proporcionan una referencia rápida; conviene memorizarlas o al menos comprender
su grupo funcional (movimiento, compensación, ciclo, sistema de coordenadas, funciones
auxiliares).
En los ejercicios, es buena práctica definir las unidades (G20/G21) y el modo de coor-
denadas (G90/G91) al comienzo del programa, usar G28 para retirar la herramienta antes
de un cambio y cancelar compensaciones con G40 y G49 cuando ya no sean necesarias.
Referencias
Referencias
[1] "Programación de máquinas de CNC con códigos G&M", TecnoEdu. La página in-
cluye un minidiccionario de códigos G y M y explica sus funciones básicas.
[2] "M-Code Cheat Sheet", Machining Concepts (2023). Describe una lista de códigos
M comunes y sus funciones, como la parada de programa y el control del husillo.
[3] Çomprender los códigos G y M para el mecanizado CNC", RapidDirect (2024). Pre-
senta los códigos G más usados y explica la diferencia entre G y M.
[4] "Sistemas de coordenadas CNC: G54–G59, G10, G54.1 y G52", Machining Doctor.
Explica cómo funcionan los desplazamientos de trabajo y cómo se seleccionan con
G54–G59.
[5] "Descubre cómo calcular la velocidad de corte en una fresadora", Aeromaquinados
(2025). Proporciona las fórmulas de velocidad de corte y velocidad de avance para
fresado.