MeshView
← Todas las entradas

STL binario o ASCII: ¿qué diferencia hay?

El STL tiene dos codificaciones. Las dos describen los mismos triángulos, pero una es texto plano y la otra son datos binarios empaquetados. Para imprimir son intercambiables. La diferencia importa por el tamaño del archivo y por el software que tiene que adivinar de cuál de los dos tipos se trata.

STL ASCII

Un STL ASCII es un archivo de texto que puedes abrir en cualquier editor. Empieza con solid y un nombre, enumera cada triángulo en un bloque con su normal y sus tres vértices, y termina con endsolid.

solid part
  facet normal 0 0 1
    outer loop
      vertex 0 0 0
      vertex 1 0 0
      vertex 0 1 0
    endloop
  endfacet
endsolid part

Es fácil de leer y de depurar, pero es grande. Cada número se escribe como texto, así que un archivo ASCII suele ocupar varias veces más que la versión binaria del mismo modelo.

STL binario

Un STL binario es compacto y tiene una estructura fija:

  • una cabecera de 80 bytes, texto libre que el software ignora
  • un recuento de triángulos de 4 bytes
  • después, 50 bytes por triángulo: 12 números (la normal y los tres vértices, de 4 bytes cada uno) más 2 bytes de reserva

Por tanto, el tamaño del archivo es siempre 84 más 50 por el número de triángulos. Los dos bytes de reserva se llaman «attribute byte count». Algunas herramientas de CAD los usan para guardar un color, pero casi ningún slicer lo lee. (Resumen del formato STL)

Casi todos los exportadores modernos escriben STL binario, porque ocupa menos y se carga más rápido.

La trampa de «solid»

La forma obvia de distinguir las codificaciones es comprobar si el archivo empieza por la palabra solid. No es fiable. La cabecera binaria es texto libre, y algunos exportadores la rellenan con una línea que empieza por solid. Un visor que se fía de esa primera palabra trata un archivo binario como texto y luego no consigue leerlo, a menudo con un mensaje que dice que el archivo está vacío o dañado.

El popular modelo de pruebas 3DBenchy es uno de esos archivos. Su cabecera binaria empieza por solid, y por eso algunos visores lo rechazan.

Una comprobación fiable usa el tamaño. Lee el número de triángulos de los bytes 80 a 83, y si el archivo mide exactamente 84 más 50 por ese número, es binario. Si no, trátalo como texto. MeshView se las arregla con estas cabeceras, por eso estos archivos se abren igualmente.

Qué importancia tiene al imprimir

Ninguna. Los slicers leen los dos, y un modelo guardado de cualquiera de las dos formas se imprime igual. Algunos consejos prácticos:

  • Elige binario para compartir. El archivo es más pequeño y se envía antes con la conexión del móvil.
  • Elige ASCII solo para inspeccionar los datos o cuando lo exija una herramienta que uses.
  • Ninguno tiene unidades ni color. Consulta STL o 3MF y el STL no tiene unidades.

Si un archivo no se abre

Un archivo que no se abre en ningún sitio puede estar truncado. En un STL binario, compara su tamaño con 84 más 50 por el número de triángulos: si es menor, la descarga se cortó y conviene volver a descargarlo.