Archivo de estereolitografía

El formato de archivo STL es un formato utilizado en el software de estereolitografía (STL significa ST ereo- L ithography). Este formato fue desarrollado por la empresa 3D Systems. Este formato de archivo es utilizado por muchas otras empresas. Es ampliamente utilizado para la creación rápida de prototipos y la fabricación asistida por computadora . El formato de archivo STL describe solo la geometría de la superficie de un objeto tridimensional. En particular, este formato no incluye información sobre el color, la textura u otros parámetros habituales de un modelo de diseño asistido por computadora .

El archivo STL describe un objeto por su superficie externa. Esta superficie está necesariamente cerrada y definida por una serie de triángulos (o facetas). Cada triángulo está definido por las coordenadas cartesianas (x, y, z) en un trihedro directo de su vector normal unitario (n) orientado hacia el exterior del objeto y de sus tres vértices (vértices / vértices en inglés) ordenados en el trigonométrico. dirección. Para algunos programas, el vector normal se puede establecer en (0,0,0); Luego, el software lo calculará a partir de las coordenadas de los vértices de acuerdo con la regla de la mano derecha. Las coordenadas de los vértices originalmente estaban destinadas a ser positivas, pero las coordenadas negativas ahora se encuentran comúnmente en los archivos STL. Cada triángulo debe compartir 2 vértices con cada uno de los triángulos que lo yuxtaponen. En otras palabras, el vértice de un triángulo no debe estar en el borde de otro triángulo. No hay información de escala. La unidad de longitud es arbitraria. Se recomienda clasificar los puntos aumentando z para que el archivo sea más fácil de leer con algún software. Además, el eje z se considera el eje vertical, aunque algún software de diseño 3D como Blender realiza una corrección en el eje y .

Hay dos tipos de archivo: ASCII y binario. Los archivos ASCII son fáciles de crear, a mano o con cualquier lenguaje de programación, pero pueden ser muy grandes si el objeto es complejo. Los binarios más pequeños se utilizan más por esta razón. Los archivos se guardan con la extensión .stl.

ASCII STL

Un archivo ASCII STL comienza con la línea:

solid name

donde nombre es una cadena opcional (pero si se omite el nombre, siempre debe haber un espacio después del código sólido ). El archivo continúa con cualquier número de triángulos, cada uno representado de la siguiente manera:

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

Donde cada n o v es un número de coma flotante en el formato "  signo - mantisa -e- signo - exponente  ", por ejemplo -2.648000e-002.

El archivo se cierra con:

endsolid name

La estructura del formato sugiere que existen otras posibilidades (por ejemplo, facetas normales con más de un bucle exterior) o bucles con más de tres vértices En la práctica, todas las facetas normales son triángulos simples.

Los espacios en blanco (espacios, tabulaciones, líneas nuevas) se pueden usar en cualquier parte del archivo, excepto dentro de números o palabras. Los espacios entre los códigos "  faceta normal  " y "  bucle exterior  " son obligatorios (son palabras reservadas).

STL binario

Un archivo STL binario está estructurado de la siguiente manera:

Los números de coma flotante se representan de acuerdo con la especificación IEEE 754 y en el modo little-endian utilizado en Windows en 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

Codificación de colores en STL binario

Hay al menos dos extensiones no oficiales del formato STL binario para codificar el color de las facetas:

La codificación de colores de una faceta viene dada por 2 bytes:

El orden de definición rojo, verde y azul se invierte en las codificaciones de estas dos familias de software, lo que plantea problemas de compatibilidad de archivos porque el software que lee estos dos archivos no puede distinguirlos. Tampoco es posible definir una faceta con su propia transparencia.