Rodape tambem leva o credito do icone (licenca free do Flaticon). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fila de impressão (Bambu Lab A1)
Fatia no Bambu Studio, joga o .gcode.3mf aqui, clica "Imprimir" quando quiser.
Rodar
pip install -r requirements.txt
python run.py
Abre http://127.0.0.1:8000 (ou http://IP_DO_PC:8000 de outro aparelho / Tailscale).
Docker (Proxmox etc.): ver DEPLOY.md.
Sem config.json com ip = impressora fake (simula 20 s). Serve pra testar a fila.
Exportar do Bambu Studio
Fatiar → seta ao lado de "Fatiar placa" → Exportar arquivo da placa fatiada (.gcode.3mf).
.3mf de projeto sem fatiar não serve.
Pasta monitorada
Salva o export em D:\00Downloads\3D\fila → entra na fila sozinho (checa a cada 2 s,
espera o arquivo parar de crescer) e sai da pasta (vai pra data/files).
Outra pasta: variável WATCH_DIR.
Impressora real (LAN + Desenvolvedor)
A1 precisa estar em modo LAN + modo Desenvolvedor (firmware novo recusa comandos
de terceiros pela nuvem). config.json na raiz (modelo em config.example.json, fora do git):
{"ip": "192.168.0.202", "access_code": "CODIGO_DA_TELA", "device": "SERIAL"}
Envio: sobe o 3mf por FTPS (porta 990, raiz do cartão SD) e manda project_file por MQTT local (8883).
O app não apaga nada do SD; limpar pela tela da impressora de vez em quando.
Tela
- Cada item: miniatura (passa o mouse = amplia), tempo, peso e filamentos usados (bolinha da cor, gramas; passa o mouse = nome do perfil e hex).
- Bandeja do AMS por filamento: lista com os slots carregados (A1–A4, Externo). Vem marcada a sugestão automática "(auto)", igual Bambu Studio: mesmo tipo, cor mais próxima. Borda vermelha = tipo diferente ou nenhum slot do tipo. A escolha vale até recarregar a página.
- Imprimir em qualquer posição; botões travados com impressora ocupada/offline.
- Arrastar pra reordenar, ✕ remove, Limpar fila / Limpar enviados (com confirmação; apagam os arquivos do PC).
- Itens enviados vão pra "Já enviados" (dá pra imprimir de novo).
Estrutura
app/printer.pyinterfacePrinter+ backends (fake, LAN)app/threemf.pylê miniatura, tempo, peso e filamentos do 3mfapp/main.pyAPI FastAPIstatic/index.htmlfrontstatic/changelog.htmlchangelog (link no rodapé); nova versão entra no topodata/fila (SQLite) e arquivos (fora do git)Dockerfile,docker-compose.yml,DEPLOY.mddeploy em container