| Esta página ou seção foi marcada para revisão devido a incoerências ou dados de confiabilidade duvidosa. Se tem algum conhecimento sobre o tema, por favor, verifique e melhore a coerência e o rigor deste artigo. Considere colocar uma explicação mais detalhada na discussão. (Janeiro de 2012) |
O Código G, do inglês G-code, é uma linguagem de programação para ordenar máquinas a fazer algo. Foi criada devido à necessidade dos fabricantes industriais terem uma linguagem padronizada em sistemas do tipo Comando Numérico Computadorizado (CNC).
Até então, cada fabricante ficava responsável por criar sua própria linguagem para definir o processo de fabrico. O Código G trouxe a padronização para o processo de fabrico e consequentemente o desenvolvimento da indústria passou a ter uma linguagem universal.
Como complemento do Código Numérico, o Código G tem como função principal instruir a máquina a se mover geometricamente nas três dimensões, x, y e z. É uma linguagem extremamente simples e rudimentar, sendo composta por linhas sequenciais de instruções, cada qual responsável por uma tarefa específica, sendo o programa executado linha por linha até o fim do código.
“Os comandos operacionais, que controlam a máquina são executados automaticamente com uma velocidade impressionante, precisão, eficiência e repetibilidade.”[1]
Com o surgimento das Impressoras 3D, que também se enquadram como máquinas CNC, tornou-se natural a adoção do Código G como linguagem de controle dessas máquinas, prova disso são os Slicers, software utilizado por essas impressoras, que exportam arquivos no formato do Código G.
A popularidade da tecnologia de impressão 3D fez com que mais pessoas tivessem acesso ao Código G, portanto torna-se necessário que os novos usuários dominem esta linguagem para evitar problemas de impressão e conquistarem a autonomia para calibrar a sua própria impressora.[2]
Aplicação
O Código G tem sua maior área de aplicação em máquinas CNC’s, porém, com o surgimento da Impressão 3D, que tem como base a tecnologia CNC, a mesma linguagem é utilizada pelas aplicações relacionadas a Impressão 3D.
O Código G é interpretado por firmwares desenvolvidos para tal função. O firmware converte o Código G em movimentos nos motores e eixos das máquinas. Existem diversos firmwares de código aberto que podem ser aplicados no uso de Código G, entre eles encontramos:
Sintaxe
“Diferentemente de outras linguagens com padronização oficial e comitês de decisão, o G-Code é uma linguagem extraordinariamente variada, com comandos e até a sintaxe dependendo muito de implementação específica.” - SAMPAIO, Cláudio
[3]
O Código G não tinha como intenção que todo e qualquer humano, não treinado ou habituado compreendesse o código, portanto os comandos são compactos e representados por uma letra seguida de um número.
A sintaxe do código G possui uma estrutura com os seguintes formatos:
- Número de linhas;
- Comandos;
- Parâmetros dos comandos;
- Checksum;
- Comentários.
Número de Linha
O número da linha é a primeira parte da linha de código, o número deve ser precedido da letra “N” (logo os primeiros campos da linha 1(um) deve ser “N1”, assim como na linha dois os primeiros campos são “N2”, Ex. N1 M109 S220). Atualmente o formato de número da linha está depreciado para a particularidade do código G para impressão 3D, todavia o campo existe e pode ser utilizado.
Comando
No Código G não é aceite mais de um comando por linha. O comando é uma palavra reservada (letra seguida de um número, Ex. G28) que declara a ação que deve ser executada, podendo também ser acompanhada de argumentos que complementam a ação (Parâmetros). No caso das impressoras 3D os comandos estão limitados a três tipos de palavras reservadas, as iniciadas por G, M e T.
Parâmetros
Os parâmetros acompanham os comandos, assim como os comandos são representados por palavras reservadas (letras seguidas de números que podem ser positivos ou negativos). Segue lista de parâmetros com maior frequência de utilização:
- S (Speed): No caso das máquinas fresadoras, designa a velocidade de rotação do spindle. Nas lasers, designa a potência do laser, e nas impressoras 3D pode ser considerado um parâmetro genérico (é utilizado para distância ou temperatura).
- R (Retract):' Velocidade adicional ligada à retração, usado apenas em alguns firmwares.
- T : Usado para feedrate de recuperação da retração.O parâmetro T, é utilizado por poucos firmwares ao contrário do comando T que é utilizado por todos os firmwares.
- X, Y e Z: Representam as coordenadas/distâncias podendo ser absolutas ou relativas dependendo do comando em si.
- E: Quantidade de filamento do extrusor.
- A, B e C: Representa as coordenadas ou distâncias angulares, assim como os parâmetros X, Y e Z, podem ser absolutas ou arbitrárias as medidas. Estes parâmetros não são utilizados em impressão 3D.
Checksum (soma de controle)
É um campo que tem como objetivo a verificação da consistência do código, o checksum é um campo numérico que contém um asterisco e um número entre 0 e 255, o mesmo é utilizado para verificar as demais linhas que chegam à máquina corretamente ou foram afetadas por ruídos no meio. O campo cheksum não é usado em impressão 3D.
Comentário
No Código G um comentário é representado pelo carácter “;” (ponto e vírgula). As linhas iniciadas por este carácter são totalmente ignoradas pelo interpretador de Código G. As linhas que possuam um carácter ponto e vírgula após o comando também são processadas pelo interpretador no Código G mas apenas até ao carácter ponto e vírgula.
Também pode estar dentro de ( ) (parênteses curvos) no sistema ISO, o ponto e vírgula é utilizado muito no sistema alemão heindeihaim.
Exemplos
O Código G conta com uma lista de mais de 500 comandos, cada comando é específico para uma tarefa e alguns dos comandos são aplicáveis somente a máquinas CNC. Abaixo você encontra uma lista dos comandos mais comuns:
- G28 - Inicio dos eixos.
- M115 - Colhe informação do Firmware e outras capacidades da máquina.
- M104 - Define temperatura alvo do extrusor.
- M140 - Define temperatura alvo da cama de aquecimento.
- G0/G1 - Movimentos lineares dos eixos.
- G90/G91 - Define se o movimento é através de valores absolutos ou relativos.
- O parâmetro G0 é destinado a movimentos rápidos, sem obedecer o valor de F (feedrate), enquanto o G1 leva o parâmetro F (feedrate) em consideração.
Aqui temos um código feito para impressora 3D, comentado para fins didáticos:
M190 S110.000000 ;Espera que a base esteja a temperatura de 110 graus.
M109 S220.000000 ;Configura a temperatura do extrusor a 220 graus e aguarda.
;Sliced at: Wed 11-05-2016 17:28:59
;Basic settings: Layer height: 0.2 Walls: 1.2 Fill: 15
;Print time: 17 minutes
;Filament used: 1.094m 3.0g
;Filament cost: None
;M190 S110 ;Espera que a base esteja a temperatura de 110 graus.
;M109 S220 ;Configura a temperatura do extrusor a 220 graus e aguarda.
G21 ;Configura as unidades para milímetros (default do RepRap)
G90 ;Define a posição absoluta (a partir desta linha as coordenadas são referentes a origem da máquina).
M82 ;Configura extrusor para o módulo absoluto, faz com que o extrusor interpreta instruções de posições absolutas.
M107 ;Inicializa com o fan(tipo de exaustor) desligado.
G28 X0 Y0 ;move os eixos X e Y para as coordenadas definidas e para.
G28 Z0 ;move o eixo Z para a coordenada definidas.
G1 Z15.0 F9000 ;move a plataforma 15mm para baixo.
G32 S1 ;auto nivelamento do plano Z (da base)
G92 E0 ;zera o comprimento do extrusor
G1 F200 E3 ;deposita 3mm matéria prima
G92 E0
G1 F9000 ;Define feedrate para 9000mm/m
M117 Printing… ;Imprime no LCD “Printing…”
;Layer count: 127
;LAYER:0
M107
G0 X97.275 Y94.282 Z0.300 ;Movimentação linear rápida para as coordenadas, passados por parâmetro.
;TYPE:SKIRT
G1 F1200 X98.218 Y93.462 E0.06607 ;Acelera para 1200mm/m
G1 X98.909 Y92.929 E0.11220 ;movimenta linearmente para as coordenadas passadas por parâmetros.
Como o Código G é criado
Um arquivo de Código G pode ser criado a partir de modelos bidimensionais ou tridimensionais que são inseridos em programas chamados fatiadores (slicers), esses programas analisam o modelo, e “então usam de algoritmos para transladar o modelo em camadas individuais e gerar o Código G que será interpretado pela máquina”[4]
Um modelo tridimensional, normalmente de arquivos CAD (Computer Aid Design ou Desenho Assistido por Computador), são usados nas transformações para Código G. Os mais comuns, são os arquivos com extensões STL (Standard Tessellation Language). Um arquivo STL é formado por triângulos que são definidos por 3 vértices e o vetor normal.
O algoritmo base corta cada triângulo com um plano. A interseção desse plano com o triângulo gera o código a ser interpretado.[5]
Referências