Saltar al contenido
Asesor IA
  1. Inicio
  2. Aprender
  3. Códigos G y M

Códigos G y M para CNC: lista de torno y fresadora, con ciclos fijos

Respuesta corta

Los códigos G y M son las instrucciones de un programa CNC. El código G dice cómo moverse: rápido o cortando, en recta o en arco, y con qué ciclo. El código M prende y apaga funciones como husillo, refrigerante y fin de programa. La base es igual en Fanuc, Haas y Siemens; los ciclos cambian.

Antes de correr un programa, revise el manual de su control y de su máquina. Los códigos de esta página son los de uso común en Fanuc y compatibles; el fabricante de la máquina puede cambiar o agregar funciones, sobre todo en los códigos M.

Actualizado el 24 de octubre de 2026Revisado por Horacio Campos, Ing. en SistemasPor Mario Campos, Ing. Mecánico18 min de lectura
En esta guía01G contra M02Códigos G03Códigos de torno04Códigos M05Ciclos fijos06G83 y G7307G84 y G7408G76 y G9209Fanuc, Haas y Siemens10Programa completo11La herramienta12Preguntas13Siga aprendiendo14Fuentes

¿Qué diferencia hay entre código G y código M?

El código G (función preparatoria) le dice a la máquina cómo moverse: rápido o en corte, en recta o en arco, en qué plano, en qué unidades y con qué ciclo. El código M (función miscelánea) prende y apaga cosas de la máquina: M03 arranca el husillo a la derecha, M05 lo para, M08 abre el refrigerante y M30 termina el programa.

Dos ideas le ahorran la mitad de los choques:

  • Modal y no modal. Un código modal se queda activo hasta que otro del mismo grupo lo reemplaza. Si escribe G01 en un bloque, los siguientes bloques siguen cortando en recta aunque no repita el G01, hasta que aparezca G00, G02 o G03. Un código no modal, como G04 (pausa) o G28 (regreso a referencia), sólo trabaja en su bloque.
  • Grupos. Los códigos G se agrupan por función: movimiento (G00 a G03), plano (G17 a G19), unidades (G20/G21), compensación de radio (G40 a G42), ciclos fijos (G73 a G89), etcétera. En un mismo bloque puede haber varios G si son de grupos distintos; dos del mismo grupo se pisan y manda el último (o el control marca alarma, según el modelo).

Cómo se lee un bloque

Un bloque es una línea del programa. Cada palabra es una letra seguida de un número:

N20 G01 X40. Z-25. F0.2
  • N20: número de bloque (opcional; sirve para ubicarse).
  • G01: interpolación lineal, cortando.
  • X40. Z-25.: a dónde ir. En torno, X es diámetro; en fresadora, X, Y y Z son coordenadas de la mesa y el husillo.
  • F0.2: avance. En torno con G99 son 0.2 mm por vuelta; en fresadora con G94, mm por minuto.

Otras letras que va a ver: S (rpm o velocidad de corte), T (herramienta y corrector), M (función de máquina), R, Q y P (datos de ciclos), H y D (correctores de largo y radio en fresadora). El punto decimal importa: en muchos controles Fanuc, X40 sin punto se lee como 40 milésimas de milímetro, no 40 mm, según un parámetro de la máquina.

¿Cuáles son los códigos G más usados en torno y fresadora?

La tabla junta los códigos de Fanuc en fresadora y en torno con el sistema de códigos G «A», que es el de la mayoría de los tornos Fanuc en México. La última columna es lo que casi ninguna lista dice: qué dato de la herramienta necesita ese código para trabajar bien.

Códigos G de uso común, Fanuc fresadora y torno (sistema A)
CódigoQué hace¿Modal?DóndeQué pide de la herramienta
G00Posicionamiento en rápido, sin cortarSíTorno y fresadoraNada; nunca entre al material en G00
G01Interpolación lineal al avance FSíTorno y fresadoraAvance por diente o por vuelta del fabricante
G02 / G03Arco en sentido horario / antihorario (con R o con I, J, K)SíTorno y fresadoraEn fresado de arcos interiores, bajar el avance
G04Pausa (P en milisegundos o X en segundos)NoTorno y fresadoraÚtil al fondo de una caja o barreno ciego
G17 / G18 / G19Plano XY / ZX / YZ para arcos y compensaciónSíFresadora (el torno trabaja en G18)—
G20 / G21Pulgadas / milímetrosSíTorno y fresadoraQue los correctores estén en las mismas unidades
G28Regreso al punto de referencia de la máquinaNoTorno y fresadoraEspacio libre para el cambio de herramienta
G40Cancela la compensación de radioSíTorno y fresadora—
G41 / G42Compensación de radio a la izquierda / derecha de la trayectoriaSíTorno y fresadoraRadio de punta del inserto (torno) o radio de la fresa (fresadora)
G43 / G49Compensación de largo de herramienta (con H) / la cancelaSíFresadoraLargo medido de la herramienta en su portaherramientas
G50Límite de rpm cuando se usa G96SíTornoRpm máximas del chuck y de la pieza
G54 a G59Sistemas de coordenadas de trabajo (cero pieza)SíTorno y fresadora—
G80Cancela el ciclo fijoSíFresadora—
G81 a G89Ciclos fijos de barrenado, machueleado, rimado y boreadoSíFresadoraVer ciclos fijos
G90 / G91Fresadora: coordenadas absolutas / incrementalesSíFresadora—
G94 / G95Fresadora: avance en mm/min / mm por vueltaSíFresadoraAvance por diente × dientes × rpm (G94)
G96 / G97Velocidad de corte constante (S en m/min) / rpm constantes (S en rpm)SíTornoVc del grado del inserto para G96; rpm calculadas para G97
G98 / G99Torno: avance por minuto / por vuelta. Fresadora: en ciclos, regreso al plano inicial / al plano RSíTorno y fresadora (significado distinto)Avance por vuelta del inserto (G99 en torno)

Fuentes: Haas Automation, referencia de códigos G de fresadora y tarjeta de códigos G y M de torno (estilo Fanuc); FANUC, Operator's Manual Series 0i-F, por referencia.

El mismo código, otra cosa en torno

Este es el error más caro del que pasa de fresadora a torno Fanuc: en el torno con sistema A, G90 no es absoluto, es un ciclo de cilindrado de una pasada; G94 no es avance por minuto, es un ciclo de refrentado; y G92 no desplaza coordenadas, es el ciclo de roscado de una pasada. En ese torno lo absoluto y lo incremental se distingue con la letra: X y Z son absolutos, U y W incrementales. El avance por minuto y por vuelta es G98 y G99.

¿Qué códigos G de torno CNC hay que conocer?

Además de los de movimiento, en torno hay tres pares que deciden si la pieza sale bien o el inserto dura poco.

G96, G97 y G50: velocidad de corte y rpm

Con G96 el número S es la velocidad de corte en m/min, y el control sube o baja las rpm según el diámetro para mantenerla. Es lo que pide el inserto: el fabricante da una Vc por grado y material, no unas rpm. Las rpm salen de rpm = 1000 × Vc / (π × D): con Vc de 200 m/min, en un diámetro de 20 mm son 3,183 rpm. Al refrentar hacia el centro el diámetro tiende a cero y las rpm se disparan; por eso, antes de G96, va G50 S con las rpm máximas que aguanta el chuck. Con G97, S son rpm fijas; se usa para roscar y para barrenar al centro. Para sacar la Vc o las rpm de su herramienta use la calculadora de velocidad y avance.

G98 y G99: avance por minuto o por vuelta

En torno casi todo se programa en G99, mm por vuelta, porque así viene el dato del rompevirutas del inserto (por ejemplo F0.15 a F0.35). G98, mm por minuto, se usa con herramienta motorizada o cuando el husillo está parado.

G70, G71 y G72: desbaste y acabado por perfil

G71 desbasta un perfil por pasadas a lo largo (diámetro exterior o interior), G72 lo hace por pasadas de refrentado y G70 da la pasada de acabado sobre el mismo perfil. En Fanuc G71 lleva dos bloques: el primero con profundidad de pasada y retracción; el segundo con los números del primer y último bloque del perfil (P y Q), las demasías en X y Z (U y W) y el avance. G73 repite el perfil desplazado, útil en piezas forjadas o fundidas. La profundidad de pasada de G71 la pone el inserto: cada rompevirutas tiene un rango de profundidad y avance. Vea cómo escogerlo en la guía de torneado y en la nomenclatura ISO de insertos, que también le dice el radio de punta que usa G41/G42.

¿Qué hacen los códigos M en CNC?

Los códigos M encienden y apagan funciones. Los de la tabla son casi universales, pero Siemens advierte en su material de capacitación que los códigos M dependen del fabricante de la máquina: una M para abrir la puerta o soplar aire en una máquina puede no existir en otra.

Códigos M de uso común
CódigoQué haceNota
M00Paro de programaSiempre se detiene; se reanuda con arranque de ciclo
M01Paro opcionalSólo se detiene si el botón de paro opcional está activo; útil para revisar después de cada herramienta
M03Husillo a la derecha (horario)Con S
M04Husillo a la izquierda (antihorario)Insertos de mano izquierda o herramienta volteada
M05Para el husillo—
M06Cambio de herramientaFresadora; en torno la torreta gira con T
M08 / M09Refrigerante encendido / apagadoEl refrigerante por el centro de la herramienta suele tener otra M, según el fabricante
M29Machueleado rígidoEn muchos Fanuc va antes de G84; depende del fabricante de la máquina
M30Fin de programa y regreso al inicio—
M98 / M99Llama un subprograma / regresa de élHaas agrega M97 para subprogramas locales

Fuentes: Haas Automation, tarjeta de códigos G y M de torno (M03, M05, M08, M30); Siemens, «SINUMERIK – G-code & M-codes on Turning» (C101).

¿Qué son los ciclos fijos de barrenado, de G81 a G89?

Un ciclo fijo empaqueta en un bloque los movimientos de un barreno: bajar en rápido al plano R, entrar al avance hasta Z, y salir. Después de declararlo, cada bloque con sólo X y Y repite el ciclo en otra posición, hasta que G80 lo cancela. G98 regresa al plano inicial entre barrenos (para librar prensas y escalones) y G99 sólo al plano R (más rápido).

Ciclos fijos de fresadora (Fanuc y Haas)
CicloUsoLetrasHerramienta
G81Barrenado directo, sin pausaX Y Z R FBroca de centros, broca corta, broca de carburo con refrigerante interno
G82Barrenado con pausa en el fondoX Y Z R P FAvellanador, broca de centros, barreno ciego con fondo limpio
G73Picoteo rápido: retrocede poco para romper virutaX Y Z R Q FBroca en material que hace viruta larga
G83Picoteo completo: sale hasta R para sacar la virutaX Y Z R Q FBroca en barreno profundo; ver G83
G84 / G74Machueleado derecho / izquierdoX Y Z R F (P)Machuelo; ver G84
G85Entra y sale al avanceX Y Z R FRima
G86Entra al avance, para husillo, sale en rápidoX Y Z R FBarra de boreado de desbaste (deja raya al salir)
G80Cancela el ciclo——

Fuente: Haas Automation, referencia de códigos G de fresadora (G73, G81–G89).

¿Qué broca necesita picoteo y cuál no? Depende del largo contra el diámetro, del material y de si la broca tiene refrigerante interno. Lo explicamos en qué broca usar.

¿Qué es Q en el ciclo G83 y cuándo usar G73?

En G83, Q es la profundidad de cada picoteo, siempre incremental: la broca baja Q, sale hasta el plano R para sacar la viruta y vuelve a bajar otro Q, hasta llegar a Z. G73 baja el mismo Q, pero en vez de salir sólo retrocede un poco para romper la viruta; es más rápido y sirve cuando la viruta se rompe pero no se atora. Si la viruta se empaca en la flauta, G83.

El valor de Q no es del programador: lo pone la broca. OSG, para sus microbrocas de carburo EXOCARB MAX-MINI, pide picotear cada 0.25 a 0.5 veces el diámetro cuando el barreno pasa de 3 veces el diámetro. Con broca de 2 mm, Q de 0.5 a 1 mm. Otra serie trae otra regla, y las brocas de carburo con refrigerante interno muchas veces trabajan sin picoteo. Revise la ficha de su broca.

(MICROBROCA DE CARBURO D2, BARRENO DE 10 MM = 5 X D)
G90 G54 G00 X20. Y15.
S8000 M03              (VC ≈ 50 M/MIN; TOME LA VC DEL FABRICANTE)
G43 H03 Z25. M08
G99 G83 X20. Y15. Z-10. R1. Q0.8 F160   (PICOTEO DE 0.8 MM = 0.4 X D)
X40.                   (MISMO CICLO EN X40)
G80 G00 Z100. M09

Fuentes: Haas Automation, «G83 Normal Peck Drilling Canned Cycle» («Q – Peck depth, always incremental»); OSG, EXOCARB MAX-MINI, List 5340. El avance F160 es ilustrativo; use el de la ficha de la broca. En Fanuc Q tiene el mismo significado (manual 0i-F, por referencia).

¿Cómo se programa el machueleado con G84 y G74?

G84 es el ciclo para machuelo derecho y G74 para izquierdo. El machuelo baja girando, en el fondo invierte el husillo y sale por el mismo hilo. La regla que no se puede romper: el avance tiene que estar amarrado a las rpm. En mm/min, F = paso × rpm. Si el avance no coincide con el paso, el machuelo jala o empuja el hilo, la rosca sale fuera de medida y el machuelo se rompe.

  • M12 × 1.75 a 500 rpm: F = 1.75 × 500 = F875 (el ejemplo de Haas).
  • M8 × 1.25 a 800 rpm: F = 1.25 × 800 = F1000.
  • En avance por vuelta (G95), F es igual al paso: F1.25.

Rígido o flotante

En el machueleado rígido el control sincroniza el husillo con el eje Z, así que el avance real coincide con el paso; el machuelo va en un portaherramientas sólido o en un portamachuelos sincronizado que absorbe los pequeños errores al invertir. En el flotante la máquina no sincroniza y un portamachuelos con compensación axial absorbe la diferencia. Si su máquina lo permite, use rígido: la rosca sale más exacta y puede machuelear a más rpm. En Haas el rígido es de serie; en muchos Fanuc se activa con M29 antes de G84, pero eso lo define el fabricante de la máquina.

(MACHUELO M12 X 1.75, BARRENO CIEGO, BROCA PREVIA DE 10.2 MM)
G90 G54 G00 X20. Y15.
S500 M03
G43 H05 Z25. M08
G98 G84 X20. Y15. Z-20. R5. F875.   (F = 1.75 X 500)
G80 G00 Z100. M09

La broca previa sale de la tabla de broca para machuelo, y la forma del machuelo (punta helicoidal, hélice, laminador) de qué machuelo usar. El paso que va en F es el del machuelo, no el del tornillo «parecido».

Fuente: Haas Automation, «G84 Tapping Canned Cycle» (AP-602): M12 × 1.75 a S500, F = P × RPM = 1.75 × 500 = F875.

¿Cómo se programa una rosca en torno con G76 y G92?

Hay dos formas de roscar en torno Fanuc. G92 da una pasada por bloque: usted escribe un bloque por cada profundidad. G76 reparte solo todas las pasadas con profundidad decreciente, entrando por el flanco, y deja las de acabado. Para producción casi siempre conviene G76; G92 sirve cuando quiere controlar cada pasada o en controles viejos.

G76 en Fanuc: dos bloques

G76 P(m)(r)(a) Q(Δd mín) R(d)
G76 X(U) Z(W) R(i) P(k) Q(Δd) F(paso)
  • Primer bloque. P junta tres datos de dos dígitos: m, pasadas de acabado; r, salida en chaflán (en décimas del paso); a, ángulo de la punta (60 para rosca métrica o unificada). Q es la pasada mínima y R el sobrematerial del acabado.
  • Segundo bloque. X es el diámetro de fondo, Z el largo, R la conicidad (0 en rosca recta), P la altura del hilo, Q la primera pasada y F el paso. P y Q de este bloque van en micras, sin punto decimal.

Ejemplo M20 × 1.5 exterior: altura del hilo 0.6134 × 1.5 = 0.920 mm (P920) y diámetro de fondo 20 − 1.2269 × 1.5 = 18.16 mm.

G97 S800 M03                   (RPM FIJAS PARA ROSCAR)
G00 X24. Z5.                   (ARRANQUE CON DISTANCIA PARA ACELERAR)
G76 P020060 Q50 R0.05          (2 ACABADOS, SIN CHAFLAN, 60 GRADOS, PASADA MIN 0.05)
G76 X18.16 Z-25. P920 Q350 F1.5 (FONDO, LARGO, ALTURA 0.92, 1A PASADA 0.35)

Haas usa un G76 de un solo bloque con otras letras, y VARGUS, en su software GENius, genera el G76 de Fanuc en formato de dos líneas o de una, según el control. Por eso no copie un G76 de una máquina a otra sin revisar.

G92: una pasada por bloque

G97 S800 M03
G00 X24. Z5.
G92 X19.4 Z-25. F1.5   (1A PASADA)
X18.9                  (CADA BLOQUE ES OTRA PASADA)
X18.5
X18.3
X18.16                 (A FONDO)
X18.16                 (PASADA EN VACÍO PARA LIMPIAR)
G00 X100. Z100.

El reparto de pasadas de este G92 es ilustrativo. El número de pasadas y la profundidad de cada una las da el fabricante del inserto de roscar según el paso y el material.

Lo que pide de la herramienta: un inserto de roscar del paso correcto (perfil completo) o de rango de pasos (perfil parcial), en un portainsertos de roscado de la mano correcta. Cómo elegir el perfil, cuántas pasadas dar y cómo medir la rosca, en roscado en torno.

¿El código G es igual en Fanuc, Haas y Siemens?

La base sí: G00, G01, G02, G03 y G90/G91 en fresadora significan lo mismo. Lo demás cambia, y las diferencias que más confunden son éstas:

Diferencias reales entre controles
FunciónFanuc (torno sistema A)HaasSiemens Sinumerik
Pulgadas / milímetrosG20 / G21G20 / G21G70 / G71 (también G700 / G710)
G70 y G71Acabado / desbaste por perfilTorno: acabado / desbaste por perfilPulgadas / milímetros
G73Torno: desbaste repitiendo perfil. Fresadora: picoteo rápidoTorno: desbaste por perfil. Fresadora: picoteo rápidoSe usan ciclos CYCLE en lugar de G73
Roscado multipasadaG76 en dos bloquesG76 en un bloqueCiclo de roscado (CYCLE97 / CYCLE99)
Barrenado profundo y machueleadoG83 / G84G83 / G84 (rígido de serie)CYCLE83 / CYCLE84
Límite de rpm con velocidad constanteG50 SG50 SLIMS=
Programar «estilo Fanuc»—Es estilo FanucG291 activa el modo ISO; G290 regresa a Siemens

Fuentes: Siemens, «SINUMERIK – G-code & M-codes on Turning» (C101): G70 pulgadas, G71 métrico, G290/G291; Haas Automation, tarjeta de códigos G y M de torno (G20/G21, G70, G71, G73, G76).

Si su planta tiene máquinas de varias marcas, los postprocesadores del CAM se encargan de estas diferencias. Si programa a pie de máquina, tenga a la mano la tarjeta de su control.

¿Cómo se ve un programa de torno completo, línea por línea?

Una flecha de barra de 25 mm: refrentar, cilindrar a 20 mm en 30 mm de largo y roscar M20 × 1.5 en 25 mm. Torno Fanuc o compatible, sistema A, X en diámetro, milímetros.

%
O1001 (FLECHA D20 CON ROSCA M20X1.5)
N10 G21 G18 G40 G99         (MM, PLANO ZX, SIN COMPENSACION, AVANCE POR VUELTA)
N20 G28 U0. W0.             (REGRESO A REFERENCIA ANTES DE GIRAR LA TORRETA)
N30 T0101                   (INSERTO DE TORNEAR, CORRECTOR 1)
N40 G50 S3000               (TOPE DE RPM PARA G96)
N50 G96 S200 M03            (VC 200 M/MIN, HUSILLO A LA DERECHA)
N60 G00 X27. Z2. M08        (ACERCAMIENTO EN RAPIDO, REFRIGERANTE)
N70 G00 Z0.
N80 G01 X-1.6 F0.15         (REFRENTADO; PASA EL CENTRO 2 VECES EL RADIO DE PUNTA)
N90 G00 X22.5 Z2.
N100 G01 Z-30. F0.25        (DESBASTE A D22.5)
N110 G00 X23.5 Z2.
N120 G42 G00 X19.8 Z2.      (COMPENSACION DE RADIO DE PUNTA PARA EL ACABADO)
N130 G01 Z-30. F0.12        (ACABADO A D19.8, DIAMETRO MAYOR DE LA ROSCA)
N140 G01 X26.
N150 G40 G00 X100. Z100.    (CANCELA COMPENSACION Y SE ALEJA)
N160 T0303                  (INSERTO DE ROSCAR 1.5 ISO EXTERIOR, CORRECTOR 3)
N170 G97 S800 M03           (RPM FIJAS: 800 RPM = 50 M/MIN EN D20)
N180 G00 X24. Z5.
N190 G76 P020060 Q50 R0.05
N200 G76 X18.16 Z-25. P920 Q350 F1.5
N210 G00 X100. Z100. M09
N220 M05
N230 M30
%
  • N40–N50: sin el G50, al llegar al centro el control intentaría girar a miles de rpm. A Vc 200 en D20 ya pide 3,183 rpm, así que el tope de 3,000 entra antes del centro.
  • N80: X−1.6 no es un error: el inserto con radio de punta de 0.8 mm necesita pasar el centro dos veces su radio, en diámetro, para no dejar un botón.
  • N120: G42 compensa el radio de punta en el acabado. El radio y el número de punta van en la tabla de correctores.
  • N170: para roscar, G97. Con G96 las rpm cambiarían con el diámetro y la rosca se «brincaría» entre pasadas.
  • N180: el arranque a Z5 deja distancia para que el eje acelere al paso; con rpm altas pida más.

El proceso completo que programan estos códigos (orden de operaciones, sujeción, elección del inserto) está en la guía de torneado.

¿Dónde consigo la herramienta que pide cada ciclo?

El código mueve la máquina; el resultado lo decide la herramienta. En AHNSA surtimos lo que corre en estos ciclos:

Si quiere confirmar el picoteo de una broca, el paso y la broca previa de un machuelo o las pasadas de una rosca antes de correr la primera pieza, hable con un asesor de AHNSA.

Preguntas frecuentes

¿Qué diferencia hay entre código G y código M?

El código G le dice a la máquina cómo moverse: rápido o en corte, en recta o en arco, en qué plano y con qué ciclo. El código M prende y apaga funciones de la máquina: M03 arranca el husillo a la derecha, M05 lo para, M08 abre el refrigerante y M30 termina el programa.

¿Qué es G00 y G01?

G00 mueve la herramienta en rápido, sin cortar, para posicionarla; G01 la mueve en línea recta al avance F que usted programa, cortando. Los dos son modales: siguen activos hasta que otro código del mismo grupo, como G02 o G03, los cambia. Nunca entre al material en G00.

¿El código G es igual en Fanuc, Haas y Siemens?

La base sí: G00, G01, G02, G03 y G90/G91 significan lo mismo. Lo demás cambia: en Siemens G70/G71 son pulgadas y milímetros, y en un torno Haas (estilo Fanuc) son ciclos de acabado y desbaste, con G20/G21 para unidades. Los ciclos y sus letras también cambian; revise el manual de su control.

¿Qué es Q en el ciclo G83?

Es la profundidad de cada picoteo, siempre incremental: la broca baja Q, sale a sacar la viruta y vuelve a bajar otro Q hasta Z. El valor lo pone la broca: OSG pide, para sus microbrocas de carburo, picotear cada 0.25 a 0.5 veces el diámetro pasando de 3·D. Con broca de 2 mm, Q de 0.5 a 1 mm.

¿Qué ciclo uso para machuelear en CNC?

G84 para machuelo derecho (G74 para izquierdo), de preferencia con machueleado rígido. El avance debe amarrarse a las rpm: en mm/min, F = paso × rpm. Un M12 × 1.75 a 500 rpm lleva F875. Si el avance no coincide con el paso, el machuelo jala o empuja el hilo y se rompe.

¿Cómo se programa una rosca con G76 en Fanuc?

En dos bloques. El primero, G76 P(m)(r)(a) Q(Δdmín) R(d): pasadas de acabado, salida, ángulo de la punta, pasada mínima y sobrematerial. El segundo, G76 X Z R(i) P(k) Q(Δd) F: diámetro de fondo, largo, conicidad, altura del hilo, primera pasada y paso. A diferencia de G92, el ciclo hace todas las pasadas solo.

Siga aprendiendo

Fuentes

FANUC, Haas, SINUMERIK, OSG y VARGUS son marcas de sus titulares. Las mencionamos sólo para identificar controles y herramientas; AHNSA no está afiliada a los fabricantes de controles.

¿Le sirvió esta página?