Uma referência de códigos G e M multiplataforma, organizada por operação — o que você realmente quer que a máquina faça — em vez de por número de código. Cada linha é uma operação (um movimento com avanço, um arco, uma apalpação, um ciclo de furação, uma seleção de deslocamento de origem…) e a coluna de cada comando mostra o código exato que aquele comando usa para ela.
Abrange LinuxCNC, GRBL (1.1), Centroid (CNC12 — Acorn / Allin1DC / Oak; fresadora, salvo indicação em contrário), FANUC (0i / 30i, com foco em fresadora e particularidades de torno sinalizadas), Mach 3 (Mill Rev 1.84-A2) e Mach 4 (Mill v1.0).
Como ler as tabelas:
- Uma célula mostra o(s) código(s) que aquele comando usa para a operação —
p. ex., a linha "apalpar em direção à peça" mostra
G38.2para LinuxCNC,G31para FANUC eM115/M116para Centroid. —significa que o comando não tem código equivalente para aquela operação.- Um código com sublinhado pontilhado tem uma ressalva específica daquele comando; a observação completa está na coluna Observações daquela linha (e ao passar o mouse).
- Use o filtro de comandos no topo das tabelas para ocultar todas as colunas, exceto a do seu comando.
As fontes usadas na verificação dos fatos estão listadas no final deste documento.
#Códigos por operação
Movimento e interpolação
Os movimentos que realmente cortam. São os códigos mais portáveis — G0–G3 significam a mesma coisa em todos os comandos listados aqui.
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Posicionamento rápido | G0 |
G0 |
G0 |
G0 |
G0 |
G0 |
Deslocamento sem corte na velocidade máxima da máquina. |
| Movimento linear com avanço | G1 |
G1 |
G1 |
G1 |
G1 |
G1 |
Corte reto controlado por avanço; requer uma palavra F. |
| Arco / hélice em sentido horário | G2 |
G2 |
G2 |
G2 |
G2 |
G2 |
Offsets de centro I/J/K ou raio R, no plano ativo. Adicione um movimento em Z para obter uma hélice. |
| Arco / hélice em sentido anti-horário | G3 |
G3 |
G3 |
G3 |
G3 |
G3 |
Mesmas convenções do arco horário, direção oposta. |
| Pausa (dwell) | G4 |
G4 |
G4 |
G4 |
G4 |
G4 |
Mach3/4: P decimal = segundos, P inteiro = milissegundos. |
| Círculo completo horário (posição atual como centro) | — | — | — | — | G12 |
G12 |
Mach3: parcial |
| Círculo completo anti-horário | — | — | — | — | G13 |
G13 |
Mach3: parcial |
| Interpolação por spline cúbico | G5 |
— | — | — | — | — | Somente LinuxCNC. NÃO é o mesmo que o G5 do FANUC (look-ahead) — veja a observação de falsos amigos. LinuxCNC: G5 = spline cúbico por pontos de controle |
| Designação de eixo imaginário | — | — | — | G7.1 |
— | — | Preparação do FANUC para interpolação cilíndrica / polar. |
Seleção de plano
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Selecionar plano XY | G17 |
G17 |
G17 |
G17 |
G17 |
G17 |
Padrão. Arcos usam I/J. |
| Selecionar plano ZX | G18 |
G18 |
G18 |
G18 |
G18 |
G18 |
Arcos usam I/K. |
| Selecionar plano YZ | G19 |
G19 |
G19 |
G19 |
G19 |
G19 |
Arcos usam J/K. |
Coordenadas de trabalho e deslocamentos de origem
Onde fica o zero-peça. As origens estendidas além das seis primeiras são onde os comandos mais divergem.
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Selecionar sistema de coordenadas de trabalho 1–6 | G54 / G55 / G56 / G57 / G58 / G59 |
G54 / G55 / G56 / G57 / G58 / G59 |
G54 / G55 / G56 / G57 / G58 / G59 |
G54 / G55 / G56 / G57 / G58 / G59 |
G54 / G55 / G56 / G57 / G58 / G59 |
G54 / G55 / G56 / G57 / G58 / G59 |
G54 é o WCS padrão ao ligar a máquina na maioria dos comandos. |
| Sistemas de coordenadas de trabalho 7–9 | G59.1 / G59.2 / G59.3 |
— | — | — | G59.1 / G59.2 / G59.3 |
G59.1 / G59.2 / G59.3 |
O jeito do LinuxCNC / Mach de obter mais três origens de fixação. |
| Banco estendido de origens (endereçado por P) | — | — | — | G54.1 |
— | G54.1 |
FANUC: P1–P48 (0i) ou P1–P300 (30i). Mach4: P1–P248. O Centroid usa uma forma diferente, SEM decimal, abaixo. FANUC: G54.1 P1–P48 (0i) / P1–P300 (30i) Mach4: G54.1 P1–P248 |
| Deslocamentos de origem estendidos (Centroid) | — | — | G54 P1–P12 |
— | — | — | As 12 origens estendidas opcionais do Centroid (WCS nº 7–18). Note o espaço e a AUSÊNCIA de decimal — diferente do G54.1 Pn do FANUC. Centroid: também endereçável como E7–E18 |
| Definir valor do deslocamento de origem (absoluto) | G10 L2 |
G10 L2 |
G10 L2 |
G10 L2 |
G10 L2 |
G10 L2 |
P1 = G54 … P6 = G59. O WCS ativo não precisa corresponder ao P. |
| Definir deslocamento de origem na posição atual | G10 L20 |
G10 L20 |
G10 L20 |
G10 L20 |
G10 L20 |
G10 L20 |
Forma "zerar aqui". |
| Deslocamento de coordenadas local | G52 |
— | G52 |
G52 |
G52 |
G52 |
Deslocamento temporário aplicado sobre o WCS ativo. |
| Movimento em coordenadas de máquina (não modal) | G53 |
G53 |
G53 |
G53 |
G53 |
G53 |
Movimento único no sistema de coordenadas da máquina. |
| Definir posição / deslocamento de coordenadas | G92 |
G92 |
G92 |
G92 |
G92 |
G92 |
O FANUC tem G92.1 / G92.2 para cancelar ou restaurar; o Mach tem G92.1. |
Unidades e modos de deslocamento
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Programar em polegadas | G20 |
G20 |
G20 |
G20 |
G20 |
G20 |
|
| Programar em milímetros | G21 |
G21 |
G21 |
G21 |
G21 |
G21 |
|
| Modo absoluto | G90 |
G90 |
G90 |
G90 |
G90 |
G90 |
|
| Modo incremental | G91 |
G91 |
G91 |
G91 |
G91 |
G91 |
|
| Modo de centro de arco absoluto | G90.1 |
— | G90.1 |
— | G90.1 |
G90.1 |
I/J/K passam a ser coordenadas absolutas, não offsets. Centroid: varia conforme a versão do CNC12 |
| Modo de centro de arco incremental (padrão) | G91.1 |
G91.1 |
G91.1 |
G91.1 |
G91.1 |
G91.1 |
Modos de avanço e rotação
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Avanço por minuto | G94 |
— | G94 |
G94 |
G94 |
G94 |
Padrão em fresadoras. Num TORNO FANUC esse papel é do G98 — veja a observação de falsos amigos. |
| Avanço por rotação | G95 |
— | G95 |
G95 |
G95 |
G95 |
Num TORNO FANUC esse papel é do G99. |
| Avanço em tempo inverso | G93 |
G93 |
G93 |
G93 |
G93 |
G93 |
F = 1/minutos; necessário para alguns movimentos rotativos. Centroid: G93 liga, G94 desliga. |
Compensação de comprimento e de raio da ferramenta
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Compensação de raio DESLIGADA | G40 |
G40 |
G40 |
G40 |
G40 |
G40 |
Estado padrão. |
| Compensação de raio à ESQUERDA da trajetória | G41 |
— | G41 |
G41 |
G41 |
G41 |
A palavra D seleciona o corretor de offset. |
| Compensação de raio à DIREITA da trajetória | G42 |
— | G42 |
G42 |
G42 |
G42 |
|
| Compensação de raio dinâmica (offset no programa) | G41.1 / G42.1 |
— | — | — | — | — | O LinuxCNC coloca o valor D na própria linha do programa, em vez de num corretor. |
| Estilo de canto da compensação de raio | — | — | — | — | — | G40.1 / G40.2 |
Somente Mach4: G40.1 canto arredondado por arco, G40.2 canto reto. |
| Compensação de comprimento da ferramenta (positiva) | G43 |
— | G43 |
G43 |
G43 |
G43 |
A palavra H seleciona o corretor de comprimento. |
| Compensação de comprimento da ferramenta (negativa) | — | — | G44 |
G44 |
— | — | Raramente usada; estilo FANUC. O Centroid documenta o G44 no CNC12. |
| Compensação de comprimento dinâmica (no programa) | G43.1 |
G43.1 |
— | — | — | — | |
| Cancelar compensação de comprimento da ferramenta | G49 |
G49 |
G49 |
G49 |
G49 |
G49 |
|
| Definir entrada da tabela de ferramentas diretamente | G10 L1 |
— | G10 L1 |
G10 L1 |
G10 L1 |
G10 L1 |
P = número da ferramenta, R = valor. O Centroid documenta isso no CNC12. LinuxCNC: parcial |
| Definir comprimento da ferramenta para que a posição atual = valor | G10 L10 |
— | G10 L10 |
G10 L10 |
G10 L10 |
G10 L10 |
LinuxCNC: parcial |
| Definir desgaste de comprimento/raio e raio da ferramenta | — | — | G10 L11 / G10 L12 / G10 L13 |
G10 L11 / G10 L12 / G10 L13 |
G10 L11 / G10 L12 / G10 L13 |
G10 L11 / G10 L12 / G10 L13 |
O Centroid CNC12 documenta explicitamente a família L11/L12/L13; nos demais, o suporte varia. FANUC: varia Mach3: varia Mach4: varia |
Ciclos de furação, mandrilamento e rosqueamento
Ciclos fixos de furação. O GRBL não tem nenhum — os pós-processadores CAM expandem esses ciclos em movimentos G1 brutos.
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Cancelar ciclo fixo | G80 |
— | G80 |
G80 |
G80 |
G80 |
Necessário para sair dos modos de furação/mandrilamento/rosqueamento. |
| Furação simples | G81 |
— | G81 |
G81 |
G81 |
G81 |
Z desce em avanço, retorna em rápido. |
| Furação com pausa no fundo | G82 |
— | G82 |
G82 |
G82 |
G82 |
Para furo de centro / rebaixo. |
| Furação pica-pau (retração total) | G83 |
— | G83 |
G83 |
G83 |
G83 |
Q = profundidade de cada bicada; a retração total remove os cavacos. |
| Furação pica-pau de alta velocidade (retração curta) | G73 |
— | G73 |
G73 |
G73 |
G73 |
|
| Rosqueamento com macho direito | G84 |
— | G84 |
G84 |
G84 |
G84 |
Mach3: requer plugin do OEM para rosqueamento rígido |
| Rosqueamento com macho esquerdo | G74 |
— | G74 |
G74 |
G74 |
G74 |
O TORNO FANUC reatribui o G74 a um ciclo de canal frontal — veja falsos amigos. |
| Rosqueamento rígido | G33.1 |
— | — | — | — | G84.2 / G84.3 |
Códigos dedicados de rosqueamento rígido; nos demais, o modo rígido é um parâmetro do G84. LinuxCNC: código de rosqueamento rígido do LinuxCNC |
| Mandrilamento (entra em avanço, sai em avanço) | G85 |
— | G85 |
G85 |
G85 |
G85 |
|
| Mandrilamento (entra em avanço, para, sai em rápido) | — | — | — | G86 |
G86 |
G86 |
O conjunto de ciclos fixos do Centroid CNC12 é G81–G85 + G89; G86/G87/G88 não estão no manual. |
| Mandrilamento reverso | — | — | — | G87 |
G87 |
G87 |
|
| Mandrilamento com retração manual | — | — | — | G88 |
G88 |
G88 |
|
| Mandrilamento com pausa (sai em avanço) | G89 |
— | G89 |
G89 |
G89 |
G89 |
|
| Mandrilamento fino (parada orientada, deslocamento, retração) | — | — | G76 |
G76 |
G76 |
G76 |
O TORNO FANUC reatribui o G76 a um ciclo de rosqueamento — veja falsos amigos. Centroid: parcial; verifique conforme a versão |
Apalpação e medição de ferramenta
A maior divergência da página. LinuxCNC/GRBL usam G38.x, FANUC/Mach usam G31, e o Centroid usa exclusivamente códigos M.
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Apalpar em direção à peça, erro se não houver contato | G38.2 |
G38.2 |
M115 / M116 |
G31 |
G31 |
G31 |
Sintaxe FANUC: G31 P1–P4 para skip em múltiplas etapas. O Centroid NÃO tem G31/G38 — ele apalpa com códigos M de movimento protegido. Centroid: apalpação com movimento protegido; M115 sentido negativo, M116 positivo |
| Apalpar em direção à peça, sem erro se não houver contato | G38.3 |
G38.3 |
M115/M116 L1 |
— | — | — | Centroid: L1 suprime o erro de falta de contato |
| Apalpar afastando-se da superfície | G38.4 / G38.5 |
G38.4 / G38.5 |
M125 / M126 |
— | — | — | G38.4 gera erro se ainda houver contato; G38.5 não. Centroid: variantes de apalpação em afastamento |
| Múltiplas entradas de apalpador | — | — | — | — | — | G31.1 / G31.2 / G31.3 |
Seleciona entre várias entradas de apalpador. |
| Mover um eixo até uma chave comutar | — | — | M105 / M106 |
— | — | — | Avança o eixo indicado até uma chave/entrada do PLC abrir (P > 0) ou fechar (P < 0). Centroid: M105 sentido negativo, M106 sentido positivo |
Transformações de coordenadas — rotação, escala, espelhamento, polar
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Rotação de coordenadas LIGADA | G68 |
— | G68 |
G68 |
G68 |
G68 |
Rotaciona o plano ativo em torno de um centro. Somente plano XY no Mach3/4. |
| Rotação de coordenadas DESLIGADA | G69 |
— | G69 |
G69 |
G69 |
G69 |
|
| Escala LIGADA | — | — | G51 |
G51 |
G51 |
G51 |
P ou I/J/K = fatores de escala. O Mach4 alerta que a escala de arcos pode ser imprevisível. Centroid: o Centroid reúne escala E espelhamento no G51 |
| Escala DESLIGADA | — | — | G50 |
G50 |
G50 |
G50 |
O TORNO FANUC reatribui o G50 por completo — veja falsos amigos. Centroid: também desliga o espelhamento; parcial/depende da versão |
| Espelhamento LIGADO / DESLIGADO | — | — | — | G51.1 / G50.1 |
— | — | O Centroid não tem códigos separados de espelhamento — o espelhamento é embutido em G50/G51. |
| Coordenadas polares LIGADAS / DESLIGADAS | — | — | — | G16 / G15 |
— | G16 / G15 |
Codifica X como raio e Y como ângulo. |
Look-ahead, suavização e parada exata
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Parada exata (não modal, um bloco) | G9 |
— | G9 |
G9 |
G9 |
G9 |
Versão de bloco único do G61. |
| Parada exata (modal) | G61 |
G61 |
G61 |
G61 |
G61 |
G61 |
Desacelera completamente em cada ponto final. |
| Parada exata (variante) | G61.1 |
— | — | — | G61.1 |
G61.1 |
|
| Suavização de trajetória / modo contínuo | G64 |
G64 |
G64 |
G64 |
G64 |
G64 |
LinuxCNC: G64 P<tol>. O FANUC ajusta isso via G5.1 HPCC. FANUC: parcial; o ajuste do HPCC difere |
| Controle de contorno AI / HPCC (look-ahead) | — | — | — | G5.1 |
— | — | Look-ahead do FANUC: Q1 liga, Q0 desliga. NÃO é o mesmo que o spline G5 do LinuxCNC — veja falsos amigos. |
| Nano smoothing / variante do HPCC | — | — | — | G5.4 |
— | — | FANUC: apenas alguns 30i-B |
| Habilitar acel./desacel. com look-ahead (FANUC antigo) | — | — | — | G8 |
— | — | G8 P1 liga, G8 P0 desliga. |
Referenciamento e retornos à referência
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Retornar à posição de referência (home) | G28 |
G28 |
G28 |
G28 |
G28 |
G28 |
GRBL/Mach: posição pré-definida armazenada. |
| Armazenar o ponto de referência do G28 | G28.1 |
G28.1 |
— | — | G28.1 |
G28.1 |
|
| Retornar da referência (via ponto intermediário) | G29 |
— | G29 |
G29 |
G29 |
G29 |
|
| Retornar à referência secundária | G30 |
G30 |
G30 |
G30 |
G30 |
G30 |
|
| Armazenar o ponto de referência do G30 | G30.1 |
G30.1 |
— | — | G30.1 |
G30.1 |
|
| Verificação da posição de referência | — | — | — | G27 |
— | — | Verifica se a máquina está na posição de referência. |
Fluxo de programa e subprogramas
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Parada obrigatória de programa | M0 |
M0 |
M0 |
M0 |
M0 |
M0 |
Pressione cycle start para retomar. |
| Parada opcional | M1 |
M1 |
M1 |
M1 |
M1 |
M1 |
Ignorada, a menos que a chave OSTOP esteja ligada. |
| Fim de programa (sem rebobinar) | M2 |
M2 |
M2 |
M2 |
M2 |
M2 |
|
| Fim de programa + rebobinar | M30 |
M30 |
M30 |
M30 |
M30 |
M30 |
O que a maioria dos CAM emite no fim do arquivo. |
| Chamar subprograma | — | — | M98 |
M98 |
M98 |
M98 |
FANUC/Centroid/Mach: P<arquivo> L<repetições>. O LinuxCNC usa O-codes. |
| Retornar de subprograma / fim de macro | — | — | M99 |
M99 |
M99 |
M99 |
|
| Sub-rotinas nomeadas / numeradas | O-codes |
— | — | — | — | — | O modelo do LinuxCNC: o100 sub / o100 endsub / o100 call. LinuxCNC: o<n> sub / endsub / call |
| Chamada de macro (única) | G65 |
— | G65 |
G65 |
— | G65 |
Centroid: L = número de repetições, não avanço. Mach4: o arquivo de macro deve ser .nc; argumentos A–Z mapeiam para #1–#26. LinuxCNC: via sub-rotinas O-code |
| Chamada de macro modal / cancelamento | — | — | — | G66 / G67 |
— | G66 / G67 |
A lista do Centroid CNC12 documenta apenas o G65 de chamada única — sem G66/G67. |
| Reexecutar o programa desde o início | — | — | — | — | M47 |
M47 |
Mach4: parcial |
Macros, variáveis e controle de fluxo
Como cada comando faz desvios e laços. São construções de linguagem, não códigos G — mostradas para ajudar a portar macros. O Centroid é o caso notável: sem WHILE/DO.
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Variáveis paramétricas | #<named> |
— | #vars |
#vars |
VBScript |
Lua |
LinuxCNC: parâmetros nomeados e numerados Centroid: estilo Macro-B FANUC: Macro-B Mach3: Param1/2/3() Mach4: via script |
| Condicional (IF / THEN) | O… if/elseif/else/endif |
— | IF/THEN/ELSE |
IF[…] THEN / GOTO |
VBScript |
Lua |
Centroid: suportado |
| Laço (WHILE / DO) | O… while/endwhile |
— | — | WHILE[…] DO / END |
VBScript |
Lua |
O Centroid CNC12 NÃO tem laço WHILE/DO — use IF + GOTO. |
| Desvio (GOTO) | — | — | GOTO Nnnn |
GOTOn |
— | — | Centroid: salta para um número de bloco |
| Definir parâmetro interno do comando | — | — | G10 P_ R_ |
— | — | — | Específico do Centroid. Ex.: G10 P73 R0.02 configura a retração do pica-pau do G73 antes da chamada do ciclo. Centroid: sem palavra L |
Eixo-árvore e refrigeração
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Ligar eixo-árvore em sentido horário | M3 |
M3 |
M3 |
M3 |
M3 |
M3 |
A palavra S define a rotação. |
| Ligar eixo-árvore em sentido anti-horário | M4 |
M4 |
M4 |
M4 |
M4 |
M4 |
Modo laser do GRBL: potência dinâmica. |
| Parar eixo-árvore | M5 |
M5 |
M5 |
M5 |
M5 |
M5 |
|
| Orientar eixo-árvore (parada orientada) | — | — | M19 |
M19 |
M19 |
M19 |
Centroid: requer uma macro M19 personalizada. Mach3: depende de VBScript do fabricante. Mach3: depende do fabricante da máquina |
| Ligar refrigeração por névoa | M7 |
M7 |
M7 |
M7 |
M7 |
M7 |
|
| Ligar refrigeração por jorro | M8 |
M8 |
M8 |
M8 |
M8 |
M8 |
|
| Desligar toda a refrigeração | M9 |
M9 |
M9 |
M9 |
M9 |
M9 |
Troca de ferramenta
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Troca de ferramenta | M6 |
— | M6 |
M6 |
M6 |
M6 |
Combina com um Tn anterior. O GRBL pausa e solicita a troca. |
| Definir número da ferramenta atual (sem troca) | M61 |
— | — | — | — | — | Declara a ferramenta montada sem realizar a troca. |
Overrides de avanço e rotação
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Habilitar overrides de avanço e rotação | M48 |
— | M108 |
M48 |
M48 |
M48 |
O Centroid usa M108 para isso, em vez de M48. |
| Desabilitar overrides de avanço e rotação | M49 |
— | M109 |
M49 |
M49 |
M49 |
Frequentemente usado dentro de ciclos de rosqueamento. O Centroid usa M109. |
| Controle granular de overrides (LinuxCNC) | M50 / M51 / M52 / M53 |
— | — | — | — | — | Avanço (M50), eixo-árvore (M51), avanço adaptativo (M52), parada de avanço (M53). |
E/S digital e analógica
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Acionar saída digital | M62 / M64 |
— | M94 |
— | M62 / M64 |
M62 / M64 |
O Centroid usa M94 (ex.: M94/1 aciona a saída 1). Mach3: geralmente via scripts do OEM. Centroid: M94/n Mach3: parcial |
| Desligar saída digital | M63 / M65 |
— | M95 |
— | M63 / M65 |
M63 / M65 |
O Centroid usa M95 (ex.: M95/1 desliga a saída 1). Centroid: M95/n Mach3: parcial |
| Aguardar entrada | M66 |
— | M100 / M101 |
— | M66 |
M66 |
O Centroid usa M100/M101 (espera de bit do PLC). Mach4: P<entrada> L<timeout em s>. Mach3: parcial |
| Saída analógica | M67 / M68 |
— | — | — | — | M67 / M68 |
M67 sincronizada, M68 imediata. Mach4: parcial |
| Espera de bit do PLC (Centroid) | — | — | M100 / M101 |
— | — | — | M100 espera até um bit do PLC estar aberto/desligado; M101 até estar fechado/ligado. Os MESMOS números executam scripts de usuário no LinuxCNC/Mach — veja falsos amigos. Centroid: M100 aberto, M101 fechado |
| Família de macros de saída direta / E/S (Mach4) | — | — | — | — | — | M200–M219 / M220–M224 / M228 |
Estado modal (LinuxCNC)
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Salvar / restaurar estado modal | M70 / M71 / M72 / M73 |
— | — | — | — | — | M70 salva, M71 invalida, M72 restaura, M73 salva com restauração automática. |
Ciclos de torneamento / torno
Território de torno (T-series). As colunas acima descrevem o comportamento em FRESADORA; vários códigos significam outra coisa num torno.
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Modo diâmetro / raio (torno LinuxCNC) | G7 / G8 |
— | — | — | — | — | |
| Limite de RPM máxima do eixo-árvore (CSS) | G50 |
— | G50 |
G50 |
G50 |
G50 |
Torno FANUC: G50 S____ limita a RPM sob G96. Na fresadora, G50 significa desligar a escala — um verdadeiro falso amigo. LinuxCNC: parcial Centroid: parcial FANUC: G50 S____ Mach3: parcial |
| Definir origem das coordenadas de trabalho (torno FANUC) | — | — | — | G50 |
— | — | G50 X_ Z_ num torno FANUC define a origem de trabalho (o outro sub-uso do G50). FANUC: G50 X_ Z_ |
| Velocidade de corte constante (CSS) ligada | G96 |
— | G96 |
G96 |
G96 |
G96 |
S em m/min (G21) ou sfm (G20). Centroid: parcial Mach3: parcial |
| RPM constante do eixo-árvore (cancela CSS) | G97 |
— | G97 |
G97 |
G97 |
G97 |
Centroid: parcial Mach3: parcial |
| Rosqueamento sincronizado (passo constante) | G33 |
— | G33 |
G33 |
— | — | Centroid: opcional |
| Ciclo de torneamento de acabamento | — | — | G70 |
G70 |
— | G70 |
Usa um perfil definido por G71/G72. Centroid: somente T-series Mach4: parcial |
| Torneamento de desbaste (remoção de material) | — | — | G71 / G72 |
G71 / G72 |
— | G71 / G72 |
G71 longitudinal, G72 faceamento. FANUC: sintaxe Tipo I ou Tipo II. Centroid: somente T-series Mach4: parcial |
| Canal frontal (G74 do torno FANUC) | — | — | G74 |
G74 |
— | — | O mesmo G74 que significa rosqueamento com macho esquerdo numa fresadora. Centroid: T-series |
| Ciclo de rosqueamento (G76 do torno FANUC) | G76 |
— | G76 |
G76 |
— | — | O mesmo G76 que significa mandrilamento fino numa fresadora. Tipo I (bloco único) ou Tipo II (P/Q/R). LinuxCNC: torno Centroid: T-series |
| Avanço por minuto (torno FANUC) | — | — | — | G98 |
— | — | Num TORNO FANUC, G98 significa avanço/min — o papel que o G94 tem na fresadora. FANUC: somente torno |
| Avanço por rotação (torno FANUC) | — | — | — | G99 |
— | — | Num TORNO FANUC, G99 significa avanço/rotação — o papel que o G95 tem na fresadora. FANUC: somente torno |
Modo de retorno de ciclo fixo (fresadora)
| Operação | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Observações |
|---|---|---|---|---|---|---|---|
| Retornar ao Z inicial após o ciclo | G98 |
— | G98 |
G98 |
G98 |
G98 |
O TORNO FANUC reatribui o G98 a avanço por minuto — veja o grupo de torneamento e falsos amigos. |
| Retornar ao plano R após o ciclo | G99 |
— | G99 |
G99 |
G99 |
G99 |
O TORNO FANUC reatribui o G99 a avanço por rotação. |
#Falsos amigos — mesmo número, significado diferente
As tabelas de operações acima já resolvem o caso "código diferente, mesmo trabalho" — cada linha lista a grafia de cada comando, então não tem como passar despercebido. Esta seção trata do caso oposto e mais perigoso: o mesmo número faz coisas fundamentalmente diferentes em comandos ou modos distintos. Um programa que roda perfeitamente em um deles produzirá um resultado errado — ou uma colisão — em outro.
Se você está portando código G entre plataformas, esta é a seção para ler duas vezes.
#M100 / M101 — espera de bit do PLC vs. slot de script do usuário
Um operador formado em FANUC e um operador formado em Centroid escreverão
M100 por dois motivos completamente incompatíveis.
| Comando | M100 | M101 |
|---|---|---|
| Centroid CNC12 | Pausa o programa até o bit do PLC / entrada referenciado estar aberto (desligado / 0). Combine com M101. Mensagem personalizada via cncxmsg.txt |
Pausa até o bit do PLC estar fechado (ligado / 1) |
| LinuxCNC | Executa o arquivo de script externo do usuário chamado M100 no diretório de configuração (toda a faixa M100–M199 é reservada desta forma) |
Executa o script de usuário M101 |
| FANUC | Não atribuído no padrão. Normalmente definido pelo fabricante da máquina via ladder do PMC | Idem |
| Mach 3 | Slot livre — executa a macro VBScript M100.M1S se existir; caso contrário, indefinido |
Idem para M101.M1S |
| Mach 4 | Slot livre — executa a macro Lua M100.mcs se existir; caso contrário, indefinido |
Idem para M101.mcs |
| GRBL | Não suportado | Não suportado |
Impacto na portabilidade: Um programa Centroid que usa M100 /5000 para
aguardar um sinal de vácuo-pronto do PLC vai, no LinuxCNC, tentar executar um
script externo literalmente chamado M100 — um comportamento em execução
completamente diferente. Numa instalação padrão do Mach3 sem um M100.M1S
escrito, a mesma linha silenciosamente não faz nada. Sempre reescreva as
esperas explícitas de PLC ao migrar entre comandos.
#G98 / G99 — retorno de ciclo fixo (fresadora) vs. modo de avanço (torno FANUC)
A maior armadilha fresadora-vs-torno do FANUC.
| Comando / modo | G98 | G99 |
|---|---|---|
| FANUC fresadora | Retorno do ciclo fixo ao Z inicial | Retorno do ciclo fixo ao plano R |
| FANUC torno (T-series) | Avanço por minuto (o papel que o G94 tem na fresadora) | Avanço por rotação (o papel que o G95 tem na fresadora) |
| LinuxCNC (fresadora ou torno) | Retorno do ciclo fixo ao Z inicial | Retorno do ciclo fixo ao plano R |
| Centroid CNC12 (fresadora) | Retorno do ciclo fixo ao Z inicial | Retorno do ciclo fixo ao plano R |
| Mach 3 / Mach 4 | Retorno do ciclo fixo ao Z inicial | Retorno do ciclo fixo ao plano R |
Impacto na portabilidade: Um programa de torno FANUC T-series que define
G98 esperando avanço por minuto será, em todas as outras plataformas
listadas aqui, interpretado como uma mudança do modo de retorno do ciclo
fixo. A interpretação de modo de avanço do torno é exclusiva do FANUC
T-series.
#G50 — três significados completamente diferentes conforme a plataforma/modo
| Comando / modo | G50 |
|---|---|
| FANUC fresadora | Escala DESLIGADA (cancela o G51) |
| FANUC torno | Dois sub-usos distintos no mesmo comando: G50 X_ Z_ define a origem das coordenadas de trabalho; G50 S_____ limita a RPM máxima do eixo-árvore sob o modo CSS G96 |
| Mach 3 / Mach 4 | Escala DESLIGADA (fresadora) |
| LinuxCNC | Não implementado (o LinuxCNC não suporta a escala G50/G51 no estilo FANUC) |
| Centroid CNC12 fresadora | Suporte parcial a desligar escala; varia entre as versões do CNC12 |
| Centroid CNC12 torno (T-series) | Segue a convenção do torno FANUC |
| GRBL | Não suportado |
Impacto na portabilidade: Um programa de torno FANUC que emite
G50 S3000 para limitar a rotação de um eixo-árvore em CSS será ignorado ou
gerará erro em comandos de fresadora, porque o G50 do lado fresadora não
aceita palavra S.
#G74 — rosqueamento à esquerda (fresadora) vs. canal frontal (torno FANUC)
| Comando / modo | G74 |
|---|---|
| FANUC fresadora | Ciclo fixo de rosqueamento com macho esquerdo |
| FANUC torno | Ciclo de canal frontal / torneamento frontal com bicadas |
| LinuxCNC | Rosqueamento com macho esquerdo (fresadora) |
| Centroid CNC12 fresadora | Rosqueamento com macho esquerdo |
| Centroid CNC12 torno (T-series) | Canal frontal |
| Mach 3 / Mach 4 | Rosqueamento com macho esquerdo (fresadora) |
| GRBL | Não suportado |
Impacto na portabilidade: Mesmo código, mesmo fabricante de comando (FANUC), operação de usinagem totalmente diferente dependendo de o comando ser de fresadora ou de torno. Pós-processadores voltados a torno sempre assumem o significado do torno FANUC.
#G76 — mandrilamento fino (fresadora) vs. rosqueamento (torno FANUC)
| Comando / modo | G76 |
|---|---|
| FANUC fresadora | Ciclo de mandrilamento fino (parada orientada do eixo-árvore no fundo, retração com deslocamento lateral para não riscar a parede) |
| FANUC torno | Ciclo de rosqueamento em múltiplos passes — Tipo I (sintaxe antiga de bloco único) ou Tipo II (sintaxe moderna multibloco P_ Q_ R_). O layout do bloco é completamente diferente da versão para fresadora |
| LinuxCNC fresadora | Não suportado |
| LinuxCNC torno | Ciclo de rosqueamento |
| Centroid CNC12 fresadora | Parcial — verifique conforme a versão específica do comando |
| Centroid CNC12 torno (T-series) | Ciclo de rosqueamento |
| Mach 3 / Mach 4 fresadora | Mandrilamento fino |
| GRBL | Não suportado |
Impacto na portabilidade: Um bloco G76 de rosqueamento em torno tem uma lista de argumentos completamente diferente de um bloco G76 de mandrilamento em fresadora. Eles não são intercambiáveis.
#G5 / G5.1 / G5.4 — implementações diferentes de look-ahead de alta velocidade
| Comando | Família G5 |
|---|---|
| FANUC | G05.1 Q1 = controle de contorno AI ligado; G05.1 Q0 = desligado. Algumas variantes 30i-B usam G05.4. Comandos mais antigos usam G05 (sem decimal) ou G08 P1 para a mesma suavização de look-ahead/aceleração |
| LinuxCNC | G5 (sem decimal) = interpolação por spline cúbico — uma operação totalmente diferente, não um recurso de look-ahead para HSM |
| Centroid / Mach 3 / Mach 4 / GRBL | Não suportado |
Impacto na portabilidade: Mesmo número, matemática completamente
diferente. Um bloco G5 do LinuxCNC define uma curva spline por pontos de
controle; um G05 do FANUC ativa um modo de aceleração com look-ahead. Os
resultados não têm relação entre si.
#Resumo rápido de diferenças
O GRBL omite intencionalmente ciclos fixos, compensação de raio, coordenadas polares, escala, rotação, macros e subprogramas. Pós-processadores CAM voltados ao GRBL expandem os ciclos em movimentos G01 brutos e ignoram G41/G42 por completo.
O FANUC é a linhagem que todos os outros copiam, mas é onde ocorre a maior divergência no topo da linha. A maior armadilha entre comandos: G98/G99 são modos de retorno de ciclo fixo na fresadora, mas modos de avanço no torno. G50 e G70–G76 também são reatribuídos no torno. As opções de usinagem em alta velocidade (G05.1, G05.4, G08, ajuste do G64) variam conforme a geração do comando e o fabricante da máquina.
O LinuxCNC é o mais próximo de um superconjunto limpo do RS-274/NGC padrão. Acrescenta variantes de apalpação de primeira classe (G38.2–G38.5), códigos M de E/S digital/analógica via HAL (M62–M68), scripts de usuário M100–M199 e usa O-codes para sub-rotinas em vez de M98/M99 no estilo FANUC.
O Centroid (CNC12) é majoritariamente compatível com FANUC nos códigos
canônicos de furação, mandrilamento e macro. A programação de macros usa
variáveis # com desvios IF/THEN/ELSE e GOTO para número de bloco —
ele não tem laços WHILE/DO. A apalpação é feita com códigos M
(M105/M106, M115/M116/M125/M126), não com G31/G38. Os
deslocamentos de origem estendidos usam G54 Pn (sem decimal), não G59.1+
nem G54.1. Os ciclos de torno G70–G76 só se aplicam ao T-series. O conjunto
canônico de ciclos fixos de fresadora é G81–G85 + G89; o mandrilamento
reverso G86/G87/G88 e a macro modal G66/G67 não estão no manual do CNC12.
O Mach 3 é o comando comercial com menos recursos aqui — sem macros G65
(códigos M personalizados são arquivos VBScript .M1S), sem coordenadas
polares, sem deslocamentos de fixação estendidos além do G59.3, sem
multiapalpação G31. M62–M66 normalmente exigem scripts do OEM em vez de
funcionarem nativamente. Sub-rotinas via M98/M99 funcionam.
O Mach 4 é um superconjunto substancial do Mach 3: adiciona macros G65
(com extensão de arquivo de macro .nc obrigatória), fixações estendidas
G54.1 P1–P248, multiapalpação G31.0–G31.3, círculo completo G12/G13,
coordenadas polares, rosqueamento rígido G84.2/G84.3, estilos de canto de
compensação de raio G40.1/G40.2, E/S nativa M62–M68 e uma família M200–M228.
O Lua substitui o VBScript nos códigos M personalizados — macros do Mach3
não portam diretamente.
#Como este aplicativo trata códigos não suportados
O parser do G54.APP é permissivo — códigos G ou M não reconhecidos são
mantidos literalmente no código-fonte e simplesmente não afetam a
visualização. Assim, um arquivo escrito para FANUC com rotação G68 ou
chamadas de subprograma M98 renderizará os movimentos lineares e de arco
que ele entende e ignorará silenciosamente o resto. Sempre confira a
simulação contra o comportamento esperado do comando de destino antes de
usinar.
#Fontes
Estas são as referências públicas consultadas na elaboração desta tabela. Manuais dos fabricantes (FANUC, Centroid) acompanham o comando e podem não estar arquivados publicamente; onde um PDF do fabricante foi usado, a URL é a que estava disponível na época da redação.
LinuxCNC (gratuito, on-line):
- Referência rápida de códigos G — https://linuxcnc.org/docs/html/gcode/g-code.html
- Referência rápida de códigos M — https://linuxcnc.org/docs/html/gcode/m-code.html
- Manual principal do usuário — https://linuxcnc.org/docs/
GRBL 1.1 (código aberto):
- Wiki de comandos suportados — https://github.com/gnea/grbl/wiki/Grbl-v1.1-Commands
- Fonte da verdade
commands.md— https://github.com/gnea/grbl/blob/master/doc/markdown/commands.md
Centroid CNC12 (PDFs do fabricante):
- Macro Programming guide — https://www.centroidcnc.com/centroid_diy/downloads/acorn_documentation/centroid_cnc_macro_programming.pdf
- M-Series (Oak / Allin1DC) Operator's Manual v4.14 — https://www.centroidcnc.com/centroid_diy/downloads/CNC12-v414_operator_manuals/centroid-cnc12-oak-allin1dc-mill-operator-manual-v4.14.pdf
- v3.16 Mill Operator Manual — https://www.centroidcnc.com/downloads/centroid_v3.16_mill_operator_manual.pdf
- G and M codes extract — https://www.centroidcnc.com/centroid_diy/downloads/centroid_G_and_M_codes.pdf
- PLC + CNC Functions Programming Manual (CNC12 v5.x+) — https://www.centroidcnc.com/centroid_diy/downloads/centroid_plc_programming_manual.pdf
- Espelho no Helman CNC da lista de códigos M do Centroid Mill — https://www.helmancnc.com/centroid-m-code-cnc-mill/
- Post no fórum Centroid sobre a forma G10 P/R de definição de parâmetros — https://centroidcncforum.com/viewtopic.php?t=3429
FANUC (agregadores de terceiros dos manuais do fabricante; os PDFs do fabricante geralmente não são hospedados livremente):
- FanucWorld "Ultimate M-Code & G-Code List for Fanuc Controls" — https://content.fanucworld.com/m-code-g-code-list/
- REACO CNC FANUC Machining Center G/M codes — https://reacocnc.com/blogs/fanuc-g-code-m-code-list/g-code-m-code-machining-center
- REACO CNC FANUC CNC Lathe G/M codes — https://reacocnc.com/blogs/fanuc-g-code-m-code-list/g-code-m-code-lathe
- Helman CNC "Fanuc 31i G Codes Machining Center" — https://www.helmancnc.com/fanuc-31i-g-codes-machining-center-fanuc-30i-31i-32i/
- Verificação cruzada com: FANUC Series 0i-MD Operator's Manual, FANUC Series 30i/31i/32i-MODEL B Operator's Manual, FANUC Macro Compiler / Macro Executor Programming Manual (somente os títulos — não estão hospedados abertamente)
Mach 3 (ArtSoft / MachMotion):
- MachMotion "G and M-code Reference Using Mach3Mill Rev 1.84-A2" — https://machmotion.com/documentation/Software/Mach3/Mach3%20GCode%20Language%20Reference.pdf
- Mach3 G-Code Manual (MachMotion) — https://machmotion.com/documentation/Software/Mach3/Mach3%20G-Code%20Manual.pdf
- Mach3 V3.x Macro Programmer's Reference (ArtSoft) — https://www.machsupport.com/wp-content/uploads/2013/02/Mach3_V3.x_Macro_Prog_Ref.pdf
- Helman CNC "Mach3 Mill G Code List" — https://www.helmancnc.com/mach3-mill-g-code-list/
- CNCCookbook sobre Mach3 + G65 — https://www.cnccookbook.com/m98-m99-g-code-cnc-subprograms/
Mach 4 (ArtSoft / MachMotion):
- Mach4 Mill GCode Manual v1.0 (ArtSoft) — https://www.machsupport.com/wp-content/uploads/2014/05/Mach4%20Mill%20GCode%20Manual.pdf
- MachMotion Mach4 G & M Code Reference Manual — https://machmotion.com/documentation/Software/Mach4/Mach4-G-and-M-Code-Reference-Manual.pdf
- MachMotion BookStack Mach4 G/M Code Reference — https://support.machmotion.com/books/software/page/mach4-g-code-and-m-code-reference
- Mach4 Lathe Programming Guide — https://www.machsupport.com/wp-content/uploads/2014/05/Mach4%20Lathe%20GCode%20Manual.pdf
- Warp9 Mach3 vs Mach4 FAQ — https://www.warp9td.com/index.php/faq/faq-g-code-m-code
#Entradas sabidamente não verificáveis / incertas
- FANUC G05.4 nano smoothing — presente em algumas variantes 30i-B, não é universal em toda a família 30i.