STL

O que é um arquivo STL?

O padrão da impressão 3D. Só triângulos: sem cor, sem material, sem textura.

O que é STL

STL é um formato binário, que só significa alguma coisa para um programa que o conhece. Ele guarda formas e coordenadas em vez de pixels, então continua nítido em qualquer tamanho — uma logomarca levada ao tamanho de um outdoor não perde nada. Ele é usado para a impressão 3D.

A extensão é .stl e o nome por extenso é Stereolithography. Os dois importam menos do que aquilo que o arquivo consegue carregar, e é disso que trata o resto desta página.

De onde vem STL

A 3D Systems publicou o formato em 1987.

A um formato que se manteve legível por tanto tempo dá para confiar algo que você quer de volta daqui a dez anos.

A especificação é pública

Ela está publicada por inteiro, então dá para implementá-la a partir do documento em vez de por observação — é por isso que o formato aparece em tantos programas e por isso que arquivos escritos há vinte anos ainda abrem. Especificação publicada não é o mesmo que livre de royalties: quando o formato embrulha um codec, o licenciamento das patentes é uma questão à parte, que a norma não resolve.

Nada é jogado fora

STL guarda o conteúdo exatamente. Salvar de novo não muda nada, então dá para abrir, editar e salvar quantas vezes você quiser sem acumular estrago — e é isso que faz dele um formato de trabalho e não de entrega.

O que abre STL

Blender, PrusaSlicer e Cura leem esse formato, e a maioria dos programas do mesmo tipo também.

Quando um arquivo não abre, o formato raramente é o problema — mais comum é o programa ser mais antigo que ele. Converter para algo mais antigo é o caminho confiável, e é para isso que serve o resto deste site.

Abrir no navegador

Nenhum navegador lê o formato.

Esse é de longe o motivo mais comum para convertê-lo: não que o formato seja ruim, mas que o lugar onde você quer mostrar o arquivo não consegue lê-lo.

É um formato de trabalho

STL foi feito para ser aberto e alterado. Mantenha o arquivo nesse formato enquanto o trabalho estiver em andamento e exporte a partir dele sempre que precisar de uma cópia pronta.

Triângulos, e deliberadamente nada mais

Um arquivo STL é uma lista de triângulos. Cada um tem três cantos e uma direção dizendo qual lado é o de fora. Não tem cor, não tem material, não tem textura, não tem unidade de medida e não tem estrutura — um modelo de um bloco de motor é um saco indiferenciado de triângulos, exatamente como um modelo de um cubo.

O formato foi escrito em 1987 para estereolitografia, e tudo nele reflete uma máquina que só precisava saber onde ficava o sólido. Quase quarenta anos depois, continua sendo o que toda impressora 3D de mesa espera, porque essa continua sendo a única pergunta que um fatiador faz.

Curvas não existem, então resolução é decidida na exportação

Uma esfera num programa de modelagem é uma esfera matemática. Um STL dela é alguns milhares de triângulos planos fingindo ser uma, e quantos é escolhido por quem exportou o arquivo. Poucos demais e a impressão tem facetas visíveis; demais e o arquivo fica enorme e o fatiador fica lento.

Essa é a única decisão que não pode ser desfeita depois. Um STL grosseiro não pode ser suavizado de volta numa curva, porque a curva se foi — tudo que resta é a aproximação. Exporte do modelo original na tolerância que a impressão precisa, e guarde o original: o STL é um formato de entrega, não um mestre.

Estanque, e por que um fatiador recusa um arquivo

Um modelo imprimível precisa descrever um sólido sem ambiguidade. Isso significa que toda aresta é compartilhada por exatamente dois triângulos, sem buracos, e toda normal apontando para fora. Uma malha assim é estanque, ou manifold, e é a propriedade que permite a um fatiador decidir o que está dentro.

Modelos falham nisso constantemente, geralmente porque foram feitos para renderização. Uma superfície sem espessura parece perfeita na tela e é impossível de imprimir. Duas formas sobrepostas que nunca foram mescladas deixam faces internas. Um buraco na malha deixa o fatiador adivinhando, e ele vai recusar o arquivo ou preencher algo que você não pretendia. Ferramentas de reparo consertam a maioria automaticamente, e vale rodar uma antes da impressora, não depois.

O problema de unidade, num formato onde ele mais importa

Números do STL não têm dimensão. O arquivo diz 25,4 e não diz se isso é milímetro ou polegada, então um modelo desenhado em polegadas e aberto num fatiador baseado em milímetro imprime em 1/25 do tamanho pretendido — ou 25 vezes maior demais na outra direção.

A maior parte do mundo de impressão 3D presume milímetros, e a maioria dos fatiadores usa isso por padrão. Confira as dimensões da caixa delimitadora que o fatiador relata contra o que o objeto realmente deveria ser antes de imprimir. Leva cinco segundos, e é a diferença entre uma peça que encaixa e uma lição muito lenta e muito cara.

ASCII e binário são o mesmo formato

A especificação permite duas codificações. ASCII escreve toda coordenada como texto legível, o que torna o arquivo cinco ou seis vezes maior e permite abrir num editor. Binário escreve cinquenta bytes por triângulo e é o que quase tudo produz e espera.

Use binário a menos que algo especificamente exija o contrário. A única vantagem real do ASCII é que uma pessoa consegue inspecionar ele, o que é ocasionalmente útil ao diagnosticar uma exportação quebrada e nunca útil para imprimir. Converter entre os dois não muda nada na geometria.

Cor, e os formatos que carregam ela

O STL não tem nenhuma. Existem extensões não oficiais que enfiam cor em bytes não usados, e o suporte a elas é irregular o bastante para não valer a pena confiar.

Isso importa cada vez mais conforme impressão multimaterial e colorida se tornam comuns. Se uma impressão precisa de mais de uma cor, o arquivo precisa ser 3MF ou OBJ, os dois carregando atribuições de material corretamente. O 3MF é a resposta moderna em geral — é uma especificação de verdade com unidades, materiais e ajustes de impressão, e o motivo de ele não ter substituído o STL é inércia, não mérito.

De STL a um objeto impresso

O STL não é enviado à impressora. Ele entra num fatiador, que orienta ele, adiciona suportes onde uma saliência de outra forma imprimiria no ar, e corta ele em camadas para produzir G-code — as instruções de verdade para a máquina. Toda decisão que determina se a impressão dá certo é tomada no fatiador, não no arquivo.

É por isso que o que vale acertar no STL é estreito: escala correta, malha estanque, triângulos suficientes para descrever as curvas no tamanho em que vai ser impresso. Tudo mais — preenchimento, paredes, temperatura, suportes — vem depois, e nada disso consegue resgatar uma malha com buracos.

Os dados, num lugar só

Identificadores e procedência do formato STL.
Extensão.stl
Tipo de mídiamodel/stl
Publicado por3D Systems
Primeira publicação1987