Escolar Documentos
Profissional Documentos
Cultura Documentos
Uma Introdução Aos Comandos G-Code
Uma Introdução Aos Comandos G-Code
Até agora mostramos muitos exemplos de código e mesmo falamos alguns comandos,
mas não dissemos o sentido deles.
O G-Code foi criado no MIT na década de 1950, com as primeiras CNCs. Nasceu para
ser usado principalmente por cartões perfurados — somente mais tarde sendo feita em
texto comum - que passavam instruções pontuais para as máquinas executarem: vá para
a posição X "tal", a posição Y "tal", com velocidade "tal", e baixe o instrumento;
percorra mais 20 unidades positivas no eixo X na mesma velocidade; suba o
instrumento e o desligue.
Não era essencial que humanos entendessem a "linguagem" e portanto, diferente das
linguagens de programação que usamos hoje em dia que usam mnemônicos em inglês
para nos lembrarmos das palavras-chave ("print", "echo", "for", "while", "read", etc.), os
comandos são compactos e representados por uma letra seguida de um número: "G";
por exemplo, G28.
Note que alguns comandos podem retornar uma mensagem que pode consistir de uma
ou mais linhas no mesmo "terminal controlador", como um comando que peça a versão
do firmware ou o estado atual do extrusor.
Exemplo:
Agora que entendemos a sintaxe, portanto, vamos aos comandos. Comecemos pelos
comandos G mais básicos.
O movimento do G0/G1 é "interpolado" entre os pontos. O que isso quer dizer é que ele
calcula uma linha reta no espaço entre a origem e o destino (a menor distância entre dois
pontos). Devido ao modo como a impressão 3D funciona, no entanto, com camadas
horizontais, comandos G0/G1 que envolvem o eixo Z são raros, a maioria funcionando
em um plano — nesse caso o Z é simplesmente omitido.
Exemplos:
1. Pra começar, preste atenção que o parâmetro de velocidade toma como entrada a
unidade por minuto de movimento. Isto está em contraste com a configuração da
maioria dos fatiadores, que coloca tais velocidades em comprimento por
segundo. É comum o usuário que começa a usar g-code manualmente se
esquecer de converter e não entender o resultado.
2. Qual comprimento, afinal, ele usa? A maioria dos firmwares usa como default o
sistema métrico para comprimento (milímetros), que pode ser mudado para o
sistema imperial (polegadas) com o comando G20, e mudado de volta para
milímetros com G21. Essa mudança fica somente na RAM da impressora, e volta
ao default quando desligada.
3. Se você não colocar a velocidade, qual valor o firmware adota? A maioria dos
softwares adota a política "pegajosa" (sticky), isto é, retém o último valor usado
para o comando. Se você especificar, sem mais nenhum parâmetro, G0 F600 e
logo depois G1 X40 Y10 (lembre-se, G0 e G1 são o mesmo comando), ele vai
para a posição X 40, Y 10 a 600 milímetros por segundo.
4. As coordenadas dadas são em relação à posição que o extrusor está ou em
relação ao ponto (0,0,0) da impressora, que definimos em seção anterior?
Assim que é ligada, o default dos firmwares é usar a coordenada absoluta, isto
é, se você manda G1 X40 Y10 Z20, o extrusor sairá de qualquer coordenada em
que estiver para ir à coordenada (40, 10, 20) em relação à origem. Para mudar
este comportamento, você usa o comando G91, que interpretará as próximas
coordenadas como relativas, isto é, em relação ao ponto atual; se seu extrusor
estiver na coordenada (10,10,10) e você enviar G91 e depois G1 X40 Y10 Z20,
ele vai ser dirigir a (10+40, 10+10, 10+20) = (50, 20, 30). No entanto, isto só
funciona se a origem tiver sido determinada, pelo procedimento chamado de
homing (dado pelo comando G28); se você mandar o comando de coordenada
absoluta antes do homing, o comportamento é indeterminado e dependente de
configuração e firmware. Em deltas com Marlin, por exemplo, por segurança o
extrusor não se move nessas condições. Para voltar ao modo absoluto, se usa
G90. Veja que tais modos não valem para as coordenadas do extrusor — ele tem
seu próprio status, ajustado para absoluto com o G-Code M82 (default) e para
relativo com o M83.
Figure 3. O movimento relativo no comando G1. Estando na coordenada espacial X=2,
Y=7, Z=5, o comando G1 X7.0 Y-2.0 Z-2.0 se desloca para a coordenada X=9, Y=5,
Z=3. Os pontos decimais não são necessários mas é considerado boa prática. Para se
chegar ao mesmo destino usando coordenadas absolutas (G90), bastaria usar G1 X9.0
Y5.0 Z3.0.
G10: comando para retração de firmware, por default não usado pelos fatiadores
(que implementam a retração usando G1). Usa os ajustes colocados pelo
comando M207.
G11: "unretract" (volta da retração) por firmware, por default não usado pelos
fatiadores (que implementam o unretract usando G1). Usa os ajustes colocados
pelo comando M208.
G20: passa a interpretar as unidades usadas nos parâmetros como polegadas. A
configuração é perdida quando a impressora é desligada.
G21: passa a interpretar as unidades usadas nos parâmetros como milímetros. A
configuração é perdida quando a impressora é desligada.
G28: Implementa o homing. Quando a impressora 3D é ligada, ela não "sabe" em
que coordenadas o extrusor está posicionado. Quando o comando G28 é enviado
para a impressora 3D cartesiana, ela vai até o fim de curso de cada eixo,
deixando no final do procedimento o extrusor na coordenada X=0, Y=0, Z=0 —
a "origem". No caso das impressoras 3D delta, o G28 leva os braços até o topo de
cada torre, terminando com o effector no centro da mesa no plano XY e na maior
altura alcançável da impressora (Z máximo) — (0,0,Zmax). De ambos os modos,
a impressora passa a "saber" em que coordenada está, e se os próximos
movimentos do extrusor ou effector forem dados por ela, ela continuará tendo
esta referência.
O G28 não necessariamente vai até o fim de curso de todos os eixos. Se forem
passados parâmetros de eixos, ele vai até o fim de curso dos parâmetros (o valor
numérico do parâmetro é ignorado). Por exemplo, G28 X0 Y0 vai até o fim de
curso do eixo X e Y. É importante notar que o comportamento do G28 não é
muito padronizado e existem firmwares que podem fazer o homing completo
mesmo quando se especificam os eixos — o que torna um risco colocar esse
código na configuração de G-Code de fim de impressão. Alguns firmwares usam
"flags" de compilação para alterar o comportamento do homing — por exemplo,
o Marlin tem uma flag Z_SAFE_HOMING que faz com que o comando primeiro
faça homing em X e Y, então vá ao centro da mesa, baixe a sonda de
autonivelamento e a use para o homing em Z. Reiterando os parâmetros:
o Xn — vai até o fim de curso do eixo X. n é ignorado.
o Yn — vai até o fim de curso do eixo Y. n é ignorado.
o Zn — vai até o fim de curso do eixo Z. n é ignorado.
Figure 4. Homing de uma impressora 3D cartesiana (Prusa Mendel, à esquerda) e uma
delta (Kossel Mini, à direita). Enquanto na cartesiana o homing referencia o ponto
mínimo de todos os eixos, na delta o Z achado é a altura máxima, pois o fim de curso é
no topo. Se a delta não tiver autocalibração de mesa, a configuração de um "Zmax" com
valor errado a fará ficar com posicionamento vertical igualmente errado. A delta sempre
faz homing em todos os postes, não faz homing “por eixo” como uma cartesiana.
Sonda de autonivelamento
Fonte: https://github.com/Patola/ebook/blob/master/guia-maker-da-impressao-3d-
gcode.adoc