Linguagens de Programação CNC – Código G e Código M
A sigla CNC no termo máquina CNC significa Controle Numérico Computadorizado. Normalmente, quando pensamos em usinagem CNC, imaginamos a máquina-ferramenta CNC, mas na verdade, as máquinas CNC modernas representam um termo mais amplo. Robôs industriais e algumas máquinas de medição controladas por computador também são máquinas CNC.
Era o ano de 1952, devido à necessidade de usinagem precisa de peças na indústria da aviação, quando John T. Parsons, em colaboração com IMB (International Business Machines Corporation) e MIT (Massachusetts Institute of Technology), desenvolveu a primeira fresadora CNC máquina. A partir de então, a produção industrial mais inteligente tornou-se generalizada e a usinagem CNC tornou-se disponível para todas as indústrias, juntamente com o surgimento e uso de linguagens de programação CNC – código G e código M.

O que são código G e código M?
Ao longo dos 70 anos de história do desenvolvimento de máquinas CNC, várias linguagens de programação, não apenas o código G e o código M, foram usadas para sua programação. Assim, no início, a máquina pioneira da Parsons foi programada com o auxílio de fitas perfuradas e, posteriormente, no ano de 1956, foi desenvolvida uma linguagem de programação especial (linguagem de programação APT) para usinagem CNC.
O RS-274 ou mais conhecido como G-code, sobre o qual este artigo também fala, foi criado na mesma década. O código G é desenvolvido a partir da linguagem de programação APT que continha dados sobre a localização ou geometria do cortador (ferramenta) e outras funções da máquina não geométricas, como velocidade do fuso, resfriamento, etc. As funções RS-274 (códigos G e M) herdam o básico da linguagem de programação APT com pequenas modificações que tornaram os programas mais curtos e mais convenientes para a unidade de controle da máquina.
APT | Códigos G e M |
IR PARA {X, Y, Z} | G1, G2, G3 {X, Y, Z} |
FEDRAT | F |
FUSO CW / CCW | S M3 / M4 |
COOLNT LIGADO/DESLIGADO | M8 M9 |
FINI | M30 |
A linguagem de programação RS-274 é frequentemente chamada de “código G” porque consiste principalmente em funções G (códigos G). Mas ele em si também contém funções M igualmente importantes (códigos M). Por esse motivo, é necessário definir esses termos, ou seja, responder às seguintes perguntas de forma clara e direta:
- O que são códigos G?
- O que são códigos M?
- Quais são as diferenças entre o código G e o código M?

O que são códigos G?
O código G, ou seja, funções G, diferente do código M, está principalmente relacionado à definição de geometria. É óbvio que “G” no nome “código G” significa a palavra “Geometria”. Assim, os códigos G incluiriam funções para selecionar o sistema de coordenadas, plano de trabalho, unidades de programação, configuração do modo de programação (absoluto ou incremental), movimento da ferramenta em modo rápido e de trabalho, etc.
O que são códigos M?
Os códigos M ou funções M referem-se a funções relacionadas à operação da máquina. Pode-se dizer que “M” no termo “código M” significa a palavra “Máquina”. Normalmente, na programação de máquinas CNC, nestas funções podem ser incluídas as seguintes funções:Ligar ou desligar o fuso principal, Ligar ou desligar o resfriamento, troca automática de ferramenta, etc.
Quais são as diferenças entre o código G e o código M?
Conforme apresentamos, os códigos G referem-se estritamente à geometria do processo de processamento de uma peça e os códigos M a funções individuais na máquina. Pode-se dizer que os códigos G mostram “Como a ferramenta se move em relação à peça” e os códigos M “O que a máquina faz no processo de usinagem”.
Além das funções principais do código G e do código M na linguagem de programação RS-274, existem inúmeras funções auxiliares:
- X,Y, Z – coordenadas do ponto de posicionamento
- I,J, K – coordenadas da distância entre o ponto inicial e o centro do círculo (“CC” nos exemplos a seguir)
- F- velocidade de interpolação
- S- velocidade do fuso
- Número da ferramenta T
- Número de compensação de altura da ferramenta H
- Número de compensação do raio da ferramenta D
Lista de códigos G básicos

Funções principais | Descrição | Funções auxiliares |
G0 | Posicionamento rápido (linear) | X, Y, Z |
G1 | Interpolação linear | X, Y, Z, F |
G2 | Interpolação circular no sentido horário | X, Y, Z, I, J, K, F |
G3 | Interpolação circular no sentido anti-horário | X, Y, Z, I, J, K, F |
EXEMPLO 1:
A frase em código G:G1 X10 Y50 F100
Explicação:A ferramenta vai linearmente ao ponto desejado (Coordenadas:X=10 mm, Y=50 mm) com a velocidade de 100 milímetros por segundo.
A frase em código G:G2 X10 Y50 I10 J40 F100
Explicação:A ferramenta percorre circular (sentido horário) até o ponto desejado (Coordenadas:X=10 mm, Y=50 mm) com velocidade de 100 milímetros por segundo; Posição do centro do círculo em relação ao ponto inicial:+10 mm no eixo X e +40 mm no eixo Y
A frase em código G:G02 X50 Y10 I40 J-10 F75
Explicação:A ferramenta percorre circular (sentido horário) até o ponto desejado (Coordenadas:X=50 mm, Y=10 mm) com velocidade de 75 milímetros por segundo; Posição do centro do círculo em relação ao ponto inicial:+40 mm no eixo X e -10 mm no eixo Y.

Função principal | Descrição | Funções auxiliares |
G17 | Selecione XY para o plano de trabalho | / |
G18 | Selecione ZX para o plano de trabalho | / |
G19 | Selecione YZ para o plano de trabalho | / |
G20 | Unidades:polegadas (polegadas) | / |
G21 | Unidades:milímetros (mm) | / |
G41 | Compensação do raio da ferramenta – esquerda | D, X, Y, Z |
G42 | Compensação do raio da ferramenta – direita | D, X, Y, Z |
G40 | Compensação do raio da ferramenta – desligado | / |
G43 | Compensação de compensação de altura da ferramenta | H, Z |
G49 | Compensação de compensação da altura da ferramenta – desligada | / |
G54 | Sistema de coordenadas da máquina | / |
G55 | Sistemas de coordenadas de trabalho | / |
G56 | Sistemas de coordenadas de trabalho | / |
G57 | Sistemas de coordenadas de trabalho | / |
G58 | Sistemas de coordenadas de trabalho | / |
G59 | Sistemas de coordenadas de trabalho | / |




EXEMPLO 2:
Frase em código G: G21 G17 G55
Explicação:Configurando unidades de programação para milímetros; Selecionando o plano de trabalho XY; Selecionando o sistema de coordenadas G55
Frase em código G: G43 H1 Z100
Explicação:Ajustar a compensação de compensação da altura da ferramenta para H1 (“H1” é uma posição onde o valor da altura da ferramenta é salvo na memória da máquina CNC) e tomar uma nova posição (Coordenada:Z=100 mm)
Frase em código G: G41 D1 X15
Explicação:Ajustar a compensação do raio da ferramenta esquerda para D1 (“D1” é uma posição onde o valor do raio da ferramenta é salvo na memória da máquina CNC) e tomar uma nova posição (Coordenada:X=15 mm); Enquanto a ferramenta vai para a posição desejada, ela se move lentamente para a esquerda, então, quando a ferramenta atinge a posição desejada, a compensação do raio da ferramenta é concluída.
Frase em código G: G40 G49
Explicação:Cancelamento da compensação do raio da ferramenta; Cancelando a compensação de compensação da altura da ferramenta
Função principal | Descrição | Funções auxiliares |
G90 | Programação absoluta:Coordenadas relativas ao sistema de coordenadas de trabalho | / |
G91 | Programação incremental:Coordenadas relativas ao sistema de coordenadas i na posição atual | / |
Lista de códigos M básicos
Função principal | Descrição | Funções auxiliares |
M00 | Parada do programa | / |
M03 | Fuso ligado (sentido horário) | S |
M04 | Fuso ligado (sentido anti-horário) | S |
M05 | Fuso desligado | / |
M06 | Mudança de ferramenta de automação | T |
M08 | Refrigerante Ligado | / |
M09 | Refrigerante desligado | / |
M30 | Fim do programa | / |
M98 | Chamada de subprograma | “Nome do subprograma” |
M99 | Retorno do subprograma | / |

Como programar uma máquina CNC
A programação CNC é a formatação de dados alfanuméricos (códigos G e M) sobre geometria e tecnologia das peças, que precisam ser processadas em tal máquina, mas também outra programação, que costumam realizar os fabricantes de máquinas.
A programação de máquinas CNC usando código G é principalmente baseada em sentenças, o que pode ser visto em exemplos anteriores onde a explicação das funções G foi feita como a interpretação das sentenças de um programa escrito em código G. Existem vários métodos de programação CNC, ou seja, gerar códigos G e M:
- Programação manual,
- Programação em operação e
- Programação usando sistemas CAD (Computer-Aided Design)/CAM (Computer-Aided Manufacturing).
Programação manual
Com programação CNC manual, um programador baseado em seu próprio conhecimento e experiência, bem como informações disponíveis sobre máquinas, ferramentas, acessórios de máquinas, modos de processamento, aplicando instruções de programação, escreve manualmente as informações geométricas e tecnológicas necessárias para completar o programa alfanumérico. A programação manual pode ser organizada como as seguintes atividades básicas:
- Definir planos de processamento, base e ferramentas,
- Traduzindo informações geométricas com desenho de oficina, para fins de planejamento de rotas
- Ferramentas e organizando-as em blocos de acordo com a ordem de processamento,
- Escrevendo e completando programas na folha de programa de formulário (código G) e
- Transferência de informações da planilha do programa para a memória da unidade de controle

Programação em operação
A fim de melhorar constantemente o método de programação CNC, bem como o desejo de colocar a programação na própria máquina, para aplicações ainda maiores e mais fáceis de CNC, alguns fabricantes ofereceram unidades de controle que suportam a programação diretamente na máquina em si. Embora desde o início da aplicação do CNC houvesse a possibilidade de programação imediata na máquina no modo chamado MDI (Manual Data Input), a programação em operação representa um método de programação completamente novo.
Com este método, a Unidade de Controle, que o suporta, integrou funções adicionais que evitam a programação clássica usando código G. A programação aqui se resume ao diálogo interativo entre o operador e a unidade de controle, via teclado e interface gráfica do usuário, que pode gerar contornos de processamento simples, bem como ciclos digitados para processamento. A unidade de controle com base nas consultas inseridas realiza os cálculos necessários do caminho da ferramenta e gera automaticamente um código G.

Programação usando sistemas CAD/CAM
A geometria das peças, usadas por exemplo nas indústrias aeroespacial, militar e outras, é muito complexa com superfícies de segunda ordem, que requerem usinagem multi-eixos (usinagem CNC de 3 eixos, 4 eixos e 5 eixos) . Programas complexos para processar tais superfícies requerem vários milhares de blocos (frases) cuja caligrafia é muito difícil e demorada. Portanto, foi necessário o uso de computadores para preparação tecnológica, ou seja, programação de máquinas CNC para usinagem das peças acima mencionadas com base em código G e código M.
A programação CAD/CAM pode ser classificada como programação CNC de computador. A integração de CAD e CAM levou a melhorias na programação NC, especialmente em termos de simplificação da programação. Agora o programador não precisa pensar em definir a geometria, é isso que o software CAD/CAM faz. O que resta para o programador é que por meio da interação ativa com o sistema no programa, ele adiciona outras informações técnicas como garras, bases, fixação, ferramentas de corte e modos de processamento. Ressalta-se que existe uma integração de CAD/CAM e CAPP (Computer Aided Process Planning), que desenvolve uma solução para esses requisitos também.
Assim é o Procedimento para programar uma máquina em ambiente CAD/CAM:
- Modelagem de modelos CAD,
- Planejamento de processamento usando estratégias CAM disponíveis para processar e calcular caminhos de ferramenta e obter arquivo CL (Cutter Location),
- Simulação de caminho de ferramenta e simulação de remoção de material para verificação do programa e detecção de possíveis erros e colisões,
- Pós-processamento do arquivo CL e obtenção do código G usando o pós-processador para a máquina selecionada,
- Transfira o código G para a unidade de controle. Preparação de ferramentas e peças. Baseie a peça de trabalho na máquina,
- Verifique as condições e modos de processamento, verifique as velocidades e acelerações, que podem afetar significativamente a qualidade do processamento e
- Usinagem de uma peça em uma máquina.

Conclusão
Embora hoje existam métodos de programação que não exigem conhecimento das funções G e M (Programação em operação e programação CAD/CAM CNC), um programador deve conhecê-los, pois uma situação especial às vezes exigiria que a programação fosse feita manualmente. O positivo é que se pode dizer que os códigos G e M da linguagem de programação são universais, o que significa que conhecer os códigos G e M pode programar todas as máquinas CNC, com diferenças mínimas de sintaxe que são dominadas muito rapidamente se você souber o básico de Códigos G e M. Você está preocupado em encontrar um programador CNC profissional para o seu projeto? Não se preocupe, a WayKen é um fabricante com mais de 20 anos de experiência na indústria de usinagem CNC, com tecnologia de fabricação avançada e engenheiros CNC experientes, prontos para atender às suas necessidades de design de produtos. Obtenha uma cotação instantânea hoje!
Máquina cnc
- es de Máquinas CNC
- As diferenças entre o código G e o código M
- Entendendo os códigos G e M como um profissional [Guia Completo]
- Introdução ao Código CNC G
- Ciclos de programação CNC ou ciclos fixos CNC Prós e contras
- Princípios e aplicações de programação CNC
- Técnicas de programação CNC:um guia para métodos e aplicações eficazes
- Download gratuito de programação e manutenção de manuais CNC da Hurco
- Código de exemplo de ciclo de torneamento bruto G71 – programação de torno CNC
- Noções básicas de programação CNC – Tutoriais com exemplo de código de programa