{"id":10317,"date":"2026-03-12T10:55:08","date_gmt":"2026-03-12T02:55:08","guid":{"rendered":"https:\/\/www.cncmachiningshops.com\/?p=10317"},"modified":"2026-07-19T17:21:55","modified_gmt":"2026-07-19T09:21:55","slug":"g-code-and-m-code","status":"publish","type":"post","link":"https:\/\/www.cncmachiningshops.com\/pt\/g-code-and-m-code\/","title":{"rendered":"C\u00f3digo G e C\u00f3digo M na Programa\u00e7\u00e3o CNC: Tipos de Comandos, Estrutura de Programa e Exemplos Pr\u00e1ticos"},"content":{"rendered":"<div data-page-id=\"AT0qdjHDyok1tCxcuPGceqlZn7e\" data-lark-html-role=\"root\" data-docx-has-block-data=\"true\">\n<p>Cada movimento que uma m\u00e1quina CNC faz \u2014 cada avan\u00e7o, cada partida do spindle, cada troca de ferramenta \u2014 \u00e9 comandado por c\u00f3digo G e c\u00f3digo M. Esses dois tipos de comandos formam a camada de instru\u00e7\u00e3o entre a trajet\u00f3ria gerada pelo CAM e a remo\u00e7\u00e3o real de metal. O c\u00f3digo G controla geometria e movimento; o c\u00f3digo M controla o estado da m\u00e1quina que torna esse movimento seguro e eficaz. Entender como eles funcionam juntos \u00e9 o que separa programadores que conseguem escrever c\u00f3digo de produ\u00e7\u00e3o confi\u00e1vel daqueles que s\u00f3 conseguem executar o que o CAM gera.<\/p>\n<p>Este artigo aborda c\u00f3digo G e c\u00f3digo M de um ponto de vista pr\u00e1tico de engenharia: o que cada um controla, como funcionam a estrutura de programa e a l\u00f3gica de estado modal, c\u00f3digos comuns com contexto real de usinagem, diferen\u00e7as entre controladores que afetam a portabilidade e os erros de programa\u00e7\u00e3o que causam a maioria das colis\u00f5es e refugo. O objetivo n\u00e3o \u00e9 uma lista de refer\u00eancia de comandos \u2014 \u00e9 a compreens\u00e3o da l\u00f3gica de execu\u00e7\u00e3o que torna os programas CNC previs\u00edveis e repet\u00edveis.<\/p>\n<hr \/>\n<h2>O Que S\u00e3o C\u00f3digo G e C\u00f3digo M? A Distin\u00e7\u00e3o Central<\/h2>\n<p>A divis\u00e3o fundamental \u00e9 direta. <strong>O c\u00f3digo G controla o movimento da ferramenta e a geometria<\/strong>. <strong>O c\u00f3digo M controla o estado da m\u00e1quina e fun\u00e7\u00f5es auxiliares<\/strong>. Ambos s\u00e3o necess\u00e1rios. Nenhum funciona sem o outro.<\/p>\n<table>\n<thead>\n<tr>\n<th>Aspeto<\/th>\n<th>C\u00f3digo G<\/th>\n<th>C\u00f3digo M<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Fun\u00e7\u00e3o principal<\/td>\n<td>Movimento da ferramenta e geometria<\/td>\n<td>Fun\u00e7\u00e3o e estado da m\u00e1quina<\/td>\n<\/tr>\n<tr>\n<td>Controlos<\/td>\n<td>Eixos, interpola\u00e7\u00e3o, avan\u00e7os, sistemas de coordenadas<\/td>\n<td>Spindle, refrigerante, trocas de ferramenta, fluxo do programa<\/td>\n<\/tr>\n<tr>\n<td>Afeta<\/td>\n<td>Precis\u00e3o, acabamento superficial, tempo de ciclo<\/td>\n<td>Seguran\u00e7a, confiabilidade, condi\u00e7\u00f5es de corte<\/td>\n<\/tr>\n<tr>\n<td>Exemplos<\/td>\n<td>G00, G01, G02, G17, G54<\/td>\n<td>M03, M05, M06, M08, M30<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>C\u00f3digo G: L\u00f3gica de Geometria e Movimento<\/h3>\n<p>Os c\u00f3digos G respondem \u00e0 pergunta: <em>como a ferramenta deve se mover para criar esta geometria?<\/em> Eles definem o modo de posicionamento, o tipo de interpola\u00e7\u00e3o, o comportamento do avan\u00e7o e qual sistema de coordenadas est\u00e1 ativo. A qualidade do acabamento superficial, a precis\u00e3o dimensional e a distribui\u00e7\u00e3o da carga na ferramenta s\u00e3o todas diretamente moldadas por como os c\u00f3digos G s\u00e3o estruturados e sequenciados.<\/p>\n<p>Pense no c\u00f3digo G como o c\u00e9rebro geom\u00e9trico do programa. Ele sabe para onde a ferramenta precisa ir e como deve chegar l\u00e1.<\/p>\n<h3>C\u00f3digo M: Controle da M\u00e1quina e do PLC<\/h3>\n<p>Os c\u00f3digos M respondem a uma pergunta diferente: <em>como a m\u00e1quina deve se comportar durante a execu\u00e7\u00e3o desse movimento?<\/em> Eles lidam com a partida e a dire\u00e7\u00e3o do spindle, ativa\u00e7\u00e3o do refrigerante, trocas de ferramenta e controle do fluxo do programa. Todas essas fun\u00e7\u00f5es s\u00e3o gerenciadas pelo PLC (Controlador L\u00f3gico Program\u00e1vel) da m\u00e1quina \u2014 uma camada de controle separada do controlador de movimento.<\/p>\n<p>Uma forma \u00fatil de pensar nisso: o c\u00f3digo G define o caminho; o c\u00f3digo M prepara e mant\u00e9m as condi\u00e7\u00f5es para o corte ao longo desse caminho. Uma trajet\u00f3ria definida corretamente falha imediatamente se o spindle n\u00e3o estiver girando, a ferramenta errada estiver carregada ou o refrigerante n\u00e3o estiver ativo. Essas condi\u00e7\u00f5es s\u00e3o inteiramente territ\u00f3rio do c\u00f3digo M.<\/p>\n<hr \/>\n<h2>Estrutura do Programa CNC: Blocos, Estados Modais e L\u00f3gica de Execu\u00e7\u00e3o<\/h2>\n<p>Um dos conceitos mais importantes na programa\u00e7\u00e3o CNC \u2014 e um dos que causa o maior n\u00famero de comportamentos inesperados \u2014 \u00e9 entender que o controlador executa programas como uma <strong>m\u00e1quina de estados<\/strong>, n\u00e3o como uma simples lista sequencial de instru\u00e7\u00f5es.<\/p>\n<h3>Blocos e Ordem de Execu\u00e7\u00e3o<\/h3>\n<p>Um programa CNC consiste em <strong>blocos<\/strong> \u2014 tipicamente uma linha de instru\u00e7\u00e3o cada. O controlador l\u00ea cada bloco da esquerda para a direita e o executa como uma unidade. Criticamente, o controlador n\u00e3o interpreta inten\u00e7\u00e3o. Ele apenas v\u00ea o bloco atual combinado com quaisquer estados modais definidos por blocos anteriores.<\/p>\n<p>Isso significa que dois comandos de movimento aparentemente id\u00eanticos podem se comportar de maneira completamente diferente dependendo do que foi estabelecido anteriormente no programa. Errar isso \u00e9 a causa raiz da maioria dos comportamentos inesperados no CNC.<\/p>\n<h3>C\u00f3digos Modais vs N\u00e3o-Modais<\/h3>\n<p>Essa distin\u00e7\u00e3o \u00e9 essencial para entender o comportamento do programa:<\/p>\n<p><strong>C\u00f3digos modais<\/strong> permanecem ativos at\u00e9 serem explicitamente alterados. Uma vez definidos, persistem em todos os blocos subsequentes at\u00e9 serem substitu\u00eddos. Exemplos:<\/p>\n<ul>\n<li>Modo de movimento (G00, G01, G02) \u2014 permanece ativo at\u00e9 que um modo de movimento diferente seja chamado<\/li>\n<li>Modo de posicionamento (G90\/G91) \u2014 absoluto ou incremental permanece definido at\u00e9 ser alterado<\/li>\n<li>Sele\u00e7\u00e3o de plano (G17\/G18\/G19) \u2014 o plano de corte ativo persiste<\/li>\n<\/ul>\n<p><strong>C\u00f3digos n\u00e3o modais<\/strong> executam uma vez no bloco onde aparecem, depois n\u00e3o t\u00eam mais efeito. Cancelamentos espec\u00edficos de ciclos fixos e comandos de perman\u00eancia s\u00e3o exemplos t\u00edpicos.<\/p>\n<table>\n<thead>\n<tr>\n<th>Comportamento<\/th>\n<th>C\u00f3digos Modais<\/th>\n<th>C\u00f3digos N\u00e3o Modais<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Persist\u00eancia de estado<\/td>\n<td>Ativo at\u00e9 ser alterado<\/td>\n<td>Executa uma vez<\/td>\n<\/tr>\n<tr>\n<td>Risco se mal interpretado<\/td>\n<td>Movimento indesejado em blocos posteriores<\/td>\n<td>Efeito geralmente localizado<\/td>\n<\/tr>\n<tr>\n<td>Exemplos comuns<\/td>\n<td>G00, G01, G90, G91, G17<\/td>\n<td>A\u00e7\u00f5es \u00fanicas, cancelamentos espec\u00edficos de ciclos<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>A implica\u00e7\u00e3o pr\u00e1tica: um G01 modal deixado ativo de uma opera\u00e7\u00e3o anterior far\u00e1 com que o pr\u00f3ximo movimento de posicionamento r\u00e1pido seja executado como um movimento de corte em avan\u00e7o. Isso \u00e9 um crash esperando para acontecer \u2014 e \u00e9 totalmente evit\u00e1vel ao entender o estado modal.<\/p>\n<h3>Fases da L\u00f3gica do Programa<\/h3>\n<p>Todo programa CNC confi\u00e1vel segue tr\u00eas fases l\u00f3gicas:<\/p>\n<p><strong>Inicializa\u00e7\u00e3o:<\/strong> Estabele\u00e7a o estado da m\u00e1quina explicitamente. Defina unidades (G20\/G21), plano (G17), modo de posicionamento (G90), offset de trabalho (G54 ou equivalente) e modo de avan\u00e7o. Nunca confie nos padr\u00f5es do controlador \u2014 eles variam entre m\u00e1quinas.<\/p>\n<p><strong>Maquina\u00e7\u00e3o:<\/strong> O c\u00f3digo G domina para movimento e geometria. Os c\u00f3digos M mant\u00eam as condi\u00e7\u00f5es de corte em segundo plano \u2014 o spindle permanece girando, o refrigerante permanece ativo, a ferramenta permanece engajada.<\/p>\n<p><strong>Desligamento:<\/strong> Retorne a um estado seguro e conhecido. A ferramenta recua, o spindle e o refrigerante param, o programa termina e reinicia para o pr\u00f3ximo ciclo.<\/p>\n<hr \/>\n<h2>Principais Tipos de C\u00f3digo G: Movimento, Posicionamento e Ciclos Fixos<\/h2>\n<p>Em vez de listar todos os c\u00f3digos G, entender as tr\u00eas categorias funcionais esclarece quando e por que cada tipo \u00e9 usado em opera\u00e7\u00f5es pr\u00e1ticas de usinagem.<\/p>\n<h3>C\u00f3digos G de Movimento e Interpola\u00e7\u00e3o<\/h3>\n<p>Esses c\u00f3digos definem como a ferramenta de corte se move entre pontos. Eles t\u00eam o impacto mais direto no acabamento superficial, tempo de ciclo e carga da ferramenta.<\/p>\n<p><strong>G00 \u2013 Posicionamento r\u00e1pido<\/strong> Move a ferramenta na velocidade m\u00e1xima da m\u00e1quina. Usado exclusivamente para movimentos sem corte: aproxima\u00e7\u00e3o, recuo, posicionamento para troca de ferramenta e movimentos de afastamento. G00 prioriza velocidade sobre precis\u00e3o de trajet\u00f3ria \u2014 a trajet\u00f3ria real entre pontos n\u00e3o \u00e9 uma linha reta na maioria das m\u00e1quinas. A folga do dispositivo e da pe\u00e7a deve ser verificada, n\u00e3o presumida.<\/p>\n<p><strong>G01 \u2013 Interpola\u00e7\u00e3o linear<\/strong> Move a ferramenta em linha reta a uma taxa de avan\u00e7o programada. Este \u00e9 o movimento de corte principal para a maioria das opera\u00e7\u00f5es de fresamento e torneamento. A taxa de avan\u00e7o \u00e9 especificada com F \u2014 e esse valor de F persiste de forma modal at\u00e9 ser alterado.<\/p>\n<p><strong>G02 \/ G03 \u2013 Interpola\u00e7\u00e3o circular<\/strong> G02 gera arcos no sentido hor\u00e1rio; G03 gera arcos no sentido anti-hor\u00e1rio. Usados para cavidades circulares, raios de canto, filetes e contornamento. O ponto central ou raio (R) deve ser especificado. Na maioria dos controladores, a dire\u00e7\u00e3o do arco \u00e9 relativa ao plano ativo (G17\/G18\/G19) \u2014 um detalhe importante ao programar arcos fora do plano XY.<\/p>\n<p><strong>A distin\u00e7\u00e3o cr\u00edtica:<\/strong> G00 \u00e9 para posicionamento entre cortes. G01\/G02\/G03 s\u00e3o para remo\u00e7\u00e3o de material. Usar G00 onde G01 \u00e9 pretendido \u2014 ou deixar G01 ativo quando o posicionamento r\u00e1pido \u00e9 necess\u00e1rio \u2014 \u00e9 uma das causas mais comuns de crashes e cortes excessivos.<\/p>\n<h3>C\u00f3digos G de Sistema de Coordenadas e Posicionamento<\/h3>\n<p>Esses c\u00f3digos definem <em>onde<\/em> o movimento ocorre, n\u00e3o como a ferramenta se move.<\/p>\n<p><strong>Sistemas de coordenadas de trabalho (G54\u2013G59)<\/strong> Cada offset armazena uma rela\u00e7\u00e3o entre o zero da m\u00e1quina e o zero da pe\u00e7a. M\u00faltiplos dispositivos ou setups podem estar ativos no mesmo programa chamando diferentes offsets de trabalho. Na usinagem pr\u00e1tica, G54 \u00e9 o padr\u00e3o para trabalho de setup \u00fanico; G55\u2013G59 s\u00e3o usados para pallets multi-dispositivo ou dispositivos tipo tombstone.<\/p>\n<p><strong>G90 \u2013 Posicionamento absoluto<\/strong> Todas as coordenadas referenciam o zero de trabalho ativo. Um movimento para X50 sempre vai para X50 em rela\u00e7\u00e3o ao zero da pe\u00e7a, independentemente da posi\u00e7\u00e3o atual da ferramenta. Este \u00e9 o modo padr\u00e3o para a maioria dos programas de produ\u00e7\u00e3o \u2014 \u00e9 previs\u00edvel e f\u00e1cil de verificar.<\/p>\n<p><strong>G91 \u2013 Posicionamento incremental<\/strong> Cada coordenada se move em rela\u00e7\u00e3o \u00e0 posi\u00e7\u00e3o atual da ferramenta. G91 \u00e9 poderoso para padr\u00f5es repetitivos e recursos sim\u00e9tricos, mas perigoso se deixado ativo involuntariamente. Um G01 Z-1.0 incremental significa \u201cdescer 1mm de onde voc\u00ea est\u00e1 agora\u201d \u2014 n\u00e3o do zero da pe\u00e7a. Esta \u00e9 uma fonte significativa de erros de profundidade e crashes.<\/p>\n<h3>Ciclos Fixos<\/h3>\n<p>Os ciclos fixos condensam sequ\u00eancias repetitivas de fura\u00e7\u00e3o, mandrilamento e roscamento em chamadas de linha \u00fanica. Em vez de programar aproxima\u00e7\u00e3o, avan\u00e7o, perman\u00eancia, recuo e afastamento separadamente para cada furo, um ciclo fixo gerencia a sequ\u00eancia completa automaticamente.<\/p>\n<p>Exemplos comuns incluem G81 (fura\u00e7\u00e3o), G83 (fura\u00e7\u00e3o com pica-pau para furos profundos), G84 (roscamento) e G76 (mandrilamento fino). Os par\u00e2metros tipicamente incluem profundidade do furo, plano de recuo, taxa de avan\u00e7o e op\u00e7\u00f5es espec\u00edficas do ciclo.<\/p>\n<p>Dois pontos de engenharia importam aqui. Primeiro, os ciclos fixos s\u00e3o <strong>modais<\/strong> \u2014 eles permanecem ativos at\u00e9 serem explicitamente cancelados (tipicamente com G80). Esquecer de cancelar um ciclo de fura\u00e7\u00e3o antes de um movimento de reposicionamento pode fazer a m\u00e1quina furar em cada posi\u00e7\u00e3o intermedi\u00e1ria. Segundo, o comportamento de recuo varia entre controladores \u2014 verifique a l\u00f3gica de recuo da fura\u00e7\u00e3o com pica-pau antes de executar ciclos de furos profundos em m\u00e1quinas desconhecidas.<\/p>\n<hr \/>\n<h2>C\u00f3digos M comuns: o que eles controlam e por que o timing \u00e9 importante<\/h2>\n<p>Os c\u00f3digos M costumam ser tratados como detalhes secund\u00e1rios \u2014 comandos b\u00e1sicos para ligar o spindle e acionar o refrigerante. Na pr\u00e1tica, o timing e o sequenciamento dos c\u00f3digos M s\u00e3o t\u00e3o cr\u00edticos quanto a geometria da trajet\u00f3ria da ferramenta. Erros neles custam ferramentas, pe\u00e7as e, \u00e0s vezes, m\u00e1quinas.<\/p>\n<h3>Controle do spindle<\/h3>\n<p><strong>M03 \u2013 Spindle ligado (sentido hor\u00e1rio)<\/strong> Dire\u00e7\u00e3o de corte padr\u00e3o para ferramentas de corte \u00e0 direita. Deve estar ativo antes da execu\u00e7\u00e3o de qualquer c\u00f3digo G de corte. Inclua um valor S (rota\u00e7\u00e3o do spindle) no mesmo bloco ou no bloco anterior.<\/p>\n<p><strong>M04 \u2013 Spindle ligado (sentido anti-hor\u00e1rio)<\/strong> Usado para ferramentas de corte \u00e0 esquerda, certas opera\u00e7\u00f5es de mandrilamento e fresamento de roscas em configura\u00e7\u00f5es espec\u00edficas. Usar M04 com uma fresa de topo padr\u00e3o \u00e0 direita danifica imediatamente tanto a ferramenta quanto a pe\u00e7a.<\/p>\n<p><strong>M05 \u2013 Parada do spindle<\/strong> Necess\u00e1rio antes de trocas de ferramenta, opera\u00e7\u00f5es de apalpa\u00e7\u00e3o e pausas do programa. Na maioria das m\u00e1quinas, M06 (troca de ferramenta) para o spindle automaticamente \u2014 mas programar explicitamente M05 antes de M06 \u00e9 uma pr\u00e1tica melhor e mais port\u00e1vel.<\/p>\n<h3>Controle de refrigerante<\/h3>\n<p><strong>M08 \u2013 Refrigerante ligado<\/strong> Ativa o refrigerante em inunda\u00e7\u00e3o. Em m\u00e1quinas com m\u00faltiplas op\u00e7\u00f5es de refrigerante, c\u00f3digos M espec\u00edficos podem selecionar entre inunda\u00e7\u00e3o, n\u00e9voa e refrigerante atrav\u00e9s do spindle \u2014 consulte a lista de c\u00f3digos M da m\u00e1quina.<\/p>\n<p><strong>M09 \u2013 Refrigerante desligado<\/strong> Desligue antes de trocas de ferramenta e no final do programa. Deixar o refrigerante ativo durante uma troca de ferramenta cria problemas de organiza\u00e7\u00e3o e potenciais riscos de seguran\u00e7a na posi\u00e7\u00e3o de troca de ferramenta.<\/p>\n<p>O timing do refrigerante importa mais do que a maioria dos programadores reconhece. Na usinagem de tit\u00e2nio (Ti-6Al-4V), o refrigerante deve estar ativo antes que a aresta de corte entre em contato com a pe\u00e7a \u2014 lig\u00e1-lo ap\u00f3s o contato \u00e9 tarde demais para prote\u00e7\u00e3o t\u00e9rmica. Em alum\u00ednio 6061, refrigerante em n\u00e9voa ou inunda\u00e7\u00e3o previne aresta posti\u00e7a e mant\u00e9m o acabamento superficial. A chamada M08 pertence <em>antes<\/em> do primeiro G01 de corte, n\u00e3o depois.<\/p>\n<h3>Troca de ferramenta e fluxo do programa<\/h3>\n<p><strong>M06 \u2013 Troca de ferramenta<\/strong> Executa a troca autom\u00e1tica de ferramenta para a ferramenta especificada por um c\u00f3digo T. A execu\u00e7\u00e3o segura exige que a ferramenta seja recuada para a posi\u00e7\u00e3o de troca e que o spindle esteja parado. Sequ\u00eancia padr\u00e3o: G00 para folga em Z \u2192 M05 \u2192 T___ \u2192 M06.<\/p>\n<p><strong>M00 \u2013 Parada do programa (incondicional)<\/strong> Pausa a execu\u00e7\u00e3o. A m\u00e1quina para e aguarda a interven\u00e7\u00e3o do operador. Usado para inspe\u00e7\u00e3o em processo, opera\u00e7\u00f5es manuais ou ajustes de dispositivo no meio do ciclo.<\/p>\n<p><strong>M01 \u2013 Parada opcional<\/strong> Para somente se o interruptor de parada opcional estiver ativo no controlador. \u00datil para pontos de inspe\u00e7\u00e3o que podem ser ignorados em produ\u00e7\u00e3o, mas ativados durante setup ou execu\u00e7\u00e3o da primeira pe\u00e7a.<\/p>\n<p><strong>M30 \u2013 Fim do programa e reset<\/strong> Encerra o programa e rebobina para o in\u00edcio. A maneira correta de encerrar um programa de produ\u00e7\u00e3o CNC. M02 encerra sem rebobinar \u2014 evite-o em c\u00f3digo de produ\u00e7\u00e3o.<\/p>\n<table>\n<thead>\n<tr>\n<th>Grupo de fun\u00e7\u00e3o<\/th>\n<th>C\u00f3digos M<\/th>\n<th>Fun\u00e7\u00e3o de engenheiro<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Fuso<\/td>\n<td>M03 \/ M04 \/ M05<\/td>\n<td>Habilita e para o corte; controla a dire\u00e7\u00e3o<\/td>\n<\/tr>\n<tr>\n<td>L\u00edquido de arrefecimento<\/td>\n<td>M08 \/ M09<\/td>\n<td>Controle t\u00e9rmico, evacua\u00e7\u00e3o de cavacos, acabamento superficial<\/td>\n<\/tr>\n<tr>\n<td>Gerenciamento de ferramentas<\/td>\n<td>M06<\/td>\n<td>Sequenciamento de troca de ferramenta<\/td>\n<\/tr>\n<tr>\n<td>Fluxo do programa<\/td>\n<td>M00 \/ M01 \/ M30<\/td>\n<td>Paradas de seguran\u00e7a, inspe\u00e7\u00e3o, reset do ciclo<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2>Como o c\u00f3digo G e o c\u00f3digo M trabalham juntos: um exemplo pr\u00e1tico de fresamento<\/h2>\n<p>A coordena\u00e7\u00e3o entre c\u00f3digos G e M fica clara quando voc\u00ea acompanha a l\u00f3gica de execu\u00e7\u00e3o de uma opera\u00e7\u00e3o de usinagem real. Veja como um passe simples de fresamento de topo em uma pe\u00e7a de alum\u00ednio 6061 se apresenta do ponto de vista de gerenciamento de estado:<\/p>\n<h3>Fase 1: Prepara\u00e7\u00e3o da m\u00e1quina (c\u00f3digos M estabelecem as condi\u00e7\u00f5es de corte)<\/h3>\n<pre><code>G21 G90 G17 G54       ; Definir m\u00e9trico, absoluto, plano XY, offset de trabalho\r\n<\/code><\/pre>\n<p>Antes de qualquer movimento de corte, o estado da m\u00e1quina est\u00e1 totalmente definido: ferramenta correta, spindle girando na dire\u00e7\u00e3o certa na velocidade correta, refrigerante ativo, ferramenta posicionada com seguran\u00e7a acima da pe\u00e7a.<\/p>\n<h3>Fase 2: Movimento de corte (c\u00f3digos G controlam a trajet\u00f3ria)<\/h3>\n<pre><code>G00 Z2.0              ; Avan\u00e7o r\u00e1pido para altura de aproxima\u00e7\u00e3o em Z\r\n<\/code><\/pre>\n<p>Os comandos G01 controlam a remo\u00e7\u00e3o real de material. Os c\u00f3digos M de spindle e refrigerante da Fase 1 permanecem ativos de forma modal \u2014 n\u00e3o \u00e9 necess\u00e1rio cham\u00e1-los novamente para cada corte, mas eles devem ter sido estabelecidos antes do in\u00edcio da Fase 2.<\/p>\n<h3>Fase 3: Sa\u00edda segura (restaurar a m\u00e1quina a um estado conhecido)<\/h3>\n<pre><code>G01 Z2.0 F600         ; Recuar na taxa de avan\u00e7o (n\u00e3o em r\u00e1pido \u2014 controlado)\r\n<\/code><\/pre>\n<p>Cada elemento da sequ\u00eancia de sa\u00edda tem um prop\u00f3sito. Recuar na taxa de avan\u00e7o antes de ir para r\u00e1pido previne marcas de mergulho se a ferramenta ainda estiver em leve contato. Refrigerante desligado antes da parada do spindle evita que o refrigerante seja pulverizado durante a desacelera\u00e7\u00e3o. G00 para a posi\u00e7\u00e3o home prepara confiavelmente para o pr\u00f3ximo ciclo.<\/p>\n<p>Essa l\u00f3gica de tr\u00eas fases \u2014 preparar, executar, restaurar \u2014 \u00e9 o modelo mental que previne a maioria dos erros de programa\u00e7\u00e3o CNC.<\/p>\n<hr \/>\n<h2>Diferen\u00e7as entre controladores: por que o c\u00f3digo G e o c\u00f3digo M n\u00e3o s\u00e3o verdadeiramente universais<\/h2>\n<p>ISO 6983 \/ RS274 fornece uma base de sintaxe comum, mas os fabricantes de controladores estendem e modificam significativamente o comportamento. Um programa que funciona perfeitamente em uma m\u00e1quina pode produzir alarmes ou movimentos inesperados em outra \u2014 mesmo com hardware id\u00eantico.<\/p>\n<h3>\u00c1reas Comuns de Varia\u00e7\u00e3o<\/h3>\n<p><strong>Controladores baseados em Fanuc:<\/strong> Os controladores industriais mais amplamente utilizados. A Fanuc define um grande n\u00facleo comum, mas as op\u00e7\u00f5es do fabricante da m\u00e1quina adicionam ou modificam o comportamento. A sintaxe Macro B, os c\u00f3digos M de apalpa\u00e7\u00e3o e os par\u00e2metros de ciclos fixos frequentemente variam entre m\u00e1quinas, mesmo dentro da fam\u00edlia Fanuc.<\/p>\n<p><strong>Controladores Haas:<\/strong> Amplamente compat\u00edveis com Fanuc para c\u00f3digos G de movimento b\u00e1sico, mas a Haas utiliza c\u00f3digos M simplificados ou propriet\u00e1rios para muitas fun\u00e7\u00f5es. Programas escritos em m\u00e1quinas Haas frequentemente precisam de ajustes nos c\u00f3digos M quando transferidos para m\u00e1quinas Fanuc.<\/p>\n<p><strong>LinuxCNC:<\/strong> C\u00f3digo aberto e altamente configur\u00e1vel. Suporta sintaxe RS274 padr\u00e3o, mas o comportamento avan\u00e7ado \u00e9 definido pelo usu\u00e1rio. Poderoso para m\u00e1quinas personalizadas; requer documenta\u00e7\u00e3o cuidadosa de configura\u00e7\u00e3o para garantir comportamento consistente.<\/p>\n<table>\n<thead>\n<tr>\n<th>\u00c1rea<\/th>\n<th>Varia\u00e7\u00e3o T\u00edpica<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Troca de ferramenta (M06)<\/td>\n<td>Posicionamento, verifica\u00e7\u00f5es de seguran\u00e7a, comportamento do ATC<\/td>\n<\/tr>\n<tr>\n<td>Ciclos fixos<\/td>\n<td>Par\u00e2metros, modos de retra\u00e7\u00e3o, comportamento de pica-pau<\/td>\n<\/tr>\n<tr>\n<td>C\u00f3digos M de refrigerante<\/td>\n<td>M\u00faltiplos tipos de refrigerante, atribui\u00e7\u00f5es espec\u00edficas de c\u00f3digos<\/td>\n<\/tr>\n<tr>\n<td>Vari\u00e1veis de macro<\/td>\n<td>Sintaxe, disponibilidade, numera\u00e7\u00e3o de vari\u00e1veis<\/td>\n<\/tr>\n<tr>\n<td>Estados modais padr\u00e3o<\/td>\n<td>Sele\u00e7\u00e3o de plano, modo de avan\u00e7o, unidades na energiza\u00e7\u00e3o<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Melhores Pr\u00e1ticas de Portabilidade<\/h3>\n<p>A abordagem mais confi\u00e1vel para compatibilidade entre controladores:<\/p>\n<ul>\n<li><strong>Nunca confie nos padr\u00f5es.<\/strong> Defina explicitamente unidades, plano, modo de posicionamento e offset de trabalho no in\u00edcio do programa.<\/li>\n<li><strong>Evite atalhos espec\u00edficos de controladores<\/strong> em programas destinados a m\u00faltiplas m\u00e1quinas.<\/li>\n<li><strong>Comente c\u00f3digos M n\u00e3o padronizados<\/strong> com sua fun\u00e7\u00e3o \u2014 programadores futuros n\u00e3o saber\u00e3o o que M88 faz na sua m\u00e1quina espec\u00edfica sem documenta\u00e7\u00e3o.<\/li>\n<li><strong>Valide em cada controlador<\/strong> antes da primeira execu\u00e7\u00e3o de produ\u00e7\u00e3o, mesmo que o programa \u201cdeveria funcionar.\u201d<\/li>\n<\/ul>\n<hr \/>\n<h2>Erros Comuns de C\u00f3digo G e C\u00f3digo M: Diagn\u00f3stico e Preven\u00e7\u00e3o<\/h2>\n<p>A maioria das falhas de CNC remonta a erros de gerenciamento de estado, n\u00e3o a erros de sintaxe. O controlador executou exatamente o que lhe foi dito \u2014 o problema \u00e9 que o programador n\u00e3o considerou completamente quais estados modais estavam ativos.<\/p>\n<table>\n<thead>\n<tr>\n<th>Erro<\/th>\n<th>Causa Raiz<\/th>\n<th>Preven\u00e7\u00e3o<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Heran\u00e7a modal<\/td>\n<td>G90\/G91, G00\/G01 ou sele\u00e7\u00e3o de plano deixada ativa do bloco anterior<\/td>\n<td>Redefina explicitamente estados modais cr\u00edticos no in\u00edcio do programa e antes de opera\u00e7\u00f5es cr\u00edticas<\/td>\n<\/tr>\n<tr>\n<td>Sistema de coordenadas errado<\/td>\n<td>O programa assume um offset de trabalho ou sistema de unidades diferente da configura\u00e7\u00e3o da m\u00e1quina<\/td>\n<td>Defina G54\u2013G59, G90\/G91, G20\/G21 explicitamente \u2014 nunca presuma<\/td>\n<\/tr>\n<tr>\n<td>Movimento r\u00e1pido inesperado<\/td>\n<td>G01 ainda ativo quando o posicionamento r\u00e1pido \u00e9 pretendido, ou vice-versa<\/td>\n<td>Reafirme o c\u00f3digo G de movimento em cada bloco onde a inten\u00e7\u00e3o de movimento muda<\/td>\n<\/tr>\n<tr>\n<td>Temporiza\u00e7\u00e3o do spindle\/refrigerante<\/td>\n<td>C\u00f3digos M colocados ap\u00f3s o in\u00edcio do movimento de corte<\/td>\n<td>Trate M08 e M03 como pr\u00e9-condi\u00e7\u00f5es: ativos antes do primeiro G01<\/td>\n<\/tr>\n<tr>\n<td>Troca de ferramenta insegura<\/td>\n<td>M06 chamado sem parada do spindle ou posi\u00e7\u00e3o segura de retra\u00e7\u00e3o<\/td>\n<td>Imponha sequ\u00eancia padr\u00e3o de troca de ferramenta: retrair \u2192 M05 \u2192 T___ \u2192 M06<\/td>\n<\/tr>\n<tr>\n<td>Comportamento inconsistente de ciclo<\/td>\n<td>Ciclo fixo modal (G83, G84) n\u00e3o cancelado antes do reposicionamento<\/td>\n<td>Cancele ciclos fixos com G80 explicitamente; n\u00e3o presuma que eles se autocancelam<\/td>\n<\/tr>\n<tr>\n<td>Programa falha na segunda execu\u00e7\u00e3o<\/td>\n<td>Estados modais ocultos persistem ap\u00f3s o fim do programa<\/td>\n<td>Use M30 com sequ\u00eancia completa de desligamento; inicialize todos os estados no in\u00edcio do programa<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Um Exemplo Real: Modo Incremental Deixado Ativo<\/h3>\n<p>Um incidente comum na oficina: um programador usa G91 (incremental) para um padr\u00e3o de fura\u00e7\u00e3o em c\u00edrculo de parafusos. O ciclo canned executa corretamente. Ent\u00e3o G80 cancela o ciclo, mas G91 nunca \u00e9 redefinido para G90. A pr\u00f3xima opera\u00e7\u00e3o \u2014 uma passada de fresamento de bols\u00e3o \u2014 usa coordenadas incrementais. Em vez de mover para X50 Y30 (absoluto), a m\u00e1quina se move 50 mm e 30 mm de onde quer que esteja no momento.<\/p>\n<p>Resultado: passada de fresamento no local errado, pe\u00e7a refugada, potencial colis\u00e3o.<\/p>\n<p>Corre\u00e7\u00e3o: adicione <code>G90<\/code> \u00e0 linha imediatamente ap\u00f3s <code>G80<\/code> ao retornar do modo incremental. Um caractere. Salva uma pe\u00e7a.<\/p>\n<hr \/>\n<h2>Melhores Pr\u00e1ticas para Programa\u00e7\u00e3o Confi\u00e1vel de CNC<\/h2>\n<p>Programas confi\u00e1veis compartilham caracter\u00edsticas estruturais comuns independentemente da m\u00e1quina ou do controlador. Essas pr\u00e1ticas reduzem erros, simplificam a solu\u00e7\u00e3o de problemas e tornam os programas mant\u00edveis por algu\u00e9m que n\u00e3o seja o autor original.<\/p>\n<h3>Bloco de Inicializa\u00e7\u00e3o \u2014 Sempre<\/h3>\n<p>Inicie cada programa com uma inicializa\u00e7\u00e3o completa de estado:<\/p>\n<pre><code>G21 G90 G17 G54 G94 G40 G49    ; M\u00e9trico, absoluto, plano XY, WCS 1,\r\n<\/code><\/pre>\n<p>Este \u00fanico bloco elimina a maioria dos problemas de carryover de estado modal. Leva cinco segundos para escrever e economiza horas de solu\u00e7\u00e3o de problemas.<\/p>\n<h3>Mudan\u00e7as Expl\u00edcitas de Estado em Limites L\u00f3gicos<\/h3>\n<p>Antes de qualquer novo tipo de opera\u00e7\u00e3o \u2014 especialmente mudan\u00e7as entre fura\u00e7\u00e3o e fresamento, entre diferentes dispositivos de fixa\u00e7\u00e3o, ou ap\u00f3s interven\u00e7\u00f5es manuais \u2014 restabele\u00e7a os estados modais cr\u00edticos. N\u00e3o presuma que a opera\u00e7\u00e3o anterior deixou a m\u00e1quina na condi\u00e7\u00e3o correta.<\/p>\n<h3>Regras de Sequenciamento de C\u00f3digo M<\/h3>\n<p>Siga esta ordem consistentemente:<\/p>\n<ol>\n<li>Recuar para folga segura em Z<\/li>\n<li>Parada do spindle (M05) se troca de ferramenta for necess\u00e1ria<\/li>\n<li>Troca de ferramenta (M06) com c\u00f3digo T<\/li>\n<li>Partida do spindle na nova velocidade (M03 S___) e refrigerante ligado (M08)<\/li>\n<li>Posicionar ao ponto de aproxima\u00e7\u00e3o<\/li>\n<li>Iniciar movimento de corte<\/li>\n<\/ol>\n<p>Inverter os passos 4 e 5 \u2014 mover para a posi\u00e7\u00e3o antes do spindle e refrigerante estarem ativos \u2014 \u00e9 tecnicamente v\u00e1lido na maioria dos controladores, mas \u00e9 uma pr\u00e1tica ruim. O spindle precisa de tempo para atingir a velocidade; o refrigerante precisa alcan\u00e7ar a zona de corte antes da ferramenta engatar.<\/p>\n<h3>Comente a Inten\u00e7\u00e3o, N\u00e3o Apenas a Sintaxe<\/h3>\n<p>Coment\u00e1rio ruim: <code>; G01 X50 F300 (movimento linear)<\/code> Coment\u00e1rio bom: <code>; Passada de acabamento na face de refer\u00eancia - profundidade 0,1mm, deixar 0 de sobremetal<\/code><\/p>\n<p>Coment\u00e1rios devem explicar <em>porqu\u00ea<\/em> por que uma sequ\u00eancia de c\u00f3digo existe e quais premissas ela faz, n\u00e3o repetir o que o c\u00f3digo j\u00e1 diz.<\/p>\n<h3>Valide com Simula\u00e7\u00e3o Antes de Executar<\/h3>\n<p>Mesmo programadores experientes simulam antes de cortar. A simula\u00e7\u00e3o moderna de CAM captura erros de trajet\u00f3ria da ferramenta, colis\u00f5es com suportes e interfer\u00eancia em movimentos r\u00e1pidos que parecem corretos no c\u00f3digo mas causam colis\u00f5es na m\u00e1quina. Execu\u00e7\u00f5es a seco com avan\u00e7o de 10% com uma verifica\u00e7\u00e3o visual de cada fase da opera\u00e7\u00e3o capturam os problemas restantes que a simula\u00e7\u00e3o n\u00e3o detecta.<\/p>\n<hr \/>\n<h2>Conclus\u00e3o<\/h2>\n<p>C\u00f3digo G e c\u00f3digo M n\u00e3o s\u00e3o duas listas separadas de comandos CNC \u2014 s\u00e3o duas camadas coordenadas de um \u00fanico sistema de controle da m\u00e1quina. O c\u00f3digo G define onde e como a ferramenta se move; o c\u00f3digo M garante que a m\u00e1quina esteja no estado correto para executar esse movimento de forma segura e eficaz. Entender como eles interagem, como o estado modal persiste entre blocos do programa, e como as diferen\u00e7as entre controladores afetam o comportamento \u00e9 o que faz a diferen\u00e7a entre c\u00f3digo que funciona de forma confi\u00e1vel em produ\u00e7\u00e3o e c\u00f3digo que funciona uma vez, em uma m\u00e1quina, sob condi\u00e7\u00f5es ideais.<\/p>\n<p>A programa\u00e7\u00e3o confi\u00e1vel de CNC vem da disciplina de gerenciamento de estado: inicializa\u00e7\u00e3o expl\u00edcita, fases de execu\u00e7\u00e3o previs\u00edveis e temporiza\u00e7\u00e3o cuidadosa do c\u00f3digo M. Programadores que entendem c\u00f3digo G e c\u00f3digo M como um sistema l\u00f3gico coordenado \u2014 em vez de comandos isolados para memorizar \u2014 escrevem programas que s\u00e3o port\u00e1veis, seguros e f\u00e1ceis de manter entre m\u00e1quinas e turnos.<\/p>\n<hr \/>\n<h2>Perguntas frequentes<\/h2>\n<p><strong>O c\u00f3digo G \u00e9 o mesmo para fresadoras e tornos?<\/strong><\/p>\n<p>N\u00e3o exatamente. C\u00f3digos de movimento principais (G01, G02) aparecem em ambos, mas o contexto difere significativamente. O fresamento usa sele\u00e7\u00e3o de plano (G17\/G18\/G19) e coordenadas multi-eixo. Centros de torneamento usam controle de di\u00e2metro\/raio (G7\/G8 em alguns controladores), movimento sincronizado com o spindle para roscamento (G32, G92) e ciclos canned espec\u00edficos de torno (G71, G72). A sintaxe subjacente \u00e9 compartilhada; a l\u00f3gica de aplica\u00e7\u00e3o \u00e9 suficientemente diferente que a experi\u00eancia em fresamento n\u00e3o se transfere automaticamente para a programa\u00e7\u00e3o de torneamento.<\/p>\n<p><strong>Os c\u00f3digos M s\u00e3o universais entre m\u00e1quinas CNC?<\/strong><\/p>\n<p>N\u00e3o \u2014 e presumir que s\u00e3o \u00e9 arriscado. C\u00f3digos b\u00e1sicos como M03 (spindle hor\u00e1rio), M05 (parada do spindle) e M30 (fim do programa) s\u00e3o amplamente consistentes. Mas controle de refrigerante, apalpa\u00e7\u00e3o, fixa\u00e7\u00e3o, trocas de pallet e fun\u00e7\u00f5es relacionadas \u00e0 automa\u00e7\u00e3o variam significativamente por controlador, fabricante da m\u00e1quina e configura\u00e7\u00e3o. Sempre verifique as atribui\u00e7\u00f5es de c\u00f3digo M em cada m\u00e1quina espec\u00edfica antes de confiar nelas.<\/p>\n<p><strong>Por que o mesmo c\u00f3digo G se comporta de forma diferente em controladores diferentes?<\/strong><\/p>\n<p>A ISO 6983 define sintaxe, n\u00e3o comportamento. Os controladores estendem o padr\u00e3o com seus pr\u00f3prios padr\u00f5es, op\u00e7\u00f5es e interpreta\u00e7\u00f5es. Par\u00e2metros de ciclos canned, defini\u00e7\u00f5es de arco, estados modais padr\u00e3o ao ligar e posicionamento de troca de ferramenta podem todos diferir. Escrever c\u00f3digo expl\u00edcito e defensivo \u2014 definindo todos os estados modais em vez de confiar nos padr\u00f5es \u2014 \u00e9 a \u00fanica maneira confi\u00e1vel de lidar com diferen\u00e7as entre controladores.<\/p>\n<p><strong>O software CAM pode substituir o conhecimento manual de c\u00f3digo G\/M?<\/strong><\/p>\n<p>O software CAM gera trajet\u00f3rias de ferramenta corretas de forma eficiente, mas n\u00e3o elimina a necessidade de entender o c\u00f3digo. Engenheiros e maquinistas ainda precisam de conhecimento de c\u00f3digo G e M para verificar a l\u00f3gica do programa, depurar comportamentos inesperados, otimizar o tempo de ciclo e se comunicar claramente com fornecedores e operadores. O CAM substitui a digita\u00e7\u00e3o; n\u00e3o substitui o julgamento de engenharia.<\/p>\n<p><strong>Quais s\u00e3o os erros mais perigosos de c\u00f3digo G e M?<\/strong><\/p>\n<p>Erros relacionados ao estado causam os incidentes mais graves. Os erros de maior risco s\u00e3o: movimentos r\u00e1pidos G00 executados muito pr\u00f3ximos \u00e0 pe\u00e7a de trabalho; modo incremental G91 deixado ativo involuntariamente; partida do spindle M03 omitida antes do movimento de corte; troca de ferramenta M06 chamada sem recuo seguro; e ciclos fixos (G83, G84) n\u00e3o cancelados antes do reposicionamento. Nenhum deles produz erros de sintaxe \u2014 o controlador os executa sem reclamar. O dano acontece mecanicamente.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Cada movimento que uma m\u00e1quina CNC faz \u2014 cada avan\u00e7o, cada partida do spindle, cada troca de ferramenta \u2014 \u00e9 comandado por c\u00f3digo G e c\u00f3digo M. Esses dois tipos de comandos formam a camada de instru\u00e7\u00e3o entre a trajet\u00f3ria gerada pelo CAM e a remo\u00e7\u00e3o real de metal.<\/p>","protected":false},"author":1,"featured_media":12266,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[105],"tags":[],"class_list":["post-10317","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cnc-machining-guide"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.5 (Yoast SEO v28.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>G Code vs M Code: CNC Programming Commands Guide<\/title>\n<meta name=\"description\" content=\"Learn the differences between G code and M code in CNC programming, including command types, program structure, and practical examples used in CNC machining operations.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.cncmachiningshops.com\/pt\/g-code-and-m-code\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"G Code and M Code in CNC Programming: Command Types, Program Structure, and Practical Examples\" \/>\n<meta property=\"og:description\" content=\"Learn the differences between G code and M code in CNC programming, including command types, program structure, and practical examples used in CNC machining operations.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cncmachiningshops.com\/pt\/g-code-and-m-code\/\" \/>\n<meta property=\"og:site_name\" content=\"CNC Machining Shops\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-12T02:55:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-19T09:21:55+00:00\" \/>\n<meta name=\"author\" content=\"cncmachiningshops\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"cncmachiningshops\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/g-code-and-m-code\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/g-code-and-m-code\\\/\"},\"author\":{\"name\":\"cncmachiningshops\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#\\\/schema\\\/person\\\/2593a2e2de68be71300e10f486236551\"},\"headline\":\"G Code and M Code in CNC Programming: Command Types, Program Structure, and Practical Examples\",\"datePublished\":\"2026-03-12T02:55:08+00:00\",\"dateModified\":\"2026-07-19T09:21:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/g-code-and-m-code\\\/\"},\"wordCount\":3349,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/g-code-and-m-code\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/G-Code-and-M-Code-in-CNC-Programming-800x600-1.jpg\",\"articleSection\":[\"CNC Machining Guide\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.cncmachiningshops.com\\\/g-code-and-m-code\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/g-code-and-m-code\\\/\",\"url\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/g-code-and-m-code\\\/\",\"name\":\"G Code vs M Code: CNC Programming Commands Guide\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/g-code-and-m-code\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/g-code-and-m-code\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/G-Code-and-M-Code-in-CNC-Programming-800x600-1.jpg\",\"datePublished\":\"2026-03-12T02:55:08+00:00\",\"dateModified\":\"2026-07-19T09:21:55+00:00\",\"description\":\"Learn the differences between G code and M code in CNC programming, including command types, program structure, and practical examples used in CNC machining operations.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/g-code-and-m-code\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.cncmachiningshops.com\\\/g-code-and-m-code\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/g-code-and-m-code\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/G-Code-and-M-Code-in-CNC-Programming-800x600-1.jpg\",\"contentUrl\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/G-Code-and-M-Code-in-CNC-Programming-800x600-1.jpg\",\"width\":800,\"height\":600,\"caption\":\"G Code and M Code in CNC Programming 800x600\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/g-code-and-m-code\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"G Code and M Code in CNC Programming: Command Types, Program Structure, and Practical Examples\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#website\",\"url\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/\",\"name\":\"CNC Machining Shops\",\"description\":\"10+ Years CNC Machining Service Supplier\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#organization\"},\"alternateName\":\"CMS\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#organization\",\"name\":\"CNC Machining Shops\",\"alternateName\":\"CMS\",\"url\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/CMS_Logo_1000x1000.png\",\"contentUrl\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/CMS_Logo_1000x1000.png\",\"width\":800,\"height\":800,\"caption\":\"CNC Machining Shops\"},\"image\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"description\":\"Shenzhen CMS Technology Co., Ltd. is located in Shenzhen, Guangdong, China. It was established in 2012 with a factory area of \u200b\u200b3,000 square meters. It is a company specializing in CNC machining and precision parts manufacturing. We have passed ISO9001, IATF16949, ISO13485 certification and are your trusted partner.\",\"email\":\"info@cncmachiningshops.com\",\"telephone\":\"+8617196430663\",\"legalName\":\"Shenzhen CMS Technology Co., Ltd.\",\"foundingDate\":\"2012-07-22\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"11\",\"maxValue\":\"50\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#\\\/schema\\\/person\\\/2593a2e2de68be71300e10f486236551\",\"name\":\"cncmachiningshops\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/36a63d96ed08f8805561107422de4e83bbf8d1669dbc9655acab534bc3e1ed17?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/36a63d96ed08f8805561107422de4e83bbf8d1669dbc9655acab534bc3e1ed17?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/36a63d96ed08f8805561107422de4e83bbf8d1669dbc9655acab534bc3e1ed17?s=96&d=mm&r=g\",\"caption\":\"cncmachiningshops\"},\"sameAs\":[\"https:\\\/\\\/cncmachiningshops.com\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C\u00f3digo G vs C\u00f3digo M: Guia de Comandos de Programa\u00e7\u00e3o CNC","description":"Aprenda as diferen\u00e7as entre c\u00f3digo G e c\u00f3digo M na programa\u00e7\u00e3o CNC, incluindo tipos de comandos, estrutura de programa e exemplos pr\u00e1ticos usados em opera\u00e7\u00f5es de usinagem CNC.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.cncmachiningshops.com\/pt\/g-code-and-m-code\/","og_locale":"pt_PT","og_type":"article","og_title":"G Code and M Code in CNC Programming: Command Types, Program Structure, and Practical Examples","og_description":"Learn the differences between G code and M code in CNC programming, including command types, program structure, and practical examples used in CNC machining operations.","og_url":"https:\/\/www.cncmachiningshops.com\/pt\/g-code-and-m-code\/","og_site_name":"CNC Machining Shops","article_published_time":"2026-03-12T02:55:08+00:00","article_modified_time":"2026-07-19T09:21:55+00:00","author":"cncmachiningshops","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"cncmachiningshops","Tempo estimado de leitura":"15 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cncmachiningshops.com\/g-code-and-m-code\/#article","isPartOf":{"@id":"https:\/\/www.cncmachiningshops.com\/g-code-and-m-code\/"},"author":{"name":"cncmachiningshops","@id":"https:\/\/www.cncmachiningshops.com\/#\/schema\/person\/2593a2e2de68be71300e10f486236551"},"headline":"G Code and M Code in CNC Programming: Command Types, Program Structure, and Practical Examples","datePublished":"2026-03-12T02:55:08+00:00","dateModified":"2026-07-19T09:21:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cncmachiningshops.com\/g-code-and-m-code\/"},"wordCount":3349,"commentCount":0,"publisher":{"@id":"https:\/\/www.cncmachiningshops.com\/#organization"},"image":{"@id":"https:\/\/www.cncmachiningshops.com\/g-code-and-m-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cncmachiningshops.com\/wp-content\/uploads\/2026\/03\/G-Code-and-M-Code-in-CNC-Programming-800x600-1.jpg","articleSection":["CNC Machining Guide"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.cncmachiningshops.com\/g-code-and-m-code\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.cncmachiningshops.com\/g-code-and-m-code\/","url":"https:\/\/www.cncmachiningshops.com\/g-code-and-m-code\/","name":"C\u00f3digo G vs C\u00f3digo M: Guia de Comandos de Programa\u00e7\u00e3o CNC","isPartOf":{"@id":"https:\/\/www.cncmachiningshops.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cncmachiningshops.com\/g-code-and-m-code\/#primaryimage"},"image":{"@id":"https:\/\/www.cncmachiningshops.com\/g-code-and-m-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cncmachiningshops.com\/wp-content\/uploads\/2026\/03\/G-Code-and-M-Code-in-CNC-Programming-800x600-1.jpg","datePublished":"2026-03-12T02:55:08+00:00","dateModified":"2026-07-19T09:21:55+00:00","description":"Aprenda as diferen\u00e7as entre c\u00f3digo G e c\u00f3digo M na programa\u00e7\u00e3o CNC, incluindo tipos de comandos, estrutura de programa e exemplos pr\u00e1ticos usados em opera\u00e7\u00f5es de usinagem CNC.","breadcrumb":{"@id":"https:\/\/www.cncmachiningshops.com\/g-code-and-m-code\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cncmachiningshops.com\/g-code-and-m-code\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.cncmachiningshops.com\/g-code-and-m-code\/#primaryimage","url":"https:\/\/www.cncmachiningshops.com\/wp-content\/uploads\/2026\/03\/G-Code-and-M-Code-in-CNC-Programming-800x600-1.jpg","contentUrl":"https:\/\/www.cncmachiningshops.com\/wp-content\/uploads\/2026\/03\/G-Code-and-M-Code-in-CNC-Programming-800x600-1.jpg","width":800,"height":600,"caption":"G Code and M Code in CNC Programming 800x600"},{"@type":"BreadcrumbList","@id":"https:\/\/www.cncmachiningshops.com\/g-code-and-m-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cncmachiningshops.com\/"},{"@type":"ListItem","position":2,"name":"G Code and M Code in CNC Programming: Command Types, Program Structure, and Practical Examples"}]},{"@type":"WebSite","@id":"https:\/\/www.cncmachiningshops.com\/#website","url":"https:\/\/www.cncmachiningshops.com\/","name":"Oficinas de usinagem CNC","description":"Fornecedor de Servi\u00e7os de Usinagem CNC com mais de 10 Anos","publisher":{"@id":"https:\/\/www.cncmachiningshops.com\/#organization"},"alternateName":"CMS","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.cncmachiningshops.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/www.cncmachiningshops.com\/#organization","name":"Oficinas de usinagem CNC","alternateName":"CMS","url":"https:\/\/www.cncmachiningshops.com\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.cncmachiningshops.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.cncmachiningshops.com\/wp-content\/uploads\/2025\/11\/CMS_Logo_1000x1000.png","contentUrl":"https:\/\/www.cncmachiningshops.com\/wp-content\/uploads\/2025\/11\/CMS_Logo_1000x1000.png","width":800,"height":800,"caption":"CNC Machining Shops"},"image":{"@id":"https:\/\/www.cncmachiningshops.com\/#\/schema\/logo\/image\/"},"description":"Shenzhen CMS Technology Co., Ltd. est\u00e1 localizada em Shenzhen, Guangdong, China. Foi fundada em 2012 com uma \u00e1rea fabril de 3.000 metros quadrados. \u00c9 uma empresa especializada em usinagem CNC e fabrica\u00e7\u00e3o de pe\u00e7as de precis\u00e3o. Obtivemos as certifica\u00e7\u00f5es ISO9001, IATF16949, ISO13485 e somos seu parceiro de confian\u00e7a.","email":"info@cncmachiningshops.com","telephone":"+8617196430663","legalName":"Shenzhen CMS Technology Co., Ltd.","foundingDate":"2012-07-22","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"11","maxValue":"50"}},{"@type":"Person","@id":"https:\/\/www.cncmachiningshops.com\/#\/schema\/person\/2593a2e2de68be71300e10f486236551","name":"oficinas de usinagem cnc","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/secure.gravatar.com\/avatar\/36a63d96ed08f8805561107422de4e83bbf8d1669dbc9655acab534bc3e1ed17?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/36a63d96ed08f8805561107422de4e83bbf8d1669dbc9655acab534bc3e1ed17?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/36a63d96ed08f8805561107422de4e83bbf8d1669dbc9655acab534bc3e1ed17?s=96&d=mm&r=g","caption":"cncmachiningshops"},"sameAs":["https:\/\/cncmachiningshops.com"]}]}},"_links":{"self":[{"href":"https:\/\/www.cncmachiningshops.com\/pt\/wp-json\/wp\/v2\/posts\/10317","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cncmachiningshops.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cncmachiningshops.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cncmachiningshops.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cncmachiningshops.com\/pt\/wp-json\/wp\/v2\/comments?post=10317"}],"version-history":[{"count":0,"href":"https:\/\/www.cncmachiningshops.com\/pt\/wp-json\/wp\/v2\/posts\/10317\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cncmachiningshops.com\/pt\/wp-json\/wp\/v2\/media\/12266"}],"wp:attachment":[{"href":"https:\/\/www.cncmachiningshops.com\/pt\/wp-json\/wp\/v2\/media?parent=10317"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cncmachiningshops.com\/pt\/wp-json\/wp\/v2\/categories?post=10317"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cncmachiningshops.com\/pt\/wp-json\/wp\/v2\/tags?post=10317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}