Articulo de referencia

STL (formato de archivo)

model/stl {{cite web | url = https://www.iana.org/assignments/media-types/model/stl | title = model/stl | publisher = [[IANA]] | website = iana.org | first = Allan | last = Noor...

STL es un formato de archivo nativo del software CAD de estereolitografía creado por 3D Systems . [ 3 ] [ 4 ] [ 5 ] Chuck Hull , inventor de la estereolitografía y fundador de 3D Systems, informa que la extensión de archivo es una abreviatura de estereolitografía , [ 6 ] aunque también se la conoce como lenguaje de triángulos estándar o lenguaje de teselación estándar . [ 2 ]

Un archivo STL describe una superficie triangulada sin estructurar mediante la normal unitaria y los vértices (ordenados según la regla de la mano derecha [ 2 ] ) de los triángulos utilizando un sistema de coordenadas cartesianas tridimensionales . [ 7 ] En la especificación original, todas las coordenadas STL debían ser números positivos, pero esta restricción ya no se aplica y actualmente es común encontrar coordenadas negativas en los archivos STL. Los archivos STL no contienen información de escala y las unidades son arbitrarias. [ 8 ] Los archivos STL describen únicamente la geometría de la superficie de un objeto tridimensional sin ninguna representación de color, textura u otros atributos comunes de los modelos CAD. El formato STL especifica representaciones tanto ASCII como binarias . Los archivos binarios son más comunes, ya que son más compactos. [ 9 ]

STL se utiliza ampliamente para la creación rápida de prototipos , la impresión 3D y la fabricación asistida por ordenador , [ 10 ] y es compatible con muchos otros paquetes de software.

Historia

STL fue inventado por Albert Consulting Group para 3D Systems en 1987. [ 11 ] 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. [ 12 ]

En 2009, se propuso una actualización del formato denominada STL 2.0, que evolucionó hasta convertirse en el formato de archivo de fabricación aditiva . [ 12 ] [ 13 ]

Formato

ASCII

Un archivo STL ASCII comienza con la línea:

nombre sólido

donde nombre es una cadena opcional (aunque si se omite nombre debe haber un espacio después de sólido, para compatibilidad con algunos programas). El resto de la línea se ignora y a veces se usa para almacenar metadatos (por ejemplo, nombre de archivo, autor, fecha de modificación, etc.). [ 14 ] El archivo continúa con cualquier número de triángulos, cada uno representado de la siguiente manera: [ 15 ]

faceta normal n i n j n k vértice del bucle externo v1 x v1 y v1 z vértice v2 x v2 y v2 z vértice v3 x v3 y v3 z endloop endfacet

donde cada n o v es un número de punto flotante en formato signo - mantisa - signoe - exponente , por ejemplo, . El archivo concluye con:2.648000e-002

nombre sólido final
Un ejemplo de ASCII STL de un esferocón

La estructura del formato sugiere que existen otras posibilidades (por ejemplo, facetas con más de un vértice loopo bucles con más de tres vértices), aunque la descripción del formato de archivo se refiere únicamente a teselaciones triangulares . [ 2 ]

Se pueden usar espacios en blanco (espacios, tabulaciones, saltos de línea) en cualquier parte del archivo, excepto dentro de números o palabras. Los espacios entre facety normaly entre outery loopson obligatorios. [ 9 ]

Binario

Debido a que los archivos STL ASCII pueden ser grandes, existe una versión binaria de STL. Un archivo STL binario tiene una cabecera de 80 caracteres que generalmente se ignora, pero que nunca debe comenzar con la representación ASCII de la cadena solid, ya que esto podría llevar a algunos programas a confundirlo con un archivo STL ASCII. Después de la cabecera hay un entero sin signo de 4 bytes en formato little-endian que indica la cantidad de facetas triangulares en el archivo. A continuación, se encuentran los datos que describen cada triángulo. El archivo simplemente termina después del último triángulo.

Cada triángulo se describe mediante 12 números de coma flotante de 32 bits: 3 para la normal y luego 3 para la coordenada X/Y/Z de cada vértice, al igual que en la versión ASCII de STL. A continuación, se incluye un entero sin signo de 2 bytes ("short") que representa el "conteo de bytes de atributo"; en el formato estándar, este valor debería ser cero, ya que la mayoría del software no reconoce ningún otro formato. [ 9 ]

Los números de coma flotante se representan como números de coma flotante IEEE y se asume que son little-endian , aunque esto no se especifica en la documentación.

UINT8[80] – Encabezado - 80 bytes UINT32 – Número de triángulos - 04 bytes para cada 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 del atributo: 02 bytes fin

Existen al menos dos variantes no estándar del formato binario STL para añadir información de color:

  • Los paquetes de software VisCAM y SolidView utilizan los dos bytes de "conteo de bytes de atributo" al final de cada triángulo para almacenar un color RGB de 15 bits:
    • Los bits 0–4 son el nivel de intensidad para el azul (0–31),
    • Los bits 5–9 son el nivel de intensidad para el verde (0–31),
    • Los bits 10–14 son el nivel de intensidad para el rojo (0–31),
    • El bit 15 es 1 si el color es válido, o 0 si el color no es válido (como en 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 utiliza color, en algún lugar del encabezado debe estar la cadena ASCIICOLOR= seguida de cuatro bytes que representan el rojo, el verde, el azul y el canal alfa (transparencia) en el rango de 0 a 255. Este es el color de todo el objeto, a menos que se anule en cada faceta. Magics también reconoce una descripción del material; una característica de superficie más detallada. Justo después de la especificación debe haber otra cadena ASCII seguida de tres colores (3 × 4 bytes): el primero es un color de reflexión difusa , el segundo es un color de brillo especular y el tercero es una luz ambiental . Se prefieren los ajustes del material al color. El color por faceta se representa en los dos bytes de "conteo de bytes de atributo" de la siguiente manera: COLOR=RGBA,MATERIAL=
    • Los bits 0–4 son el nivel de intensidad para el rojo (0–31),
    • Los bits 5–9 son el nivel de intensidad para el verde (0–31),
    • Los bits 10–14 son el nivel de intensidad para el azul (0–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.

En ambos enfoques, el orden de los colores rojo, verde y azul dentro de esos dos bytes se invierte. Si bien estos formatos podrían haber sido compatibles, la inversión del orden de los colores impide que lo sean. Peor aún, un lector genérico de archivos STL no puede distinguirlos automáticamente. Tampoco es posible que las facetas sean selectivamente transparentes, ya que no existe un valor alfa por faceta, aunque en el contexto de la actual maquinaria de prototipado rápido, esto no es relevante.

Faceta normal

Tanto en las versiones ASCII como binarias de STL, la normal de la faceta debe ser un vector unitario que apunte hacia afuera del objeto sólido. [ 16 ] En la mayoría del software, esto puede establecerse en (0,0,0), y el software calcula automáticamente una normal basada en el orden de los vértices del triángulo usando la " regla de la mano derecha ", es decir, los vértices se enumeran en orden antihorario desde afuera. [ 2 ] Algunos cargadores de STL (por ejemplo, el complemento STL para Art of Illusion) verifican que la normal en el archivo coincida con la normal que calculan usando la regla de la mano derecha y advierten al usuario cuando no coincide. Otro software puede ignorar la normal de la faceta 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 portable, un archivo debe proporcionar tanto la normal de la faceta como ordenar los vértices adecuadamente. Una excepción notable es SolidWorks , que usa la normal para efectos de sombreado .

Características

No es posible utilizar triángulos para representar superficies curvas a la perfección. Para compensar esto, los usuarios suelen guardar archivos STL enormes para reducir la imprecisión. Sin embargo, los formatos nativos de muchas aplicaciones de diseño 3D utilizan superficies matemáticas para preservar el detalle sin pérdida de calidad en archivos pequeños. Por ejemplo, Rhino 3D [ 17 ] y Blender [ 18 ] implementan NURBS para crear superficies curvas reales y las almacenan en sus respectivos formatos de archivo nativos, pero deben generar una malla triangular al exportar un modelo al formato STL.

Impresión 3D

Logotipo de Wikipedia

Las impresoras 3D construyen objetos solidificando ( SLA , SLS , SHS , DMLS , EBM , DLP ) o imprimiendo (3DP, MJM, FDM , FFF , PJP, MJS) [ 19 ] capa por capa. 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 dicha 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 las capas 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 corta y rellena un archivo. Se puede elegir un corte en un valor Z diferente para omitir una faceta defectuosa o el archivo debe devolverse al programa CAD para realizar correcciones y luego regenerar el archivo STL.

Para formar correctamente un volumen 3D, la superficie representada por cualquier archivo STL debe estar cerrada (sin agujeros ni vector normal invertido) y conectada, de modo que cada arista sea compartida por exactamente dos caras y no se autointerseque. Dado que la sintaxis STL no impone esta propiedad, puede ignorarse en aplicaciones donde el vacío no importa. La superficie faltante importa en la medida en que el software que divide los triángulos la requiere para asegurar que los polígonos 2D resultantes estén cerrados. A veces, dicho software puede corregir pequeñas discrepancias moviendo vértices cercanos para que coincidan. Los resultados no son predecibles y pueden requerir corrección con otro programa. Las impresoras 3D vectoriales requieren un archivo STL limpio, y la impresión de un archivo de datos defectuoso puede provocar que no se complete el volumen o que la impresión se detenga.

Otros campos

Modelo STL de la tetera de Utah

El formato STL es sencillo y fácil de generar. Por consiguiente, muchos sistemas de diseño asistido por ordenador pueden generar archivos en este formato. Si bien la generación del archivo es sencilla, se descarta la información de conectividad de la malla, ya que se pierde la identidad de los vértices compartidos.

Muchos sistemas de fabricación asistida por ordenador requieren modelos triangulados. El formato STL no es el método más eficiente en cuanto a memoria y capacidad de cálculo para transferir estos datos, pero se utiliza a menudo para importar la geometría triangulada al sistema CAM . El formato está ampliamente disponible, por lo que el sistema CAM puede utilizarlo. Para utilizar los datos, el sistema CAM puede tener que reconstruir la conectividad. Como los archivos STL no guardan la dimensión física de una unidad, un sistema CAM la solicita. Las unidades típicas son mmy inch.

STL también se puede utilizar para intercambiar datos entre sistemas CAD/CAM y entornos computacionales como Mathematica .

Véase también

Referencias

  1. Noordvyk, Allan (6 de marzo de 2018). "model/stl" . iana.org . IANA . Archivado del original el 16 de febrero de 2022. Recuperado el 30 de mayo de 2022 .
  2. 1 2 3 4 5 "Familia de formatos de archivo STL (estereolitografía)" . Biblioteca del Congreso . Archivado del original el 29 de mayo de 2022. Recuperado el 30 de mayo de 2022 .
  3. Especificación de la interfaz de estereolitografía , 3D Systems, Inc., julio de 1988
  4. Especificación de la interfaz de estereolitografía , 3D Systems, Inc., octubre de 1989
  5. Especificación de archivos SLC , 3D Systems, Inc., 1994
  6. Grimm, Todd (2004). "3. El proceso de prototipado rápido" . Guía del usuario para el prototipado rápido . Society of Manufacturing Engineers . pág. 55. ISBN  0-87263-697-6.
  7. Burkardt, John (10 de julio de 2014). "Archivos STLA - Archivos de estereolitografía ASCII" . Archivado del original el 4 de octubre de 2022. Recuperado el 30 de mayo de 2022 .
  8. "El formato StL: formato de datos estándar para fabricantes de impresoras 3D" . fabbers.com — Recurso histórico sobre impresión 3D . Archivado del original el 17 de septiembre de 2020. Consultado el 30 de mayo de 2022 .
  9. 1 2 3 Burns, Marshall (1993). "6.5". Fabricación automatizada: Mejora de la productividad en la fabricación . Prentice Hall PTR . ISBN 9780131194625OCLC 634954895 
  10. Chua, CK; Leong, KF; Lim, CS (2003), "Capítulo 6, Formatos de prototipado rápido", Prototipado rápido: Principios y aplicaciones (2.ª ed.), World Scientific Publishing Co. , pág. 237, ISBN   981-238-117-1El archivo STL (esterolitografía), como estándar de facto, se ha utilizado en muchos, si no en todos, los sistemas de prototipado rápido.
  11. "Formato de archivo STL para impresión 3D: explicación en términos sencillos" . All3DP . 17 de noviembre de 2016. Archivado del original el 22 de septiembre de 2016. Consultado el 5 de mayo de 2017 .
  12. 1 2 "STL 2.0 podría reemplazar el antiguo y limitado formato de archivo" . RapidToday . Archivado del original el 29 de diciembre de 2011. Recuperado el 5 de mayo de 2017 .
  13. Hiller, Jonathan D.; Lipson, Hod (2009). STL 2.0: Propuesta para un formato de archivo universal de fabricación aditiva multimaterial (PDF) . Simposio de Fabricación de Forma Libre Sólida (SFF'09). Austin, Texas, EE. UU.: Universidad de Cornell. Archivado del original (PDF) el 11 de junio de 2020. Recuperado el 5 de mayo de 2017 .
  14. Bourke, Paul (octubre de 1999). "Formato STL" . Archivado del original el 16 de julio de 2022. Recuperado el 29 de mayo de 2022 .
  15. "Formato de archivo STL (estereolitografía), ASCII" . Biblioteca del Congreso . Archivado del original el 29 de mayo de 2022. Consultado el 30 de mayo de 2022 .
  16. Peddie, Jon (2013). La historia de la magia visual en las computadoras: cómo se crean imágenes bellas en CAD, 3D, RV y RA . Londres, Inglaterra: Springer. págs. 54–57 . ISBN  9781447149323OCLC 849634980 
  17. "¿Qué son las NURBS?" . www.rhino3d.com . Archivado del original el 25 de junio de 2021 . Consultado el 25 de junio de 2021 .
  18. "Estructura — Manual de Blender" . docs.blender.org . Archivado del original el 25 de junio de 2021. Consultado el 25 de junio de 2021 .
  19. Barnatt, Christopher (2013). Impresión 3D: La próxima revolución industrial . Nottingham, Inglaterra: ExplainingTheFuture.com. págs. 26–71 . ISBN  9781484181768OCLC 854672031 
  • El formato STL
  • archivos de estereolitografía ASCII