O que o G-code descreve

O G-code é uma linguagem de instruções orientada a linhas, usada por impressoras 3D, máquinas CNC e sistemas de movimento relacionados. Uma linha pode pedir um movimento, mudar um ajuste modal, definir uma temperatura ou atualizar um recurso específico do controlador.

Um comando raramente tem sentido isolado. Seu resultado pode depender do modo de unidades, do modo de coordenadas, do modo de extrusão, da configuração da máquina e do firmware que interpreta o arquivo. Por isso esta referência documenta tanto o significado comum quanto o contexto capaz de alterá-lo.

Ideia central

O G-code é mais bem compreendido como uma família de dialetos aparentados do que como um padrão de arquivo perfeitamente uniforme para impressoras. A sintaxe básica de movimento coincide, mas os comandos disponíveis, os parâmetros, os padrões e as extensões dependem do firmware de destino e da sua configuração.

Ler uma linha de comando

G1 X120 Y40 E1.6 F1800
G1

Solicita um movimento linear coordenado.

X / Y

Informam a posição de destino ou a distância, conforme G90/G91.

E

Informa uma posição ou uma distância do extrusor, conforme M82/M83.

F

Define a velocidade de avanço. Arquivos de impressão normalmente a expressam em milímetros por minuto, e os movimentos seguintes muitas vezes continuam usando o último valor.

; ...

Normalmente inicia um comentário para pessoas ou programas. Os fatiadores usam comentários para marcar camadas e tipos de elemento, mas esses rótulos não são padronizados.

Uma letra não carrega uma unidade fixa e independente de contexto. X pode ser uma coordenada e F uma velocidade de avanço, enquanto S pode representar temperatura, potência do ventilador ou outro ajuste. Interprete cada parâmetro pelo comando ao qual ele pertence.

Um arquivo de impressão costuma ter três partes

Preparação

Define unidades e modos de posicionamento, liga os aquecedores, referencia os eixos, seleciona uma ferramenta e pode executar nivelamento, limpeza ou macros de início. É aqui que se estabelece como os valores seguintes serão lidos.

Corpo em camadas

Longas sequências de movimento, extrusão, retração e mudanças de ventilação e temperatura formam a peça. Camadas e tipos de elemento costumam ser marcados por comentários do fatiador, e não por comandos próprios.

Encerramento

Desliga aquecedores e ventiladores, levanta ou estaciona o cabeçote, libera os motores e pode chamar uma macro final específica da máquina. Um encerramento ausente pode deixar a máquina em um estado diferente do esperado.

; início: estabelecer o estado
G21
G90
M83
G28

; corpo: deslocar e depois imprimir
G0 X40 Y20 Z0.20 F9000
G1 X80 Y20 E1.40 F1800

; fim: parar as saídas ativas
M104 S0
M140 S0
M107

Esta é uma ilustração estrutural, não um arquivo completo para rodar em qualquer máquina. O sentido do referenciamento, a ordem de aquecimento, a posição de estacionamento e os nomes das macros precisam corresponder à impressora específica.

O contexto do firmware importa

Marlin, Klipper, RepRapFirmware e controladores CNC coincidem nos comandos básicos de movimento, mas não formam uma linguagem perfeitamente intercambiável. Um mesmo objetivo na máquina pode exigir outros nomes de comando, outros parâmetros ou outra escala de valores.

SistemaModelo de extensãoO que verificar
MarlinComandos no estilo RepRapMuitos recursos são opções de compilação, então duas compilações da mesma versão podem expor comandos diferentes.
KlipperSubconjunto padrão + extensões nomeadasDá suporte deliberado a um subconjunto padrão comum, acrescenta nomes como SET_PRESSURE_ADVANCE e permite que macros adicionem ou substituam comportamentos.
RepRapFirmwareG-code em toda parte + macros e expressõesConfiguração, controle e relatórios de estado usam G-code intensivamente, e versões recentes também aceitam metacomandos e expressões.
LinuxCNC / RS274NGCGrupos modais CNC e sistemas de coordenadasConceitos de CNC como controle de árvore, compensação de ferramenta, coordenadas de trabalho e ciclos fixos não implicam eixo E ou aquecedores no estilo de impressora.

Nome do firmware, versão e configuração são, portanto, o contexto mínimo de compatibilidade. Nem a extensão do arquivo nem uma execução bem-sucedida na máquina de outra pessoa provam execução idêntica na sua impressora.

Como inspecionar um arquivo desconhecido

  • Identifique o fatiador, a máquina de destino e o firmware. Sem esse contexto, trate a compatibilidade como desconhecida.
  • Leia unidades, modo de eixos, modo de extrusão, referenciamento e configuração de ferramenta e aquecedores antes de interpretar os movimentos seguintes.
  • Acompanhe as mudanças de X/Y/Z separadamente das de E para distinguir deslocamento, impressão, retração e escorva.
  • Trate comentários iniciados por ponto e vírgula como pistas do fatiador, não como comandos que a máquina necessariamente executa, e não presuma que todos os fatiadores usam os mesmos rótulos.
  • Diante de macros, extensões nomeadas ou códigos M desconhecidos, consulte a documentação oficial daquela versão de firmware em vez de deduzir pelo número.
  • Por fim, confira se o encerramento desliga aquecedores, ventiladores e outras saídas, e se os movimentos de estacionamento não podem ultrapassar limites nem atingir a peça.

O que cada página de comando contém

  • Uma definição concisa seguida do estado necessário para interpretar o comando.
  • Sintaxe e significado dos parâmetros, com exemplos práticos de G-code.
  • Diferenças entre firmwares e erros que podem alterar o comportamento da máquina.
  • Uma declaração transparente do que o visualizador local pode e não pode verificar.

O que o visualizador pode mostrar

Mostra o arquivo, não a impressora

O visualizador consegue mostrar as trajetórias suportadas e alguns detalhes do arquivo. Ele não reproduz os ajustes da impressora nem prevê exatamente o que uma impressora física fará.

Comece por estes comandos essenciais

Fontes oficiais usadas neste guia

Redigido em 8 de agosto de 2026 com base nas fontes primárias a seguir. Juntas, elas explicam a estrutura de linha compartilhada e o motivo de os dialetos de cada controlador divergirem.