STL es un formato de archivo nativo del software CAD de estereolitografía creado por 3D Systems . [1] [2] [3] STL tiene varios backronyms como "Lenguaje de triángulo estándar" y " Lenguaje de teselación estándar ". [4] Este formato de archivo es compatible con muchos otros paquetes de software; se utiliza ampliamente para la creación rápida de prototipos , la impresión 3D y la fabricación asistida por ordenador . [5]Los archivos STL describen solo la geometría de la superficie de un objeto tridimensional sin ninguna representación de color, textura u otros atributos comunes del modelo CAD. El formato STL especifica tanto representaciones ASCII como binarias . Los archivos binarios son más comunes, ya que son más compactos. [6]
Extensión de nombre de archivo | .stl |
---|---|
Tipo de medio de Internet |
|
Desarrollado por | Sistemas 3D |
Versión inicial | 1987 |
Tipo de formato | Estereolitografía |
Un archivo STL describe una superficie triangulada sin formato y no estructurado por la unidad normal y los vértices (ordenados por la regla de la mano derecha ) de los triángulos utilizando un sistema de coordenadas cartesiano tridimensional . En la especificación original, se requería que todas las coordenadas STL fueran números positivos, pero esta restricción ya no se aplica y las coordenadas negativas se encuentran comúnmente en los archivos STL en la actualidad. Los archivos STL no contienen información de escala y las unidades son arbitrarias. [7]
ASCII STL
Un archivo ASCII STL comienza con la línea
nombre sólido
donde nombre es una cadena opcional (aunque si se omite el nombre, debe haber un espacio después del sólido). El archivo continúa con cualquier número de triángulos, cada uno representado de la siguiente manera:
faceta normal n i n j n k bucle exterior vértice v 1 x v 1 y v 1 z vértice v 2 x v 2 y v 2 z vértice v 3 x v 3 y v 3 z endloopendfacet
donde cada n o v es un número de punto flotante en formato de signo- mantisa - "e" -signo- exponente , por ejemplo, "2.648000e-002". El archivo concluye con
nombre sólido
La estructura del formato sugiere que existen otras posibilidades (por ejemplo, facetas con más de un "bucle" o bucles con más de tres vértices). En la práctica, sin embargo, todas las facetas son triángulos simples.
Se pueden usar espacios en blanco (espacios, tabulaciones, líneas nuevas) en cualquier parte del archivo, excepto dentro de números o palabras. Los espacios entre "faceta" y "normal" y entre "exterior" y "bucle" son obligatorios. [6]
STL binario
Debido a que los archivos ASCII STL pueden ser muy grandes, existe una versión binaria de STL. Un archivo STL binario tiene un encabezado de 80 caracteres (que generalmente se ignora, pero nunca debe comenzar con "sólido" porque eso puede llevar a algunos programas a asumir que se trata de un archivo STL ASCII). Después del encabezado hay un entero sin signo little-endian de 4 bytes que indica el número de facetas triangulares en el archivo. A continuación, se encuentran los datos que describen cada triángulo por turno. El archivo simplemente termina después del último triángulo.
Cada triángulo se describe mediante doce números de coma flotante de 32 bits: tres para la normal y luego tres para la coordenada X / Y / Z de cada vértice, al igual que con la versión ASCII de STL. Después de esto, sigue un entero sin signo de 2 bytes ("corto") que es el "recuento de bytes de atributo"; en el formato estándar, esto debería ser cero porque la mayoría del software no entiende nada más. [6]
Los números de coma flotante se representan como números de coma flotante IEEE y se supone que son little-endian , aunque esto no se indica en la documentación.
UINT8 [80] - Encabezado - 80 bytes UINT32 - Número de triángulos - 4 bytesforeach triángulo - 50 bytes: REAL32 [3] - Vector normal - 12 bytes REAL32 [3] - Vértice 1 - 12 bytes REAL32 [3] - Vértice 2 - 12 bytes REAL32 [3] - Vértice 3 - 12 bytes UINT16 - Recuento de bytes de atributo - 2 bytesfinal
Color en STL binario
Hay al menos dos variaciones no estándar en el formato STL binario para agregar información de color:
- Los paquetes de software VisCAM y SolidView utilizan los dos bytes de "recuento de bytes de atributo" al final de cada triángulo para almacenar un color RGB de 15 bits :
- los bits 0 a 4 son el nivel de intensidad del azul (0 a 31),
- los bits 5 a 9 son el nivel de intensidad del verde (0 a 31),
- los bits 10 a 14 son el nivel de intensidad del rojo (0 a 31),
- el bit 15 es 1 si el color es válido, o 0 si el color no es válido (como con los archivos STL normales).
- El software Materialise Magics utiliza el encabezado de 80 bytes en la parte superior del archivo para representar el color general de toda la pieza. Si se usa color, entonces en algún lugar del encabezado debe estar la cadena ASCII "COLOR =" seguida de cuatro bytes que representan el canal rojo, verde, azul y alfa (transparencia) en el rango 0-255. Este es el color de todo el objeto, a menos que se anule en cada faceta. Magics también reconoce una descripción material; una característica de la superficie más detallada. Justo después de la especificación "COLOR = RGBA" debe haber otra cadena ASCII ", MATERIAL =" seguida de tres colores (3 × 4 bytes): el primero es un color de reflexión difusa , el segundo es un color de iluminación especular y el tercero es un color ambiental luz . Se prefieren los ajustes de material sobre el color. El color por faceta se representa en los dos bytes de "recuento de bytes de atributo" de la siguiente manera:
- los bits 0 a 4 son el nivel de intensidad del rojo (0 a 31),
- los bits 5 a 9 son el nivel de intensidad del verde (0 a 31),
- los bits 10 a 14 son el nivel de intensidad del azul (0 a 31),
- el bit 15 es 0 si esta faceta tiene su propio color único, o 1 si se va a utilizar el color por objeto.
El orden rojo / verde / azul dentro de esos dos bytes se invierte en estos dos enfoques, por lo que si bien estos formatos podrían haber sido fácilmente compatibles, la inversión del orden de los colores significa que no lo son, y lo que es peor, un archivo STL genérico. el lector no puede distinguir automáticamente entre ellos. Tampoco hay forma de que las facetas sean selectivamente transparentes porque no hay un valor alfa por faceta, aunque en el contexto de la actual maquinaria de creación rápida de prototipos, esto no es importante.
La faceta normal
En las versiones ASCII y binaria de STL, la faceta normal debe ser un vector unitario apuntando hacia afuera desde el objeto sólido. [8] En la mayoría del software, esto puede establecerse en (0,0,0), y el software calculará automáticamente una normal en función del orden de los vértices del triángulo utilizando la " regla de la mano derecha ", es decir, los vértices se enumeran en orden en sentido contrario a las agujas del reloj desde el exterior. Algunos cargadores STL (por ejemplo, el complemento STL para Art of Illusion) verifican que lo normal en el archivo concuerde con lo normal que calculan usando la regla de la mano derecha y advierten al usuario cuando no lo hace. Otro software puede ignorar la faceta normal por completo y usar solo la regla de la mano derecha. Aunque es raro especificar una normal que no se pueda calcular usando la regla de la mano derecha, para que sea completamente portátil, un archivo debe proporcionar la normal de faceta y ordenar los vértices de manera apropiada. Una excepción notable es SolidWorks , que utiliza lo normal para efectos de sombreado .
Uso en impresión 3D
Las impresoras 3D construyen objetos solidificando (SLA, SLS, SHS, DMLS, EBM, DLP) o imprimiendo (3DP, MJM, FDM, FFF, PJP, MJS) [9] una capa a la vez. Esto requiere una serie de contornos 2D cerrados (capas horizontales) que se rellenan con material solidificado a medida que las capas se fusionan. Un formato de archivo natural para tal máquina sería una serie de polígonos cerrados (capas o cortes) correspondientes a diferentes valores Z. Sin embargo, dado que es posible variar los espesores de capa para una construcción más rápida aunque menos precisa, fue más fácil definir el modelo a construir como un poliedro cerrado que se puede cortar en los niveles horizontales necesarios. Una normal de faceta incorrecta puede afectar la forma en que se divide y se rellena un archivo. Se puede elegir un corte en un valor Z diferente para omitir una faceta incorrecta o el archivo debe devolverse al programa CAD para realizar correcciones y luego regenerar el archivo STL.
El formato de archivo STL parece capaz de definir un poliedro con cualquier faceta poligonal, pero en la práctica solo se usa para triángulos, lo que significa que gran parte de la sintaxis del protocolo ASCII es superflua.
Para formar correctamente un volumen 3D, la superficie representada por cualquier archivo STL debe estar cerrada (sin agujeros o vector normal invertido) y conectada, donde cada borde es parte de exactamente dos triángulos, y no se auto-intersecan. Dado que la sintaxis STL no aplica esta propiedad, se puede ignorar para aplicaciones donde el vacío no importa. La superficie faltante solo importa en la medida en que el software que corta los triángulos lo requiera para garantizar que los polígonos 2D resultantes estén cerrados. A veces, dicho software se puede escribir para limpiar pequeñas discrepancias moviendo vértices que están muy juntos para que coincidan. Los resultados no son predecibles, puede ser suficiente si la superficie debe repararse con otro programa. Las impresoras vectoriales 3D requieren un archivo .STL limpio y la impresión de un archivo de datos incorrecto no se completará o puede detener la impresión.
Usar en otros campos
El formato de archivo STL es simple y fácil de generar. En consecuencia, muchos sistemas de diseño asistido por computadora pueden generar el formato de archivo STL. Aunque la salida es simple de producir, la información de conectividad de la malla se descarta porque se pierde la identidad de los vértices compartidos.
Muchos sistemas de fabricación asistidos por computadora requieren modelos triangulados. El formato STL no es el método más eficiente desde el punto de vista de la memoria y desde el punto de vista computacional para transferir estos datos, pero STL se usa a menudo para importar la geometría triangulada al sistema CAM . El formato está comúnmente disponible, por lo que el sistema CAM lo utilizará. Para utilizar los datos, es posible que el sistema CAM tenga que reconstruir la conectividad. Como los archivos STL no guardan la dimensión física de una unidad, un sistema CAM lo solicitará. Las unidades típicas son mm y pulgadas.
STL también se puede utilizar para intercambiar datos entre sistemas CAD / CAM y entornos computacionales como Mathematica .
Representación de superficies curvas
No es posible utilizar triángulos para representar perfectamente superficies curvas. Para compensar, los usuarios a menudo guardan enormes archivos STL para reducir la inexactitud. Los formatos nativos de archivos de software de diseño 3D [se necesita un ejemplo ] utilizan superficies matemáticas para preservar los detalles sin pérdidas en archivos pequeños.
Historia
STL fue inventado por Albert Consulting Group para 3D Systems en 1987. [10] El formato fue desarrollado para las primeras impresoras 3D comerciales de 3D Systems. Desde su lanzamiento inicial, el formato se mantuvo relativamente sin cambios durante 22 años. [11]
En 2009, se propuso una actualización del formato, denominado STL 2.0. Evolucionó al formato de archivo de fabricación aditiva . [11] [12]
Ver también
- Formato de fabricación 3D (3MF), un estándar para la fabricación de archivos 3D
- Formato de archivo de fabricación aditiva (AMF), un estándar compatible con colores, múltiples materiales y constelaciones
- PLY (formato de archivo) , un formato de archivo alternativo
- Voxel
- Archivo .obj de frente de onda , un formato de archivo de definición de geometría 3D con extensión de archivo .obj
- X3D , un estándar ISO libre de regalías para gráficos por computadora en 3D
Referencias
- ^ Especificación de interfaz de StereoLithography , 3D Systems, Inc., julio de 1988
- ^ Especificación de interfaz de estereo litografía , 3D Systems, Inc., octubre de 1989
- ^ Especificación de archivo SLC , 3D Systems, Inc., 1994
- ^ Grimm, Todd (2004), Guía del usuario para la creación rápida de prototipos , Sociedad de ingenieros de fabricación , p. 55, ISBN 0-87263-697-6. Se utilizan muchos nombres para el formato: por ejemplo, "lenguaje de triángulo estándar", "lenguaje de estereolitografía" y "lenguaje de teselación de estereolitografía". La página 55 dice: " Chuck Hull , el inventor de la estereolitografía y fundador de 3D Systems, informa que la extensión del archivo es para la estereolitografía".
- ^ Chua, C. K; Leong, KF; Lim, CS (2003), Creación rápida de prototipos: principios y aplicaciones (2a ed.), World Scientific Publishing Co, ISBN 981-238-117-1Capítulo 6, Formatos de creación rápida de prototipos. Página 237, "El archivo STL (STeroLithography), como estándar de facto, se ha utilizado en muchos, si no en todos, los sistemas de creación rápida de prototipos". Sección 6.2 Problemas con los archivos STL. Sección 6.4 Reparación de archivos STL.
- ^ a b c Burns, Marshall (1993). Fabricación automatizada . Prentice Hall. ISBN 978-0-13-119462-5.
- ^ fabbers.com Recurso histórico sobre impresión 3D, The StL Format: Standard Data Format for Fabbers, reimpreso de Marshall Burns, Automated Fabrication, http://www.ennex.com/~fabbers/StL.asp indicando, "El objeto representado debe estar ubicado en el octante totalmente positivo. En otras palabras, todas las coordenadas de los vértices deben ser números definidos positivos (no negativos y distintos de cero). El archivo StL no contiene información de escala; las coordenadas están en unidades arbitrarias ".
- ^ Peddie, Jon. (2013). La historia de la magia visual en las computadoras: cómo se crean bellas imágenes en CAD, 3D, VR y AR . Londres: Springer. págs. 54–57. ISBN 978-1-4471-4932-3. OCLC 849634980 .
- ^ Barnatt, Christopher, 1967- (2013). Impresión 3D: la próxima revolución industrial . [¿Nottingham, Inglaterra?]: ExplainingTheFuture.com. págs. 26–71. ISBN 978-1-4841-8176-8. OCLC 854672031 .CS1 maint: varios nombres: lista de autores ( enlace )
- ^ "Formato de archivo STL para impresión 3D: explicado en términos simples" . All3DP . 17 de noviembre de 2016 . Consultado el 5 de mayo de 2017 .
- ^ a b "STL 2.0 puede reemplazar el formato de archivo antiguo y limitado" . RapidToday . Consultado el 5 de mayo de 2017 .
- ^ Hiller, Jonathan D .; Lipson, Hod (2009). STL 2.0: Una propuesta para un formato de archivo de fabricación aditiva universal de múltiples materiales (PDF) . Simposio de fabricación de formas libres sólidas (SFF'09). Austin, TX, EE.UU .: Cornell University. Archivado desde el original (PDF) el 11 de junio de 2020 . Consultado el 5 de mayo de 2017 .
enlaces externos
- El formato STL: formato de datos estándar para Fabbers