Arquivo de estereolitografia

O formato de arquivo STL é um formato usado em estereolitografia software (STL está para ST ereo- L ithography). Este formato foi desenvolvido pela empresa 3D Systems. Este formato de arquivo é usado por muitas outras empresas. É amplamente utilizado para prototipagem rápida e fabricação auxiliada por computador . O formato de arquivo STL descreve apenas a geometria da superfície de um objeto tridimensional. Em particular, este formato não inclui informações sobre a cor, textura ou outros parâmetros usuais de um modelo de design auxiliado por computador .

O arquivo STL descreve um objeto por sua superfície externa. Esta superfície é necessariamente fechada e definida por uma série de triângulos (ou facetas). Cada triângulo é definido pelas coordenadas cartesianas (x, y, z) em um triedro direto de seu vetor normal unitário (n) orientado para fora do objeto e de seus três vértices (vértices / vértices em inglês) ordenados no trigonométrico direção. Para alguns softwares, o vetor normal pode ser definido como (0,0,0); será então calculado pelo software a partir das coordenadas dos vértices de acordo com a regra da mão direita. As coordenadas dos vértices foram originalmente planejadas para serem positivas, mas as coordenadas negativas agora são comumente encontradas em arquivos STL. Cada triângulo deve compartilhar 2 vértices com cada um dos triângulos justapondo-o. Em outras palavras, o vértice de um triângulo não deve estar na borda de outro triângulo. Não há informações de escala. A unidade de comprimento é arbitrária. Recomenda-se classificar os pontos aumentando z para tornar o arquivo mais fácil de ler por algum software. Além disso, o eixo z é considerado o eixo vertical, embora uma correção no eixo y seja feita por algum software de design 3D como o Blender .

Existem dois tipos de arquivo: ASCII e binário. Os arquivos ASCII são fáceis de criar, manualmente ou com qualquer linguagem de programação, mas podem ser muito grandes se o objeto for complexo. Binários menores são mais usados ​​por esse motivo. Os arquivos são salvos com a extensão .stl.

ASCII STL

Um arquivo ASCII STL começa com a linha:

solid name

onde nome é uma string opcional (mas se o nome for omitido, sempre deve haver um espaço após o código sólido ). O arquivo continua com qualquer número de triângulos, cada um representado da seguinte forma:

facet normal ni nj nk outer loop vertex v1xv1yv1z vertex v2xv2yv2z vertex v3xv3yv3z endloop endfacet

Onde cada n ou v é um número de ponto flutuante em formato "  sinal - mantissa -e- sinal - expoente  ", por exemplo -2.648000e-002.

O arquivo é fechado com:

endsolid name

A estrutura do formato sugere que existem outras possibilidades, (por exemplo, facetas normais com mais de um loop externo) ou, loops com mais de três vértices.Na prática, todas as facetas normais são triângulos simples.

Espaços em branco (espaços, tabulações, novas linhas) podem ser usados ​​em qualquer lugar no arquivo, exceto dentro de números ou palavras. Os espaços entre os códigos "  faceta normal  " e "  loop externo  " são obrigatórios (são palavras reservadas).

STL binário

Um arquivo STL binário é estruturado da seguinte maneira:

Os números de ponto flutuante são representados de acordo com a especificação IEEE 754 e no modo little-endian usado no Windows em particular.

UINT8[80] – en-tête UINT32 – Nombre de triangles
foreach triangle REAL32[3] – Vecteur normal REAL32[3] – Sommet 1 REAL32[3] – Sommet 2 REAL32[3] – Sommet 3 UINT16 – Mot de contrôle end

Codificação de cores em STL binário

Existem pelo menos duas extensões não oficiais para o formato STL binário para codificar a cor das facetas:

O código de cores de uma faceta é dado por 2 bytes:

A ordem de definição de vermelho, verde e azul é invertida nas codificações dessas duas famílias de software, o que apresenta problemas de compatibilidade de arquivo porque o software que lê esses dois arquivos não consegue distingui-los. Também não é possível definir uma faceta com sua própria transparência.