Fanuc (fresado)
G01 G42 D01 X-15. Y0. F250
Se activa en un movimiento lineal fuera de la pieza y se cancela con G40 en otro movimiento lineal. D es el corrector de radio de la tabla de herramientas.
We use first-party cookies and technical storage to make the site work, Google reCAPTCHA security technology and, only if you accept, Vercel analytics (no cookies, no cross-site tracking). You can accept or reject analytics; both options are equivalent and you can change your choice at any time. More info: Cookie policy, Privacy policy, Legal notice and Terms and conditions.
Search and filter ISO commands by control, machine or function.
The CNC programming language is based on structured code blocks that control toolpaths, feeds and machine-tool functions. In this list of G and M codes you'll find a quick reference to the commands most used in turning and milling. Although an ISO standard exists, the exact execution of a canned cycle or an advanced interpolation can vary depending on the Fanuc, Heidenhain, Siemens or Haas control and the manufacturer's parameters.
G42 desplaza la trayectoria media herramienta hacia la derecha del contorno, mirando en el sentido de avance, usando el radio del corrector D. Es la imagen especular de G41: se usa cuando el material queda a la izquierda del avance. Con una fresa derecha girando en M03, G42 corresponde al fresado en oposición, y en torno es la compensación habitual del radio de punta de una plaquita derecha cilindrando hacia el plato.
Ver la ficha completa de la familiaFanuc (fresado)
G01 G42 D01 X-15. Y0. F250
Se activa en un movimiento lineal fuera de la pieza y se cancela con G40 en otro movimiento lineal. D es el corrector de radio de la tabla de herramientas.
Fanuc / Haas (torno)
G42 G01 X40. Z-2. F0.2
En torno G42 compensa el radio de punta de la plaquita. Además del radio hay que tener bien puesto el código de orientación de punta (0 a 9) en la tabla de correctores: con la orientación mal, la compensación se aplica en el sentido equivocado.
Haas (fresado)
G01 G42 D01 X-15. Y0. F250
Misma sintaxis que Fanuc. Si la tabla de correctores de la máquina trabaja en diámetro y escribes el radio (o al revés), la pieza sale fuera de medida por igual en todo el contorno.
Heidenhain TNC (Klartext)
L X-15 Y+0 RR F250
RR equivale a G42, RL a G41 y R0 a G40. El radio sale de la columna R de TOOL.T; el ciclo APPR/DEP permite entrar y salir del contorno con tangente o con arco sin construir el movimiento a mano.
| Letra | Qué indica | Unidad |
|---|---|---|
| D | Número del corrector de radio en fresado. En torno, el radio de punta y su orientación salen del corrector llamado con la T. | número entero (D01, D12...) |
| X Y (X Z en torno) | Punto final del bloque de activación y de cada tramo del contorno, en cotas de la pieza acabada. | mm / pulg |
| F | Avance del bloque de aproximación y del contorneado. | mm/min con G94, mm/vuelta con G95 |
| G17 / G18 / G19 | Plano en el que actúa la compensación. En fresado G17 (XY); en torno el plano es G18 (XZ). | modal, sin unidad |
Misma placa de 80 x 60 mm que el ejemplo de G41, pero recorrida en sentido antihorario con fresa de Ø12 y D01 = 6,0 mm. Es el caso de fresado en oposición, que sigue siendo la opción razonable cuando hay costra de laminación o de fundición que estropea el filo en la entrada, o en una máquina con juego apreciable en los husillos.
| O0042 (PERFIL EXTERIOR CON G42) | ( Cabecera del programa. ) |
| G21 G17 G40 G49 G80 | ( Estado de partida limpio: sin compensaciones y sin ciclos activos. ) |
| G91 G28 Z0. | ( Z a referencia en incremental antes del cambio de herramienta. ) |
| T1 M06 | ( Fresa de Ø12. ) |
| G90 G54 G00 X-25. Y-15. | ( Punto de partida fuera de la pieza, por debajo y a la izquierda del perfil. ) |
| G43 H01 Z50. M03 S3000 | ( Longitud de la T1 y husillo en marcha. ) |
| M08 | ( Refrigerante. ) |
| G00 Z-5. | ( Profundidad de pasada, todavía fuera del material. ) |
| G01 G42 D01 X-15. Y0. F250 | ( Activa la compensación a la derecha en un tramo con 15 mm de desplazamiento lateral en Y, muy por encima de los 6 mm de radio. ) |
| G01 X80. F450 | ( Pared inferior Y0 avanzando hacia +X. Mirando hacia donde avanza la fresa, el material queda a la izquierda: por eso G42. ) |
| Y60. | ( Pared derecha X80, subiendo. ) |
| X0. | ( Pared superior Y60, hacia -X. ) |
| Y-15. | ( Pared izquierda X0 bajando y salida por la prolongación, ya fuera del material. ) |
| G01 G40 X-25. | ( Cancela la compensación en recta y con la fresa fuera de la pieza. ) |
| G00 Z50. M09 | ( Retirada en Z y refrigerante fuera. ) |
| G91 G28 Z0. M05 | ( Z a referencia y husillo parado. ) |
| G90 M30 | ( Vuelve a absoluto y termina el programa. ) |
La regla es la misma para los dos y no depende de si el contorno es exterior o interior: mira en la dirección de avance. Si el material queda a la izquierda, la herramienta se desplaza a la derecha y toca G42. Con fresa derecha y M03, eso ocurre al recorrer un perfil exterior en sentido antihorario o una cajera en sentido horario, es decir, en fresado en oposición. En torno con torreta frontal y plaquita derecha, cilindrar de derecha a izquierda hacia el plato deja el material a la izquierda del avance y se compensa con G42.
G42 se activa en un bloque lineal que empieza fuera del material y cuyo desplazamiento lateral supera el radio de la herramienta, porque el control tiene que colocar el centro perpendicular al movimiento siguiente. La salida con G40 sigue la misma regla. En torno, además del radio hace falta el código de orientación de punta en la tabla de correctores: sin él, el control no sabe hacia dónde mira el filo y compensa al revés, sobre todo en conos y radios. G42 convive con G43 en fresado y con la T del corrector en torno.
La compensación solo afecta a la trayectoria, así que el margen dimensional queda en el corrector. En fresado, el corrector D es donde se ajustan las centésimas del perfil sin tocar el programa. En torno, la compensación de radio de punta no cambia nada en un cilindrado ni en un refrentado rectos, pero es imprescindible en conos y radios: sin ella el cono sale con el ángulo bien pero desplazado, y los radios salen cortos o largos según el sentido. Ese error crece con el radio de punta de la plaquita.
Solo el lado. Mirando en la dirección de avance, G41 desplaza la herramienta a la izquierda y G42 a la derecha. Como consecuencia, con G41 el material queda a la derecha del avance y con G42 a la izquierda. No tiene nada que ver con que el contorno sea exterior o interior.
Con una fresa derecha girando en M03, sí: G42 deja el material a la izquierda del avance y eso da fresado en oposición. Con herramienta a izquierdas o husillo en M04 la relación se invierte, así que la regla útil es mirar el sentido de giro y el lado del material, no el código.
Sí, y es el caso más frecuente: con torreta frontal y plaquita derecha cilindrando hacia el plato, la compensación de radio de punta se activa con G42. Se cancela con G40 antes de retirar la herramienta y hay que tener bien puesta la orientación de punta en el corrector.
Algunos controles lo admiten en un movimiento lineal, pero es una fuente clásica de sobrecorte porque la herramienta cruza de un lado al otro del contorno. Lo seguro es cancelar con G40 fuera del material y volver a activar en un bloque de aproximación nuevo.
Casi siempre es el valor del corrector: radio donde el control espera diámetro, un desgaste antiguo sin borrar o el corrector de otra herramienta. Mide el perfil, calcula la diferencia por lado y corrígela en la tabla; el programa no se toca.
G00
MovementQuick positioning
Fast movement to a coordinate without controlling cutting advance.
G01
MovementLinear interpolation
Controlled linear movement with programmed advance.
G02
MovementHourly circular interpolation
Circular arc clockwise in the active plane.
G02.1/G03.1
InterpolationSpiral interpolation (circular threading B)
CW/CCW spiral interpolation: continuous helical motion with variable pitch; used in B threading and some lapping operations.
G02.2/G03.2
InterpolationInvolute interpolation
Interpolation along an involute circle (involute interpolation), used in gear manufacturing.
G03
MovementCounterclockwise circular interpolation
Counterclockwise circular arc in the active plane.
G04
Program controlTimed dwell
Temporarily stops execution for a defined time or number of revolutions.
G05/G05.1
High speedHigh speed / AI contour
Enables high-speed machining functions, path look-ahead or advanced contour control.
G5/G5.1/G5.2
Advanced interpolationSplines and NURBS
Interpolations by cubic spline, quadratic spline or NURBS in controls that support it.
G05.4
High speedHRV3/HRV4 on/off
Enables or disables HRV3/HRV4 (High Response Vector) current control to improve servo precision at high speed.
G06.2
High speedNURBS interpolation
Interpolation of NURBS (Non-Uniform Rational B-Spline) curves directly in the control, reducing block points and improving smoothness.
G07
InterpolationHypothetical axis interpolation
Defines a hypothetical (virtual) axis for interpolation; used when machining symmetrical parts or to coordinate non-physical moves.
G7/G8
LatheDiameter/radius mode around lathe
Selects whether lathe X coordinates are read as diameter or radius depending on the control.
G08/G09
ToolpathSmoothing and block-wise exact stop
Functions used to activate/deactivate smoothing or require exact stopping in a specific block according to control.
G10
OffsetsOffset writing
Lets you write tool offsets, work offsets or other data from the program.
G12/G13
Milling cyclesCircular pocket
Circular interpolation cycle to machine pockets or circular patterns according to control.
G15/G16
CoordinatesPolar coordinates
Activates or cancels programming in polar coordinates, usually radius and angle.
G17/G18/G19
DrawingPlane selection
Defines the active plane for arcs and offsets.
G20/G21
UnitsUnits inches/millimeters
Select programming in inches or millimeters.
G22/G23
SafetyProgrammed stroke limits
Activates or deactivates zone checking/stored limits according to control.
G codes prepare and govern tool movement: rapid traverses, linear interpolation, circular interpolation, canned cycles, working planes and compensations. M codes control auxiliary machine functions such as spindle, coolant, stop, tool change or program end.
G00 is used for rapid positioning, G01 for linear cutting feed and G02/G03 for clockwise or counterclockwise circular interpolation. They are the basis of most CNC programs on milling machines and lathes.
Canned cycles simplify repetitive operations such as drilling, tapping, boring or roughing. Their syntax varies a lot between controls, so it's always wise to check the machine manual.
G codes (preparatory) define the geometry and tool movement, such as linear interpolations or roughing cycles. M codes (miscellaneous or auxiliary) control the machine hardware, such as starting the spindle (M03), the coolant (M08) or the end of program (M30).
Not entirely. Although basic moves such as G00, G01, G02 and G03 are universal, complex canned cycles like G71 for roughing or G83 for peck drilling have different syntax and parameters depending on whether you use Fanuc, Haas, Siemens or Heidenhain.
G01 is the linear interpolation code. It tells the tool to move in a straight line to a given coordinate at a controlled cutting feed programmed with the letter F.
G90 sets absolute positioning, where every coordinate is measured from the part zero (origin). G91 activates incremental positioning, where each new move is calculated from the tool's current position.
These codes activate tool or insert radius compensation. G41 offsets the path to the left of the programmed contour relative to the feed direction, G42 to the right. They are used to machine profiles, chamfers and radii to exact size without gouging.
To avoid crashes you must cancel modal functions once they are no longer needed. G80 cancels any active canned cycle, such as drilling cycles. G40 cancels tool radius compensation, and G49 cancels length compensation, widely used on milling machines.
The most standardised hardware codes are M03 (spindle clockwise), M04 (spindle counter-clockwise), M05 (spindle stop), M08 (coolant on), M09 (coolant off) and M30 (end of program, axes stop and rewind).
No. Although interpolation moves (G00 to G03) are a widely adopted ISO standard, the syntax of complex cycles differs. For example, the lathe roughing cycle is G71 on Fanuc, but Siemens requires a different parameter structure such as CYCLE95.
Alongside the G and M codes, the letter F (feed) sets the cutting feed, the letter S (speed) sets the spindle rpm or cutting speed, and the letter T (tool) calls the tool number and its offset in the turret or magazine.
CNC IDE: editing with G/M tooltips, line inspector, conversion between controls and 2D/3D toolpath.
CNC Alarms and Solutions Guide. Enter the error code or symptom to find the cause and how to repair it at the machine.
Estimate the cycle time of a CNC program: cutting, rapids, canned cycles, dwells and tool changes. Parts/hour and breakdown by item.