Transforme a tua impressora 3D num sistema de funcionamento automático - com auto-ejeção, filas de impressão e loops infinitos!

Transforme a tua impressora 3D num sistema de funcionamento automático - com auto-ejeção, filas de impressão e loops infinitos!

Vamos começar! Se tiveres uma impressora com Klipper, isto é super fácil – estas funções já vêm integradas no firmware Klipper. No entanto, muitas vezes passam despercebidas.

Para este guia, vamos usar o Orca Slicer, mas tudo funciona também com qualquer outro slicer à tua escolha.


‼️ AVISO ‼️ AVISO ‼️ AVISO ‼️ AVISO ‼️ AVISO ‼️

As instruções seguintes referem-se à edição de G-code e firmware. Se cometeres erros aqui, podes danificar a tua impressora. A partir daqui, assumes total responsabilidade!

‼️ AVISO ‼️ AVISO ‼️ AVISO ‼️ AVISO ‼️ AVISO ‼️


Configurar uma fila de impressão

Abre o Orca Slicer e vai às definições do dispositivo. Depois, na barra lateral esquerda, acede às opções da máquina (em Mainsail) ou à configuração (em Fluidd). Aí, abre o ficheiro moonraker.conf e adiciona o seguinte:

[job_queue]
load_on_startup: True
automatic_transition: True
job_transition_delay: 10
job_transition_gcode: CLEAR_BED

Certifica-te também de que o seguinte está incluído:

[file_manager]
queue_gcode_uploads: True
enable_object_processing: False

Guarda o ficheiro e reinicia o sistema.

Com isto, a fila de impressão fica configurada – um trabalho inicia automaticamente após o anterior. É isso que fazem as duas primeiras linhas. O atraso na transição garante uma pausa de 10 segundos entre os trabalhos – podes ajustar esse valor como quiseres. O chamado "transition G-code" é o código executado entre dois trabalhos. Aqui defines que a impressora ejeta automaticamente a peça anterior antes de iniciar a seguinte.

Volta agora ao painel da máquina e abre o ficheiro gcode_macro.cfg. Aí, adiciona o seguinte:

[gcode_macro CLEAR_BED]

G-code:

M190 S30 #esperar que a cama atinja 30 °C
G91 #posicionamento relativo
G1 Z10 #subir o bico 10 mm
G90 #posicionamento absoluto
G1 X110 Y218 F3000 #mover o cabeçote para o meio e para trás
G1 Z1 #descer o cabeçote
G90 #posicionamento absoluto
G1 X110 Y1 Z1 F2400 #empurrar a peça para fora

Este macro limpa a superfície de impressão entre dois trabalhos. O primeiro comando espera que a cama arrefeça até 30 °C. Os 30 °C funcionaram bem nos nossos testes – utilizámos uma base PEI texturizada da 3DJake. Se usares outra base ou outro tipo de filamento, poderás ter de experimentar. Para os testes, usámos exclusivamente o ecoPLA da 3DJake.

O comando G91 ativa o posicionamento relativo – ou seja, os movimentos seguintes são feitos em relação à posição atual do bico. Com G1, o cabeçote sobe e afasta-se da peça. Depois, G90 retoma o posicionamento absoluto – o cabeçote move-se para coordenadas fixas. O comando G1 seguinte desloca-o para o meio da cama e para trás, a uma velocidade de 3000 mm/min. Em seguida, desce para 1 mm acima da base, e finalmente o comando final empurra o modelo impresso para fora.

E pronto! Só tens de preparar o ficheiro e iniciar a impressão – e de seguida enviar o próximo. Vais ver na interface da impressora que a fila foi iniciada. Assim que o primeiro trabalho terminar, o macro CLEAR_BED será ativado. A impressora espera que a cama arrefeça até 30 °C e em seguida ejeta o modelo. Tudo automaticamente!


Repetir uma impressão em ciclo infinito

Ok, já tratámos da fila. Mas e se quiseres imprimir o mesmo ficheiro várias vezes seguidas? Para isso existe o comando SD_LOOP.

Abre o ficheiro printer.cfg e adiciona a secção [sdcard_loop] – a localização exata não importa. Com isto, ativas a possibilidade de executar impressões em ciclo. Agora só precisas de um comando G-code apropriado para o iniciar. A melhor forma é fazeres isso diretamente no slicer – recomendamos criar um perfil de impressão separado para alternares entre impressão normal e impressão em ciclo.

No teu perfil de impressora, vai aos G-codes da máquina e no G-code de início adiciona:

SDCARD_LOOP_BEGIN COUNT=5

Neste caso, o ficheiro será impresso 5 vezes. Podes mudar o número – e se quiseres repetir indefinidamente, usa COUNT=0.

Ainda que não estejas a usar uma fila, podes continuar a usar o macro CLEAR_BED. Tens duas opções: copiar o conteúdo do macro diretamente para o G-code de fim ou simplesmente escrever o comando CLEAR_BED (desde que tenhas o macro criado no ficheiro macro.cfg).

É essencial adicionares no fim do G-code final:

SDCARD_LOOP_END

Este é o sinal para a impressora de que o ciclo termina ali. Tudo o que estiver entre SDCARD_LOOP_BEGIN COUNT=5 e SDCARD_LOOP_END será repetido o número de vezes indicado.

Agora é só guardar – e iniciar a impressão. O ciclo começa automaticamente!

Quando a impressão terminar, a barra de progresso fica nos 99 % até que a temperatura da cama desça até aos 30 °C. Só depois o modelo será removido – e o ciclo seguinte começa.

Se quiseres parar o ciclo após o trabalho atual, basta digitar SDCARD_LOOP_DESIST na consola. O próximo ciclo já não será iniciado.


Impressoras Marlin

E se não tiveres uma impressora com Klipper? Sem problema – podes fazer algo muito semelhante ao que acabámos de mostrar. Só precisas de ajustar o G-code final de forma a que a tua impressora ejete automaticamente a peça. A ideia de base é a mesma, mas os valores podem variar consoante o modelo da impressora.

Vamos rever o exemplo:

M190 S30 #esperar que a cama atinja 30 °C
G91 #posicionamento relativo
G1 Z10 #subir o bico 10 mm
G90 #posicionamento absoluto
G1 X110 Y218 F3000 #mover o cabeçote para o meio e para trás
G1 Z1 #descer o cabeçote
G90 #posicionamento absoluto
G1 X110 Y1 Z1 F2400 #empurrar a peça para fora

Podes utilizar estes comandos em praticamente qualquer impressora – mas atenção: os comandos G1 das linhas 5 e 8 são pensados para a impressora K1 ou outras CoreXY com o mesmo volume de impressão.

Deves saber qual o tamanho da área de impressão da tua impressora. Se, por exemplo, o teu leito tiver 250 mm de largura, a linha 5 deve ser ajustada para:

G1 X125 Y248 F3000 #mover o cabeçote para o meio e para trás

Assim, o cabeçote desloca-se até ao centro do eixo X (125 mm desde o bordo) e até quase ao fundo da cama no eixo Y (2 mm antes do fim).

Depois, a linha 8 deverá ser:

G1 X125 Y1 Z1 F2400 #empurrar a peça para fora

O cabeçote mantém-se centrado no eixo X, move-se até à frente no eixo Y, ficando a apenas 1 mm da borda, e empurra o modelo para fora.

Importante: este método pressupõe o uso do cabeçote para empurrar a peça. Mas não é obrigatório – por vezes, pode ser melhor utilizar o portal inteiro (gantry) para fazer isso.

No caso da K1, isso é mais difícil, pois as correias ficam no caminho. Por isso, recomenda-se empurrar com o cabeçote para evitar que o portal sofra forças indesejadas.

Se preferires empurrar com o gantry, basta mover o cabeçote para o lado antes. Para uma cama de 250 mm, as linhas 5 e 8 poderiam ser assim:

Linha 5: G1 X1 Y248 F3000 #mover o cabeçote para trás, encostado à lateral
Linha 8: G1 X1 Y1 Z1 F2400 #empurrar a peça para a frente

E quanto ao loop em impressoras Marlin? Se tens uma impressora com firmware Marlin, podes fazer praticamente o mesmo que em Klipper – usando o comando M808. O princípio é o mesmo: defines o loop através do G-code de início e fim no slicer. Podes encontrar mais informações e exemplos no site oficial da Marlin – vale a pena espreitar se quiseres aprofundar.


Looping para impressoras que não usam Klipper

Se não usares Klipper, ainda assim podes configurar um ciclo de impressão – basta encadear vários ficheiros G-code e imprimi-los a partir do cartão SD. Alternativamente, podes exportar tudo como um ficheiro .3mf – que, no fundo, é apenas uma pasta comprimida.

Com o Orca Slicer, faz assim:

Faz o slice do modelo como sempre e exporta-o como “Plate Sliced File”. Abre esse ficheiro com um descompactador, como o WinRAR – dentro da pasta metadata encontrarás o ficheiro G-code. Abre-o num editor de texto. Agora podes copiar o conteúdo todo. Se quiseres imprimir o mesmo ficheiro várias vezes, basta colar o mesmo G-code várias vezes seguidas. Para uma fila com modelos diferentes, também precisas de fazer o slice dos outros, exportar os seus G-codes e adicioná-los após o primeiro.

Guarda o ficheiro editado e fecha-o. O WinRAR perguntará se queres atualizar o conteúdo do arquivo – clica em “Sim” e as tuas alterações serão aplicadas. Abre novamente o ficheiro .3mf no Orca Slicer. Na pré-visualização verás que os modelos estão sobrepostos e o tempo de impressão foi ajustado – é exatamente isso que queremos!

Agora só tens de enviar o ficheiro para a impressora – e ela vai imprimir e ejetar o modelo tantas vezes quantas inseriste no G-code.

► Se estiveres a fazer isto com uma impressora Bambu Lab – das séries A, P ou X – o processo é essencialmente o mesmo. Mas: recomendamos vivamente que vejas os vídeos do Factorian Design. Ele explica tudo em grande detalhe e fez um excelente trabalho a ajustar o G-code para os modelos Bambu. Vale mesmo a pena se quiseres fazer tudo da forma mais segura e eficiente possível!



Algumas coisas que deves ter em conta:

Editar o End-G-Code

Podes receber uma mensagem de erro a indicar que a impressora tem de fazer home a todos os eixos antes de o macro CLEAR_BED ser executado. No nosso caso, isso aconteceu porque o macro END_PRINT no G-code final incluía um comando M84. Isso também pode acontecer contigo – muitos perfis usam macros no End-G-Code em vez de escrever todas as linhas de G-code diretamente.

O que fazer? Vai ao ficheiro macro.cfg e edita diretamente o macro correspondente (por exemplo, END_PRINT). Se todo o G-code estiver diretamente no campo de End-G-Code do slicer, podes editá-lo ali mesmo.

► Substituir completamente o End-G-Code

Em algumas impressoras – especialmente aquelas onde não tens acesso direto aos ficheiros de macro – pode ser necessário substituir completamente o End-G-Code. Nesse caso, um código simples como este já costuma ser suficiente:

M104 S0 ; desligar o aquecedor do extrusor
M140 S0 ; desligar o aquecimento da cama (se existir)
G91 ; posicionamento relativo
G1 E-1 F300 ; retrair ligeiramente o filamento antes de levantar o bico
G1 Z+0.5 E-5 X-20 Y-20 F9000 ; subir ligeiramente o eixo Z e retrair mais
G28 X0 Y0 ; mover X/Y para a origem
M84 ; desligar os motores
G90 ; posicionamento absoluto

Se a tua impressora tiver um sistema de limpeza de bico (nozzle wiper), podes adicionar alguns comandos G1 para passar a extrusora por essa zona após a impressão.

► Ter em conta o espaço necessário

Para o cabeçote poder empurrar o modelo para fora da cama, precisa de espaço para se posicionar corretamente – ou seja, precisa de liberdade de movimento suficiente para se alinhar com o modelo antes de o empurrar para a frente.

Nos nossos testes, posicionámos o cabeçote na parte traseira da cama. No caso da K1, isso significa concretamente que os 55 mm traseiros do volume de impressão não são utilizáveis devido ao tamanho do cabeçote. Mede bem o espaço livre disponível antes de testares esta configuração – e garante que o teu modelo não ocupa essa zona de risco.

Outro aspeto importante: o próprio tamanho do modelo. Modelos muito pequenos ou baixos com grande área de contacto tendem a aderir demasiado – o que dificulta a ejeção. Modelos muito grandes também podem aderir em excesso e ser difíceis de remover. Nesses casos, usar o gantry (estrutura móvel superior) para empurrar pode ser mais eficaz do que o cabeçote sozinho, por aplicar mais força.

► Aderência à cama

Aderência fraca ou excessiva podem ser problemáticas: se for demasiado fraca, torna-se difícil realizar várias impressões seguidas no mesmo ponto – o modelo pode deslocar-se ou soltar-se no segundo ciclo. Se for demasiado forte, o cabeçote pode não conseguir remover a peça – o que pode até danificar a impressora.

Qual a solução? Um bom leito de impressão (por exemplo, uma placa PEI de alta qualidade) e um Z-offset bem calibrado são essenciais para que este método de ejeção automática funcione com fiabilidade.

► Filamentos adequados

Filamentos que exigem câmara fechada não são adequados para este método – porque a porta da impressora tem de permanecer aberta para que o modelo possa ser ejetado. Isso exclui materiais como ABS, Nylon, ASA e similares. Mesmo PETG pode ser problemático, pois tende a aderir com demasiada força à cama.

► Linhas de purga (purge lines)

Se a tua impressora desenha uma purge line antes de cada trabalho, deves substituí-la por outra abordagem. No nosso K1, por exemplo, usávamos uma linha de purga KAMP. Quando essa linha é impressa em cada ciclo sem ser removida, pode criar problemas.

No entanto, é fundamental que a impressora extruda algum material antes de começar a imprimir, para preparar a extrusora. A nossa sugestão: substitui a linha de purga por um pequeno brim (ex.: 2 mm) – ele será ejetado juntamente com o modelo.

► Hotend quente = risco de oozing

Certifica-te de que o hotend se desliga enquanto a cama arrefece – caso contrário, o filamento pode continuar a escorrer (oozing), estragando a primeira camada do próximo trabalho. Isso pode acontecer se tiveres removido o macro END_PRINT, pois nesse caso o comando que desliga o hotend pode já não ser executado automaticamente.

Solução: adiciona o comando M104 S0 ao teu G-code final – ele desliga o bloco de aquecimento. Importante: esse comando deve estar antes do SDCARD_LOOP_END, caso contrário, não será executado corretamente.

► Tira partido da gravidade!

Se o modelo não cair completamente da cama ao ser ejetado, podes aproveitar a gravidade a teu favor! Inclinar ligeiramente a impressora – como mostrado no vídeo da Factorian Design – pode aumentar bastante a fiabilidade da ejeção automática.

Mas atenção: se fores inclinar a impressora, garante que está bem apoiada e segura – e não te esqueças de fazer uma nova calibração do input shaping depois, para garantir qualidade de impressão.

► Rolagem do modelo – da forma certa!

Se usares uma impressora do tipo bedslinger, o modelo ejetado pode ficar preso entre a cama e a estrutura da impressora. Uma solução simples: coloca uma folha de papel ou cartão firme debaixo da cama – assim o modelo pode rolar para fora livremente sem ficar preso.

► Pusher Plate – o reforço de ejeção

Se quiseres aumentar ainda mais a fiabilidade da ejeção, podes imprimir uma pequena pusher plate – uma peça que se prende ao cabeçote e ajuda a empurrar o modelo. Mas atenção: certifica-te de que essa peça não ultrapassa os limites de movimento da impressora! Se colidir com alguma parte da estrutura, podes provocar um acidente ou danificar o equipamento.