Índice
Os códigos G são amplamente utilizados na impressão 3D, especialmente através do firmware Marlin. Muitas pessoas perguntam-se como utilizar os códigos G em seu benefício, pelo que decidi escrever este artigo para ajudar os leitores.
Existem alguns pormenores úteis sobre o G-Code no resto deste artigo, por isso continue a ler para saber mais.
O que são códigos G na impressão 3D?
O G-Code é simplesmente uma linguagem de programação para máquinas CNC (Computer Numerically Controlled), como impressoras 3D, fresadoras CNC, etc. Contém um conjunto de comandos que o firmware utiliza para controlar o funcionamento da impressora e o movimento da cabeça de impressão.
Como é criado o código G?
O código G para impressoras 3D é criado utilizando uma aplicação especial chamada "slicer", que pega no modelo 3D e o corta em camadas 2D finas.
Em seguida, especifica as coordenadas ou o caminho que a cabeça de impressão deve percorrer para construir estas camadas. Também controla e define funções específicas da impressora, como ligar o aquecedor, as ventoinhas, as câmaras, etc.
Os cortadores mais populares no mercado incluem o PrusaSlicer e o Cura.
Tipos de código G
Embora o nome geral para os comandos CNC seja G-Code, podemos dividir os comandos em duas categorias: Eles incluem:
- Código G
- Código M
Código G
A sua função principal é controlar o movimento, a posição ou a trajectória da cabeça de impressão.
Utilizando o código G, pode mover o bocal em linha recta, posicioná-lo num local específico, levantá-lo ou baixá-lo, ou mesmo movê-lo através de um caminho curvo.
Veja também: 7 melhores impressoras 3D para automóveis e peças de motociclosSão precedidos de um G para mostrar que são G-Code.
Código M
O código M significa Miscellaneous commands, ou seja, comandos da máquina que controlam outras funções da impressora para além do movimento da cabeça de impressão.
As suas funções incluem: ligar e desligar os motores, definir a velocidade da ventoinha, etc. Outra função do M-Code é definir a temperatura da cama e a temperatura do bocal.
São precedidos de um M, que significa "miscelânea".
O que são os "sabores" do código G?
A variante de código G refere-se à forma como o firmware da impressora (sistema operativo) espera que o código G seja formatado. Existem diferentes variantes devido às diferentes normas de código G e firmware que as várias marcas de impressoras utilizam.
Por exemplo, os comandos padrão, como mover, ligar o aquecedor, etc., são comuns a todas as impressoras. No entanto, alguns comandos de nicho não são os mesmos, o que pode levar a erros de impressão se forem utilizados na máquina errada.
Para contrariar esta situação, a maioria dos cortadores tem opções para configurar o perfil da sua impressora, para que possa escolher o sabor certo para a sua máquina. O cortador traduzirá então o ficheiro 3D para o código G apropriado para a sua máquina.
Alguns exemplos de sabores de G-Code incluem RepRap, Marlin, UltiGcode, Smoothie, etc.
Lista dos principais códigos G na impressão 3D
Existem inúmeros comandos G-Code disponíveis para diferentes firmwares de impressoras 3D. Aqui estão alguns dos comandos mais comuns que pode encontrar durante a impressão e como utilizá-los.
Marlin M0 [Paragem incondicional]
O comando M0 é conhecido como o comando de paragem incondicional. Pára o funcionamento da impressora após o último movimento e desliga os aquecedores e os motores.
Depois de parar o funcionamento da impressora, esta fica em repouso durante um período definido ou aguarda a entrada do utilizador para voltar a ficar online. O comando M0 pode ter três parâmetros diferentes.
Estes parâmetros são:
- [P < tempo(ms) >]: Esta é a quantidade de tempo que pretende que a impressora durma em milissegundos. Por exemplo, se pretender que a impressora durma durante 2000ms, utilizará o parâmetro M0 P2000
- {S< tempo(s) >]: Este é o período de tempo que pretende que a impressora fique em suspensão, em segundos. Por exemplo, se pretender que a impressora fique em suspensão durante 2 segundos, utilizará o parâmetro M0 S2
- [ mensagem ]: Pode utilizar este parâmetro para apresentar uma mensagem no LCD da impressora enquanto esta está em pausa. Por exemplo, M0 Prima o botão central para reiniciar a impressão .
Nota: O M0 é o mesmo que o comando M1 comando.
Marlin M81
O comando M81 desliga a PSU (fonte de alimentação) da impressora, o que significa que todos os aquecedores, motores, etc. não podem funcionar.
Além disso, se a placa não tiver uma fonte de alimentação alternativa, também se desliga.
Marlin M82
O comando M82 coloca o extrusor em modo absoluto, o que significa que se o código G pedir ao extrusor para extrudir 5mm de filamento, ele extrude 5mm independentemente de quaisquer comandos anteriores.
Sobrepõe-se aos comandos G90 e G91.
O comando afecta apenas a extrusora, pelo que é independente de outros eixos. Por exemplo, considere este comando;
M82;
G1 X0,1 Y200,0 Z0,3 F1500,0 E15;
G1 X0,4 Y20 Z0,3 F1500,0 E30;
O extrusor é colocado em modo absoluto com M82 na linha 1. Na linha 2, desenha a primeira linha extrudindo 15 unidades de filamento.
Após a linha 2, o valor de extrusão não é reposto a zero. Assim, na linha 3, o E30 extrude 30 unidades de filamento utilizando o comando E30 comando.
Marlin M83
O comando M83 coloca a extrusora da impressora em modo relativo, o que significa que se o código G pede uma extrusão de filamento de 5mm, a impressora extrude 5mm cumulativamente, com base nos comandos anteriores.
O comando M83 não recebe nenhum parâmetro. Por exemplo, vamos executar o comando do último exemplo com M83 .
M83;
G1 X0,1 Y200,0 Z0,3 F1500,0 E15;
G1 X0,4 Y20 Z0,3 F1500,0 E30;
Após o E15 na linha 2, o valor E não é reposto a zero, mantém-se em 15 unidades, pelo que na linha 3, em vez de extrudir 30 unidades de filamento, extrudirá 30-15 = 15 unidades.
Marlin M84
O comando Marlin M84 desactiva um ou mais dos motores de passo e de extrusão. Pode configurá-lo para os desactivar imediatamente ou depois de a impressora ficar inactiva durante algum tempo.
Pode receber quatro parâmetros, nomeadamente
- [S< tempo(s) >]: Isto especifica a quantidade de tempo de inactividade antes de o comando entrar em acção e desactivar o motor. Por exemplo, M84 S10 desactiva todos os steppers depois de estar inactivo durante 10 segundos.
- [E], [X], [Y], [Z]: Pode utilizar uma ou mais destas opções para seleccionar um motor específico para o ralenti. Por exemplo, M84 X Y coloca os motores X e Y ao ralenti.
Nota: Se não utilizar quaisquer parâmetros com o comando, este coloca imediatamente todos os motores de passo ao ralenti.
Marlin M85
O comando M85 desliga a impressora e o firmware após um período de inactividade e recebe um parâmetro de tempo em segundos.
Se a impressora estiver inactiva sem movimento durante mais tempo do que o parâmetro de tempo definido, a impressora desliga-se. Por exemplo, se quiser desligar a impressora depois de estar inactiva durante 5 minutos, pode utilizar o comando:
M85 S300
Marlin M104
O comando M104 define uma temperatura alvo para o hotend da impressora e começa a aquecê-lo. Depois de definir a temperatura alvo, o comando não espera que o hotend atinja a temperatura.
Passa imediatamente a executar outros comandos G-Code enquanto o hotend aquece em segundo plano. Aceita cinco parâmetros, que são:
- [S< temperatura (°C )>]: Especifica a temperatura alvo para a extrusora em Celsius.
- [T< índice (0 >]: Se a impressora tiver mais do que um bocal, pode utilizar esta opção para escolher o bocal para o qual pretende definir a temperatura.
- [B < temperatura (°C )>]: Define a temperatura máxima que o hotend pode atingir. Pode ser utilizado com a função S para definir um intervalo de temperatura para a hotend.
Por exemplo, se pretender aquecer o segundo bico de uma máquina de extrusão dupla até 200°C, utilizará o comando M104 S200 T1 .
Marlin M105
O comando de código G M105 solicita o envio de um relatório de temperatura para o anfitrião. Foi referido que alguns anfitriões podem ocultar a resposta do comando M105, pelo que é preferível utilizar o comando M155.
Pode obter a temperatura da extrusora, a temperatura do leito e até a temperatura da câmara de construção em graus Celsius. É um comando autónomo, pelo que só precisa de enviar o comando M105 para a impressora.
O relatório deve incluir a temperatura real e a temperatura-objectivo dos aquecedores disponíveis.
- T - Temperatura da extrusora
- B - Temperatura da cama
- C - Temperatura da câmara
Marlin M106
O comando M106 liga a ventoinha da impressora e define a sua velocidade. Pode seleccionar a ventoinha e definir a sua velocidade utilizando os seus parâmetros.
Estes parâmetros incluem:
- [S< 0-255 >]: Este parâmetro define a velocidade do ventilador com valores que variam entre 0 (desligado) e 255 (velocidade máxima).
- [P< índice (0, 1, ...) >]: Determina a ventoinha que pretende ligar. Se for deixada em branco, a predefinição é 0 (ventoinha de arrefecimento de impressão). Pode definir esta opção para 0, 1 ou 2, dependendo do número de ventoinhas que tiver.
Por exemplo, se quiser definir a ventoinha de arrefecimento do bocal para 50% da velocidade, o comando é M106 S127. O S é 127 porque 50% de 255 é 127.
Também é possível utilizar o M106 sem quaisquer parâmetros para definir a velocidade da ventoinha de arrefecimento para 100%.
Nota: O comando de velocidade da ventoinha não entra em vigor até que os comandos de código G que o precedem estejam concluídos.
Marlin M107
O M107 desliga uma das ventoinhas da impressora de cada vez. É necessário um único parâmetro, P que é o índice da ventoinha que se pretende desligar.
Se o parâmetro não for fornecido, P tem como valor por defeito 0 e desliga a ventoinha de arrefecimento da impressão. Por exemplo, o comando M107 desliga a ventoinha de arrefecimento da impressão.
Marlin M109
Como o M104 comando, o M109 define uma temperatura alvo para o hotend e aquece-o. No entanto, ao contrário do comando M104 , aguarda que a hotend atinja a temperatura pretendida.
Depois de a hotend atingir a temperatura pretendida, o anfitrião continua a executar comandos G-Code, utilizando os mesmos parâmetros que o comando M104.
No entanto, acrescenta um extra, que é o seguinte
- [R< temperatura (°C )>]: Este parâmetro define a temperatura alvo para aquecer ou arrefecer a hotend. Ao contrário do parâmetro S aguarda até que a impressora aqueça ou arrefeça o bocal até essa temperatura.
O S O comando espera no aquecimento mas não no arrefecimento.
Por exemplo, se quiser que o bocal arrefeça até 120°C a partir de uma temperatura mais elevada, o comando é M109 R120.
Desactivação da Marlin M112
O M112 é um comando de código G de paragem de emergência. Quando o anfitrião envia o comando, pára imediatamente todos os aquecedores e motores da impressora.
Qualquer movimento ou impressão em curso é imediatamente interrompido. Após activar este comando, terá de reiniciar a impressora para retomar a impressão do seu modelo.
No firmware Marlin, o comando pode ficar preso na fila de espera e demorar algum tempo a ser executado. Para evitar isto, pode activar a opção ANALISADOR_DE_EMERGÊNCIA para executar o comando imediatamente após este ser enviado para a impressora.
Pode activar esta opção indo ao ficheiro de configuração avançada da impressora (Marlin/Configuration_adh.v) e, em seguida, remover algum texto do mesmo da seguinte forma
// Activa um analisador de comandos de emergência para interceptar certos comandos à medida que // entram no buffer de recepção série, para que não possam ser bloqueados. // Actualmente lida com M108, M112, M410 // Não funciona em placas que usem processadores AT90USB (USBCON)! //#define EMERGENCY_PARSER
Terá de remover o // antes da #define EMERGENCY_PARSER e recompilar as fontes.
Pode saber mais sobre a actualização do firmware do Marlin no vídeo abaixo.
Marlin M125
O comando M125 interrompe a impressão e estaciona a cabeça de impressão num local de estacionamento pré-configurado. Também guarda na memória a posição actual do bico antes de estacionar.
Normalmente, existe uma posição de estacionamento pré-configurada definida no firmware da impressora. Pode estacionar o bico nesta posição utilizando o botão M125 comando sozinho.
No entanto, pode alterá-lo utilizando um ou mais destes parâmetros.
- [L< comprimento >]: Isto retrai um determinado comprimento de filamento do bocal após o estacionamento
- [X< pos >], [Y< pos >], [Z < pos >]: É possível combinar um ou mais destes parâmetros de coordenadas para definir uma nova posição de estacionamento para a cabeça de impressão.
Se quiser estacionar o bocal na origem e retrair 9mm de filamento, o comando é M125 X0 Y0 Z0 L9.
Marlin M140
O comando M140 define uma temperatura-alvo para a cama e continua a executar imediatamente outras linhas de código G. Não espera que a cama atinja a temperatura-alvo antes de devolver o controlo ao anfitrião.
A cama continua a aquecer em segundo plano enquanto a impressora executa outras linhas de código G. É necessário um parâmetro, que é:
- [S< temperatura (°C )>]: Este parâmetro define a temperatura-alvo da cama em graus Celsius.
Por exemplo, para aquecer a cama até 80 ° C, o comando é M140 S80.
Marlin M190
O comando M190 define uma temperatura alvo para a cama e aguarda até que a cama a atinja. Não devolve o controlo ao anfitrião nem executa qualquer outro código G até que a cama atinja essa temperatura.
Nota: Se definir a temperatura alvo com o botão S só espera enquanto aquece a cama UP No entanto, se a cama tiver de arrefecer para atingir essa temperatura, o anfitrião não espera.
Para que o comando aguarde enquanto aquece e arrefece, é necessário definir a temperatura-alvo com o botão R Por exemplo, para arrefecer a cama até 50 ° C e esperar até atingir essa temperatura, o comando é M190 S50.
Marlin M400
O comando M400 pausa a fila de processamento do código G até que todos os movimentos actuais na memória intermédia estejam concluídos. A fila de processamento aguarda num ciclo até que todos os comandos estejam concluídos.
Depois de completar todos os movimentos, a impressora continua a executar o código G depois dessa linha. Por exemplo, veja o código G abaixo:
M400;
M81;
A linha 1 faz uma pausa no processamento até que todos os movimentos actuais estejam concluídos e, em seguida, a linha 2 desliga a impressora 3D utilizando o comando M81 desligar o G-Code.
Marlin M420
O comando M420 recupera ou define o estado de nivelamento da cama da impressora 3D. Este comando só funciona com impressoras que têm sistemas de nivelamento automático da cama.
Após o nivelamento, estas impressoras criam uma malha a partir da mesa de impressão e guardam-na na EEPROM. O comando M420 pode ajudar a recuperar estes dados de malha a partir da EEPROM.
Também pode activar ou desactivar a impressora para que esta não utilize estes dados de malha para a impressão. Pode utilizar vários parâmetros, que incluem
- [S< 0 1 >]: Activa (1) ou desactiva (0) o nivelamento da cama. A impressora deve ter uma malha válida na EEPROM para activar o nivelamento da cama.
- [l< índice >]: Especifica a malha de nivelamento do leito que pretende utilizar, caso existam vários ficheiros.
- [V]: Imprime os dados da malha se estiver definido para 1. O valor predefinido é 0
- [T]: Define o formato em que os dados da malha recuperada serão impressos. 0 imprime-os em formato legível por humanos, 1 imprime-os em CSV e 4 imprime-os em formato compacto.
- Z< linear >]: Define uma altura de esbatimento Z para a impressora. Após esta altura, a impressora deixa de utilizar a compensação de malha.
Por exemplo, digamos que pretende imprimir os dados da segunda malha na EEPROM em formato CSV. O comando correcto a utilizar é: M420 V1 I1 T1
Marlin M420 S1
O M420 S1 é um subconjunto do M420 Permite nivelar a cama da impressora utilizando uma malha válida que recupera da EEPROM.
Se não houver uma malha válida na EEPROM, não fará nada. Normalmente, é encontrada após o G28 comando de regresso a casa.
Marlin G0
O Marlin G0 é o comando de deslocação rápida, que desloca o bico de uma posição para outra nas placas de construção através da distância mais curta possível (linha recta).
Não deita filamento enquanto se desloca, o que lhe permite deslocar-se mais rapidamente do que o comando G1. Eis os parâmetros que utiliza:
- [X< pos >], [Y < pos >], [Z< pos >]: Estes parâmetros definem a nova posição para onde se deslocar nos eixos X, Y e Z.
- [F< mm/s >]: A impressora utilizará automaticamente a velocidade de alimentação do último comando G1 se não for indicado.
Assim, se pretender deslocar a cabeça de impressão rapidamente para a origem a 100 mm/s, o comando é G0 X0 Y0 Z0 F100.
Marlin G1
O comando G1 move a impressora de um ponto para outro na placa de construção num caminho linear. É conhecido como o comando de movimento linear porque extrude filamento enquanto se move entre pontos.
Este facto distingue-o do movimento rápido ( G0 ), que não deposita o filamento enquanto se desloca, e que utiliza vários parâmetros, nomeadamente
- [X< pos >], [Y < pos >], [Z< pos >]: Estes parâmetros definem a nova posição para onde se deslocar nos eixos X, Y e Z.
- [E< pos >]: Isto define a quantidade de filamento a extrudir enquanto se desloca para o novo ponto.
- [F< mm/s >]: A impressora utilizará automaticamente a velocidade de alimentação do último comando G1 se não for indicado.
Por exemplo, para colocar o filamento numa linha recta entre dois pontos a uma velocidade de 50 mm/s, o comando correcto é G1 X32 Y04 F50 E10.
Marlin G4
O comando G4 coloca a máquina em pausa durante um período de tempo definido. A fila de comandos está em pausa durante este tempo, pelo que não executa qualquer novo comando de Código G.
Durante a pausa, a máquina mantém o seu estado: todos os aquecedores mantêm a sua temperatura actual e os motores continuam ligados.
É preciso dois parâmetros, que são:
- [P< tempo(ms) >]: Especifica o tempo de pausa em milissegundos
- [S< tempo(s) >]: Define o tempo de pausa em segundos. Se ambos os parâmetros estiverem definidos, o S tem precedência.
Para colocar a máquina em pausa durante 10 segundos, pode utilizar o comando G4 S10.
Marlin G12
O comando G12 activa o procedimento de limpeza do bico da impressora. Primeiro, move o bico para um local predefinido na impressora onde está montada uma escova.
Em seguida, move a cabeça de impressão de forma agressiva através da escova para limpar qualquer filamento preso na mesma. Eis alguns dos parâmetros que pode assumir.
- [P]: Este parâmetro permite-lhe escolher o padrão de limpeza que pretende para o bocal. 0 é uma linha recta para trás e para a frente, 1 é um padrão em ziguezague e 2 é um padrão circular.
- [S< contagem >]: O número de vezes que pretende que o padrão de limpeza se repita.
- [R< raio >]: O raio do círculo de limpeza se escolher o padrão 2.
- [T< contagem >]: Especifica o número de triângulos no padrão em ziguezague.
Se quiser limpar o bocal da escova num padrão de vaivém, o comando correcto é G12 P0.
O Cura fornece uma forma de utilizar este comando nas suas definições experimentais. Pode ler mais sobre o comando wipe nozzle neste artigo que escrevi sobre Como utilizar definições experimentais no Cura.
Marlin G20
O comando G20 define o firmware da impressora para interpretar todas as unidades como polegadas. Assim, todos os valores de extrusão, movimento, impressão e mesmo de aceleração serão interpretados em polegadas.
Assim, a impressora terá polegadas para o movimento linear, polegadas/segundo para a velocidade e polegadas/segundo2 para a aceleração.
Marlin G21
O comando G21 define o firmware da impressora para interpretar todas as unidades como milímetros. Assim, os movimentos lineares, as taxas e a aceleração serão em mm, mm/s e mm/s2, respectivamente.
Veja também: Como imprimir em 3D uma cúpula ou esfera - sem suportesMarlin G27
O comando G27 estaciona o bico numa posição pré-definida nas placas de montagem, espera até que todos os movimentos da fila estejam concluídos e estaciona o bico.
Isto é muito útil quando se pretende fazer uma pausa na impressão para efectuar ajustes na impressão. Pode estacionar o bocal para evitar pairar sobre a impressão e derretê-la.
É necessário um parâmetro, que é:
- [P]: Se escolher 0, o firmware elevará o bocal até à localização do parque Z apenas se a altura inicial do bocal for inferior à localização do parque Z.
A escolha 1 estaciona o bico na localização do parque Z, independentemente da sua altura inicial. A escolha 2 eleva o bico na quantidade do parque Z, mas limita a sua altura Z a um valor inferior ao Z máx.
Se utilizar o G27 sem quaisquer parâmetros, a predefinição é P0.
Marlin G28
O comando G28 faz com que a impressora estabeleça uma localização conhecida na origem. A localização é o processo pelo qual a impressora encontra a origem (coordenada [0,0,0]) da impressora.
Para o efeito, desloca cada um dos eixos da impressora até que estes atinjam os respectivos interruptores de fim de curso. O local onde cada eixo acciona o seu interruptor de fim de curso é a sua origem.
Eis alguns dos seus parâmetros:
- [X], [Y], [Z]: Pode adicionar qualquer um destes parâmetros para restringir a localização a estes eixos. Por exemplo, G28 X Y só tem os eixos X e Y.
- [L]: Restabelece o estado de nivelamento da cama após a deslocação.
- [0]: Este parâmetro ignora o retorno à posição inicial se a posição da cabeça de impressão já for fiável.
Por exemplo, se pretender alojar apenas os eixos X e Z, o comando correcto é G28 X Z. Para alojar todos os eixos, pode utilizar a função G28 comando sozinho.
Marlin G29
O G29 é o comando de nivelamento automático da cama, que acciona o sistema de nivelamento automático ou semi-automático da cama instalado na sua máquina para nivelar a cama.
Dependendo da marca da impressora, pode ter um de cinco sistemas complexos de nivelamento da cama no seu firmware. Estes incluem
- Nivelamento da cama de rede
- Nivelamento automático da cama
- Nivelamento unificado da cama
- Nivelamento automático da cama (linear)
- Nivelamento automático da cama (3 pontos)
Cada um tem parâmetros específicos para funcionar com o hardware da impressora.
Marlin G30
O comando G30 sonda a placa de construção num ponto específico com a sonda de um sistema de nivelamento automático da cama, para determinar a altura Z desse ponto (a distância do bico à cama).
Depois de obter a altura, define o bocal para a distância correcta acima da placa de construção. É necessário alguns parâmetros, que incluem:
- [C]: A definição deste parâmetro como um permite a compensação da temperatura, uma vez que a maioria dos materiais se expande quando aquecidos.
- [X< pos >], [Y< pos >]: Estes parâmetros indicam as coordenadas onde se pretende efectuar a sondagem.
Para sondar o leito na posição actual do bocal, pode utilizar o comando sem quaisquer parâmetros. Para o sondar numa localização específica como [100, 67], o comando correcto é G30 X100 Y67.
Marlin M76
O comando M76 coloca em pausa o temporizador da tarefa de impressão.
Marlin G90
O comando G90 coloca a impressora no modo de posicionamento absoluto, o que significa que todas as coordenadas no código G são interpretadas como posições no plano XYZ relativas à origem da impressora.
Também define a extrusora para o modo absoluto, a menos que o comando M83 o substitua. Não aceita quaisquer parâmetros.
Marlin G92/G92 E0
O comando G92 define a posição actual do bocal para as coordenadas especificadas. Pode utilizá-lo para excluir determinadas áreas da sua mesa de impressão e também definir desvios para a sua impressora.
O comando G92 recebe vários parâmetros de coordenadas, nomeadamente
- [ X< pos >], [Y< pos >], [Z< pos >]: Estes parâmetros recebem as coordenadas da nova posição da cabeça de impressão.
- [E< pos >]: Este parâmetro recebe um valor e define-o como a posição da extrusora. Pode utilizar o comando E0 para repor a origem da extrusora se esta estiver no modo relativo ou absoluto.
Por exemplo, digamos que pretende que o centro da sua cama seja a nova origem. Primeiro, certifique-se de que o seu bocal está no meio da cama.
Em seguida, enviar o G92 X0 Y0 para a sua impressora.
Nota: O comando G92 mantém os limites físicos definidos pelos limites finais. Não pode utilizar G92 para se deslocar para fora do interruptor de limite X ou para baixo da mesa de impressão.
Os códigos G acima representam uma parte pequena mas essencial da biblioteca de códigos G que todos os entusiastas da impressão 3D devem conhecer.
À medida que imprime mais modelos, pode deparar-se com mais comandos de código G que pode adicionar à sua biblioteca.
Boa sorte e boa impressão!