O que é G-Code?
RS-274, mais comumente conhecido como G-Code, é uma linguagem de programação para CNC (Computer Numerical Control) usada na fabricação assistida por computador. A essência básica da linguagem é que ela diz a uma ferramenta/dispositivo para “ir lá e fazer isso”.
O G-Code pode ser usado com muitos tipos diferentes de máquinas, desde cortadoras a laser, tornos, fresadoras e melhores impressoras 3D. Para impressoras 3D, o código G é normalmente criado quando “fatiamos” um objeto para impressão. Fatiar converte um objeto em uma série de camadas, que usam comandos G-Code para mover a ferramenta para imitar o contorno e a estrutura interna do objeto. Fatiadores comuns, como Cura e PrusaSlicer farão todo o trabalho duro para nós, mas se escrevermos nosso próprio G-Code, poderíamos criar scripts para ajustar e ajustar nossa impressora 3D para o melhor serviço possível.
Neste tutorial aprenderemos como escrever o G-Code, especificamente usando um Creality Ender 2 Pro como nossa máquina de teste. Escreveremos um script que será útil ao nivelar manualmente a mesa de impressão. O código criado para este tutorial é feito sob medida para a Ender 2 Pro e precisará ser modificado para sua impressora 3D.
Escrevendo um script de código G
O G-Code não requer um editor de texto sofisticado ou IDE, tudo o que precisamos é de um editor de texto simples, como o Notepad, ou nossa preferência, o Notepad++.
Cada linha do G-Code é uma instrução para uma parte do dispositivo e os comandos são escritos usando a referência de comando, seguida pelos parâmetros de comando (se houver). Para fazer um comentário, precisamos prefixar o comentário com um ponto e vírgula.
1. Abra seu editor de texto e crie uma linha de comentário para explicar a finalidade do código.
; Ender 2 Pro Example Control G-Code
2. Use o comando G90 para definir o posicionamento absoluto. Isso significa que cada movimento é calculado a partir do mesmo ponto inicial.
G90; Absolute positioning
3. Use o comando M117 para mostrar uma mensagem na tela LCD da Ender 2 Pro. A string (mensagem) vem diretamente após a emissão do comando e não requer nenhum parâmetro.
M117 Tom's Hardware; Prints the string to the LCD screen
4. Use o comando G4 (dwell) para pausar o script por três segundos.
G4 P3000; Wait for 3 seconds
5. Use os comandos M117 para exibir uma mensagem e G4 para pausar o script por tempo suficiente para que o usuário o leia.
M117 Heating bed; Prints the string to the LCD screen
G4 P1000; Wait for 1 second
6. Use o comando M190 para aquecer a base de impressão a 60 graus Celsius (S60). Este comando interromperá a execução do script enquanto a cama atinge a temperatura necessária.
M190 S60; Set the bed temperature to 60C and wait until it hits that temperature
7. Posicione todos os eixos da impressora com o comando G28.
G28; Home all axis
8. Defina a velocidade de movimento para 1500 mm / minuto. Isso garantirá que o leito e a extremidade quente se movam na mesma velocidade. Podemos ir mais alto, 3000mm/minuto é possível, mas comece devagar; assim você tem tempo para reagir aos problemas.
G1 F1500; Set Feedrate (tool movement) to 1500 mm/min
9. Levante o eixo Z 8 mm usando o comando G1 para que o bico fique longe da base de impressão. Não queremos bater o bico na base de impressão, pois isso causaria danos ao bico e à base.
G1 Z8; Lift Z Axis 8mm
10. Use o comando G1 para mover o bico para uma posição definida X e Y. Neste caso, a posição está diretamente acima da roda de ajuste frontal esquerda da cama.
G1 X28 Y35; Move to position 1
11. Imprima uma instrução para o usuário usando M117.
M117 Level the bed #1
12. Aguarde a entrada do usuário usando M0. Observe que este comando não funciona em todas as impressoras 3D. Se não funcionar para você, substitua-o por G4 e espere muito.
M0; Stop, wait for user input
<<If your 3D printer does not support M), use this for a 20 second wait>>
G4 P20000
13. Repita o mesmo processo de levantar o bico, movendo-se para a próxima posição, instrua o usuário e aguarde a entrada. Lembre-se de trocar M0 por G4 caso sua impressora não suporte. Isso moverá o bocal para que fique acima da roda frontal direita de ajuste do leito.
G1 Z8 ; Lift Z Axis 8mm
G1 X140 Y35; Move to position 2
M117 Level the bed #2
M0; Stop, wait for user input
14. Outra repetição, desta vez para a posição 3, a roda de ajuste da cama traseira direita.
G1 Z8 ; Lift Z axis
G1 X140 Y130; Move to position 3
M117 Level the bed #3
M0; Stop, wait for user input
15. Outra repetição, desta vez para a posição 4, a roda de ajuste da cama traseira esquerda.
G1 Z8; Lift Z axis
G1 X28 Y130; Move to position 4
M117 Level the bed #4
M0; Stop, wait for user input
16. Use o comando G28 para colocar todos os eixos na posição inicial e, em seguida, exiba uma mensagem de conclusão (M117) na tela LCD.
G28; Home all axis
M117 Complete; Bed leveling is completed
17. Salve o código como Ender2-Pro-Test.gcode em um cartão micro SD.
18. Remova o cartão e insira-o na impressora.
19. Pressione o botão de controle para abrir o menu.
20. Role para baixo até Anexar cartão e pressione o dial. Isso preparará o cartão para uso.
21. Role para baixo até Imprimir do cartão e pressione o dial.
22. Selecione Ender2-Pro-Test.gcode e pressione o dial.
23. Selecione Imprimir e pressione o dial para iniciar. A impressora agora seguirá as etapas do arquivo G-Code.
O código passará por cada etapa do processo, imitando um processo de nivelamento de leito, mas com o bocal afastado do leito de impressão.
Uma vez que tenhamos o processo aperfeiçoado, podemos abaixar o bocal e utilizá-lo para realizar o nivelamento do leito de forma semi-autônoma.
Listagem de código completa
; Ender 2 Pro Example Control G-Code
G90; Absolute positioning
M117 Tom's Hardware; Prints the string to the LCD screen
G4 P3000; Wait for 3 seconds
M117 Heating bed; Prints the string to the LCD screen
G4 P1000; Wait for 1 second
M190 S60; Set the bed temperature to 60C and wait until it hits that temperature
G28; Home all axis
G1 F1500; Set Feedrate (tool movement) to 1500 mm/min
G1 Z8; Lift Z Axis 8mm
G1 X28 Y35; Move to position 1
M117 Level the bed #1
M0; Stop, wait for user input
G1 Z8 ; Lift Z Axis 8mm
G1 X140 Y35; Move to position 2
M117 Level the bed #2
M0; Stop, wait for user input
G1 Z8 ; Lift Z axis
G1 X140 Y130; Move to position 3
M117 Level the bed #3
M0; Stop, wait for user input
G1 Z8; Lift Z axis
G1 X28 Y130; Move to position 4
M117 Level the bed #4
M0; Stop, wait for user input
G28; Home all axis
M117 Complete; Bed leveling is completed
Adicionando G-Code através de um Slicer
Adicionar G-Code personalizado ao seu fatiador fornece controle sobre todas as facetas do seu processo de impressão. Podemos adicionar uma limpeza de bocal extra antes de uma impressão, pré-aquecer a cama a uma temperatura personalizada e ajustar muitas outras configurações para a impressão perfeita. Aqui está como editar o G-Code em dois dos fatiadores mais comuns, Prusa Slicer e Cura.
Adicionando G-Code via Prusa Slicer
1. Clique em Configurações da impressora e, em seguida, clique em Especialista. Isso revelará todos os recursos do Prusa Slicer, então tome cuidado.
2. Clique em Código G personalizado.
3. O G-Code personalizado pode ser inserido para o início e o fim de uma impressão. Isso afetará todas as impressões fatiadas usando o Prusa Slicer.
4. Clique em Plater para voltar a preparar o objeto para impressão.
Adicionando G-Code via Cura Slicer
1. Abra o Cura e clique em Configurações >> Impressora >> Gerenciar impressoras.
2. Clique em Configurações da máquina.
3. O código G inicial e final da impressora agora pode ser editado diretamente.
4. Clique em Extrusora 1 para editar o G-Code para a extrusora.
5. Feche a janela para salvar e sair da caixa de diálogo Configurações da máquina e, em seguida, feche a caixa de diálogo Preferências. Você retornará à tela Preparar, pronto para fatiar uma nova impressão.
Comandos de código G comuns
Comando | Descrição | Exemplo |
---|---|---|
G1 | Um movimento linear entre dois pontos na superfície de trabalho. | G1Z8; Levante o eixo Z 8mm |
Defina a velocidade de avanço (velocidade) na qual os motores se movem em mm/minuto. | G1 F1500; Defina a velocidade para 1500 mm por minuto | |
Faça a extrusão de 25 mm de filamento em uma linha de 50 mm. (Útil para limpar o bocal antes de uma impressão) | G1 X50 E25 | |
G4 | Habitar. Adicione uma pausa, em milissegundos, à sequência. | G4 P1000 |
G20 | Defina a unidade de medida para polegadas | G20 |
G21 | Defina a unidade de medida para milímetros | G21 |
G28 | Home todos os eixos | G28 |
G90 | Posicionamento absoluto. Todas as coordenadas são interpretadas como espaço lógico de coordenadas. | G90 |
M0 | Aguarde a entrada do usuário, normalmente um pressionamento de botão. Nota: Este comando não funciona para todas as impressoras 3D! | M0 |
M18 | Desative os motores de passo. | M18; Todos os passos |
M18ZE; Desabilite o passo do eixo Z e o passo da extrusora. | ||
M117 | Exibir uma mensagem no visor da impressora 3D. Mensagens são strings que podem conter letras, números e alguma pontuação. | M117 Olá, Mundo! |
M190 | Defina a temperatura da cama, em graus Celsius. | M190 S60 |
M410 | Parada rápida. Uma parada de emergência de todos os motores de passo. Observação: Os motores de passo ficarão fora de posição após este comando e todos os eixos precisarão ser retornados. | M410 |
M500 | Salve todas as configurações na EEPROM. Use com cuidado, pois isso substituirá a configuração atual. | M500 |
M701 | Carregue o filamento girando o motor de passo da extrusora por um período definido. | M701 |
M702 | Descarregue o filamento, usado na troca dos rolos de filamento. | M702 |