Visão geral
Arquitetura • Fluxo • O que o serviço entregaO que é o fatiador?
O fatiador transforma um modelo 3D em instruções de impressão (ex.: G-code), além de gerar informações úteis para precificação e logística: peso em gramas, tempo estimado, quantidade de objetos, além dos dados por placa (plates) e thumbnails.
-
Retorna
Métricas globais (weight, printTime, totalObjects) e dados por placa (plateData).
-
Enfileira
Jobs são persistidos no Postgres (ex.: slicing_results) e processados por worker.
-
Entrega
Thumbnails de placas em /metadata e (no modo completo) artefatos como G-code.
Fluxo de alto nível
O fluxo típico quando você chama /slice:
-
1
API recebe .3mf + instance e cria um job QUEUED.
-
2
Worker “claim” no job (PROCESSING) e executa slicing.
-
3
Persistência do resultado (PROCESSED), upload e retorno/callback quando aplicável.
Autenticação
Bearer token obrigatórioCabeçalho Authorization
Para fatiar corretamente, é obrigatório enviar o token no cabeçalho: Authorization: Bearer <TOKEN>.
Authorization: Bearer <SEU_TOKEN>
Boas práticas
-
TLS
Use HTTPS sempre que estiver fora de rede interna.
-
Rate limit
Controle chamadas para evitar fila infinita e saturação do worker.
-
Idempotência
Use instance como chave lógica e rastreie status por job.
Endpoints
Referência rápidaAPI
Enfileira slicing completo. Worker pode subir artefatos (ex.: gcode/3mf) + thumbnails.
Enfileira slicing em modo leve (metadata-only): sobe somente thumbnails das placas em /metadata.
Parâmetros esperados
Os endpoints recebem multipart/form-data:
-
file
Obrigatório. Arquivo do modelo (ex.: .3mf).
-
instance
Obrigatório. ID da instância para rastreio e chaves de storage.
-
callback
Opcional. Quando presente, pode habilitar notificações/callbacks no fluxo.
Resposta (202): retorna um jobId e status QUEUED. O processamento acontece em background via worker.
Exemplo de resposta
Estrutura do slicing resultResultado (exemplo)
Abaixo um exemplo típico do objeto retornado após slicing (conteúdo simplificado). Campos como plateData podem conter arrays maiores.
{
"name": "keycaps",
"weight": 171.01,
"printTime": 158098,
"totalObjects": 46,
"totalUniqueObjects": 2,
"plateData": [
{ "id": "1", "printTime": 61286, "weight": 61.01, "nozzleDiameter": "0.2" },
{ "id": "2", "printTime": 26416, "weight": 31.13, "nozzleDiameter": "0.2" },
{ "id": "3", "printTime": 70396, "weight": 78.87, "nozzleDiameter": "0.2" }
],
"instance": 12104,
"status": "PROCESSED",
"compatibleMachines": [
"Bambu Lab P1S 0.2 nozzle",
"Bambu Lab P1P 0.2 nozzle"
],
"result_dir_path": "output/keycaps",
"durationMs": 22307
}