Si te has adentrado en el mundo de la impresión 3D, seguro que has visto en más de un lugar las siglas STL. Estas siglas hacen referencia a un tipo de formato de archivo (con extensión .stl) que ha sido muy importante, aunque ahora existen algunas alternativas. Y es que, los diseños 3D no pueden ser impresos tal cual, como bien sabrás, y necesitan de unos pasos intermedios.
Cuando se tiene el concepto de modelo 3D, se debe usar un software para diseño CAD y generar el render. Después se puede exportar a un formato STL para luego pasarlo por un slicer que lo «rebanea» para crear, por ejemplo, un GCode que sea comprensible por la impresora 3D y que así pueda ir creado las capas hasta completar la pieza. Pero, no te preocupes si no lo comprendes del todo, aquí te explicaremos todo lo que necesitas saber.
Procesamiento del modelo 3D
Con las impresoras convencionales se tiene un programa, como puede ser un lector de PDFs, o un editor de texto, un procesador de texto, etc., en el que hay una función para impresión que al pulsarla el documento irá a la cola de impresión para que sea impreso. Sin embargo, en las impresoras 3D es un poco más complejo, ya que se necesitan 3 categorías de software para que funcione:
- Software de modelado 3D: pueden ser herrameintas de modelado o CAD en las que crear el modelo que se desea imprimir. Algunos ejemplos son:
- TinkerCAD
- Blender
- BRL-CAD
- DesignSpark Mechanical
- FreeCAD
- OpenSCAD
- Wings3D
- Autodesk AutoCAD
- Autodesk Fusion 360
- Autodesk Inventor
- 3D Slash
- Sketchup
- MoI 3D
- Rhino3D
- Cinema 4D
- SolidWorks
- Maya
- 3DS Max
- Slicers: es un tipo de software que coge el archivo diseñado por alguno de los programas anteriores y lo rebanea, es decir, lo corta en capas. De esta forma, podrá ser comprensible por la impresora 3D, que, como sabes, va construyendo capa a capa, y lo convierte en G-Code (un lenguaje predominante entre la mayoría de fabricantes de impresoras 3D). En estos archivos también se incluyen datos adicionales como la velocidad de impresión, temperatura, altura de las capas, si hay multiextrusión, etc. Básicamente una herramienta CAM que genera todas las instrucciones para que la impresora sea capaz de fabricar el modelo. Algunos ejemplos son:
- Ultimaker Cura
- Repetier
- Simplify3D
- Slic3r
- KISSlicer
- ideaMaker
- OctoPrint
- 3DPrinterOS
- Printer host o software host: en impresión 3D se refiere a un programa cuya utilidad es recibir el archivo GCode desde el slicer y entrega el código a la propia impresora, normalmente a través de un puerto USB, o por red. De esta forma, la impresora puede ir interpretando esta «receta» de comandos GCode con las coordenadas X (0.00), Y (0.00) y Z (0.00) a las que debe ir desplazando el cabezal para crear el objeto y los parámetros necesarios. En muchas ocasiones, el software host está integrado en el propio slicer, por lo que suelen ser un solo programa (véase ejemplos de Slicers).
Estos dos últimos puntos suelen venir con la propia impresora 3D, como los drivers de las impresoras convencionales. Sin embargo, el software de diseño lo tendrás que elegir por separado.
Slicing: qué es un slider 3D
En el apartado anterior has conocido algo más sobre un slider, es decir, el software que corta el modelo 3D diseñado para obtener las capas necesarias, sus formas y dimensiones para que la impresora 3D sepa cómo crearla. Sin embargo, el proceso del slicing en impresión 3D es bastante interesante y una fase fundamental en el proceso. Por eso, aquí podrás obtener más información de éste.
El proceso de slicing paso a paso difiere ligeramente en función de la tecnología de impresión 3D empleada. Y básicamente se puede distinguir entre:
- FDM slicing: en este caso, se necesita control preciso de varios ejes (X/Y), ya que van moviendo el cabezal en dos ejes y necesitan en gran medida del movimiento del cabezal de impresión para construir el objeto tridimensional. También incluirá parámetros como la temperatura de la boquilla y el enfriamiento. Una vez el slicer ha generado el GCode, serán los algoritmos del controlador interno de la impresora el encargado de ejecutar los comandos necesarios.
- SLA slicing: en este caso, los comandos también deben incluir los tiempos de exposición y las velocidades de elevación. Y esto es debido a que, en vez de ir depositando capas por extrusión, debe dirigir el haz de luz a diferentes partes de la resina para solidificarla y crear capas, a la par que va elevando el objeto para permitir que otra nueva capa pueda crearse. Esta técnica necesita de menos movimientos que la FDM, ya que solo se controla un espejo reflector para dirigir el láser. Además, hay que resaltar algo importante, y es que este tipo de impresoras no suelen usar GCode, sino que suelen tener sus propios códigos patentados (por tanto, necesitan su propio software de corte o slicer). No obstante, existen algunos genéricos para SLA como ChiTuBox y FormWare, que son compatibles con muchas impresoras 3D de este tipo.
- DLP y MSLA slicing: en este otro caso, será similar al SLA, pero con la diferencia de que el único movimiento necesario en estas será el de la placa de construcción, que viajará a lo largo del eje Z durante el proceso. La demás información irá orientada al panel o pantalla de exposición.
- Otras: para el resto, como SLS, SLM, EBM, etc., puede haber diferencias notables en los procesos de impresión. Ten en cuenta que, en estos tres casos citados, también se agrega otra variable, como es la inyección del aglomerante y requiere de un proceso de slicing más complejo. Y a eso hay que agregar que un modelo de impresora SLS de una marca, no funcionará igual que la impresora SLS de la competencia, por lo que se requiere software de corte específico (suelen ser programas propietarios de los que provee el propio fabricante).
Por último, me gustaría agregar que existe una empresa belga llamada Materialise que ha creado un complejo software que sirve en todas las tecnologías de impresión 3D y un potente controlador para impresoras 3D llamado Magics. Además, este software se puede mejorar con módulos para generar el archivo de corte apropiado para máquinas específicas.
Archivos STL
Hasta ahora se han realizado referencias a los archivos STL, que son el núcleo de este artículo. Sin embargo, aún no se ha profundizado sobre este popular formato. En este apartado podrás conocerlo a fondo:
¿Qué es un archivo STL?
El formato de archivo STL es un archivo con lo que la controladora de la impresora 3D necesita, es decir, para que el hardware de la impresora pueda imprimir la forma deseada, dicho de otro modo, permite codificar la geometría de la superficie de un objeto tridimensional. Fue creado por Chuck Hull de 3D Systems en la década de los 80s, y el acrónimo no está del todo claro.
La codificación geométrica la se puede codificar mediante Tessellation (teselación), interponiendo las formas geométricas de tal forma que no haya superposiciones ni tampoco espacios, es decir, como un mosaico. Por ejemplo, se pueden componer formas mediante el uso de triángulos, como sucede en la renderización de la GPU. Una fina malla compuesta por triángulos formará toda la superficie del modelo 3D, con la cantidad de triángulos y las coordenadas de sus 3 puntos.
STL binario vs STL ASCII
Se diferencia entre STL en formato binario y STL en formato ASCII. Dos formas de almacenar y representar la información de estos mosáicos y otros parámetros. Un ejemplo del formato ASCII sería:
solid <nombre> facet normal nx ny nz outer loop vertex v1x v1y v1z vertex v2x v2y v2z vertex v3x v3y v3z endloop endfacet endsolid <nombre>
Donde «vertex» serán los puntos necesarios con sus respectivas coordenadas XYZ. Por ejemplo, para crear una forma de esfericón, puedes usar este código ASCII de ejemplo.
Cuando una forma 3D es muy compleja o de gran tamaño, implicará tener muchos pequeños triángulos, más aún si la resolución es mayor, que hará que los triángulos sean más pequeños para suavizar las formas. Eso genera archivos STL ASCII enormes. Para compactar eso, se emplean los formatos STL binarios, como por ejemplo:
UINT8[80] – Header - 80 bytes o caracteres de cabecera UINT32 – Nº de triángulos - 4 bytes for each triangle - 50 bytes REAL32[3] – Normal vector - 12 bytes para el plano de la normal REAL32[3] – Vertex 1 - 12 bytes para el vector 1 REAL32[3] – Vertex 2 - 12 bytes para el vector 2 REAL32[3] – Vertex 3 - 12 bytes para el vector 3 UINT16 – Attribute byte count - 2-bytes por triángulo (+2-bytes para información adicional en algunos software) end
Si lo deseas, aquí tienes un archivo STLB o STL binario de ejemplo para formar un simple cubo.
Por último, si te preguntas si es mejor un ASCII o un binario, lo cierto es que los binarios siempre son los recomendables para la impresión 3D por su menor tamaño. Sin embargo, si deseas inspeccionar el código y depurarlo manualmente, entonces no te queda otra forma de hacerlo que usando ASCII y un edito, ya que resulta más intuitivo para interpretarlo.
Ventajas y desventajas del STL
Los archivos STL tienen sus ventajas y desventajas, como es habitual. Es importante que las conozcas para determinar si es el formato adecuado para tu proyecto o cuándo no lo debes usar:
- Ventajas:
- Es un formato universal y compatible con casi todas las impresoras 3D, por eso es tan popular frente a otros como VRML, AMF, 3MF, OBJ, etc.
- Posee un ecosistema maduro, y es fácil de encontrar todo lo necesario en Internet.
- Desventajas:
- Limitaciones en cuanto a la cantidad de información que puede incluir, ya que no se puede usar para colores, facetas, ni otros metadatos adicionales para incluir derechos de autor o autoría.
- La fidelidad es otro de sus puntos débiles. La resolución no es demasiado buena cuando se trabaja con impresoras de alta resolución (micrométrica), ya que la cantidad de triángulos necesaria para describir las curvas de forma suave sería inmensa.
No todos los STL sirven para imprimir en 3D
Parece que cualquier archivo STL puede servir para imprimir en 3D, pero lo cierto es que no todos los .stl son imprimibles. Simplemente es un archivo con un formato para contener datos geométricos. Para que se puedan imprimir necesitarían tener detalles de los espesores, y otros detalles necesarios. En definitiva, el STL te garantiza que el modelo se pueda ver bien en la pantalla del PC, pero puede que la figura geométrica no sea sólida si se imprimiese tal cual.
Por tanto, intenta verificar que el STL (si no lo has creado tú) es válido para la impresión 3D. Eso te ahorrará mucho tiempo perdido y también filamento o resina desperdiciada en un modelo erróneo.
Controversia
Para finalizar este punto, deberías saber que existe algo de controversia sobre si se debe usar este tipo de archivo o no. Aunque aún existen muchos pululando por ahí, algunos ya dan por muerto al STL frente a las alternativas. Y algunas de las razones que dan para evitar el STL para los diseños 3D son:
- Resolución pobre ya que, al triangular, se perderá algo de calidad frente al modelo CAD.
- Se pierde el color y texturas, algo que ya permiten otros formatos más actuales.
- Sin control de relleno avanzado.
- Otros archivos son más productivos a la hora de editarlos o revisarlos que un STL en caso de ser necesaria alguna rectificación.
Software para .stl
Algunas de las dudas más frecuentes sobre el formato de archivo STL suelen ser referentes a cómo se puede crear este formato, o cómo se puede abrir, e incluso cómo se puede modificar. Aquí tienes estas aclaraciones:
Cómo abrir un archivo STL
Si te preguntas cómo abrir un archivo STL, lo puedes hacer de varias formas. Una de ellas es mediante algunos visualizadores online, o también con software instalado en tu equipo. Aquí tienes algunas de las mejores opciones:
- Online:
- Windows: Microsoft 3D Viewer
- GNU / Linux: Gmsh
- macOS: Vista Previa o Pleasant3D
- iOS/iPadOS: STL Simple Viewer
- Android: Fast STL Viewer
Cómo crear un archivo STL
Para crear archivos STL, también tienes un buen repertorio de software para todas las plataformas, e incluso opciones online como:
- Online: TinkerCAD, Sketchup, OnShape
- Windows: FreeCAD, Blender, MeshLab
- GNU / Linux: FreeCAD, Blender, MeshLab
- macOS: FreeCAD, Blender, MeshLab
- iOS/iPadOS: *
- Android: *
Cómo editar un archivo STL
En este caso, el software que es capaz de crear también permite editar un archivo STL, por tanto, para ver programas, puedes ver el punto anterior.
Alternativas
Poco a poco han ido surgiendo algunos formatos alternativos para los diseños para la impresión 3D. Estos otros formatos también son muy importantes, y destacan:
- PLY (Polygon File Format): estos archivos tienen extensión .ply y es un formato para polígonos o triángulos. Fue diseñado para almacenar datos tridimensionales de escáneres 3D. Se trata de una descripción geométrica simple de un objeto, así como otras propiedades como el color, la transparencia, las superficies normales, coordenadas de textura, etc. Y, al igual que le ocurre al STL, existe una versión ASCII y otra binaria.
- OBJ: los archivos con extensión .obj también son archivos de definición de geometría. Fueron desarrollados por Wavefront Technologies para un software llamado Advanced Visualizer. Actualmente es abierto y ha sido adoptado por muchos programas gráficos para 3D. También almacena información simple de la geometría de un objeto, como la posición de cada vértice, textura, normal, etc. Al declararse los vértices en sentido contrario a las agujas del reloj, no hace falta declarar explícitamente las caras normales. Además, las coordenadas de este formato no tienen unidades, pero sí que pueden contener información de la escala.
- 3MF (3D Manufacturing Format): este formato se almacena en archivos .3mf, un estándar de código abierto desarrollado por 3MF Consortium. El formato de datos geométricos para fabricación aditiva se basa en XML. Puede incluir información sobre los materiales, sobre el color, etc.
- VRML (Virtual Reality Modeling Language): fue creado por Web3D Consortium. Estos archivos tienen un formato cuyo objetivo es representar escenas u objetos tridimensionales interactivos, además de color de la superficie, etc. Y son la base de los X3D (eXtensible 3D Graphics).
- AMF (Additive Manufacturing Format): un formato de archivo (.amf) que también es un estándar de código abierto para la descripción de objetos para los procesos de fabricación aditiva para impresión 3D. También se basa en XML, y es compatible con cualquier software de diseño CAD. Y ha llegado como el sucesor de STL, pero con mejoras como la de incluir soporte nativo para colores, materiales, entramados y constelaciones.
- WRL: extensión de VRML.
¿Qué es GCode?
Hemos comentado mucho sobre el lenguaje de programación GCode, ya que es una pieza clave en el proceso de impresión 3D en la actualidad, pasando del diseño STL a un G-Code que es un archivo con instrucciones y parámetros de control de la impresora 3D. Una conversión que realizará de forma automática el software slicer.
Este código cuenta con comandos, que le indican a la impresora cómo y dónde extruir el material para conseguir la pieza, del tipo:
- G: estos códigos son entendidos de forma universal por todas las impresoras que usan códigos G.
- M: son códigos específicos para ciertas series de impresoras 3D.
- Otros: también existen otros códigos nativos de otras máquinas, como las funciones F, T, H, etc.
Como se puede ver en la imagen anterior del ejemplo, aparecen una serie de líneas de código que no son más que coordenadas y otros parámetros para indicarle a la impresora 3D lo que debe hacer, como si fuese una receta:
- X, Y, Z: son las coordenadas de los tres ejes de impresión, es decir, lo que el extrusor debe desplazarse en una u otra dirección, siendo las coordenadas de origen 0,0,0. Por ejemplo, si hay un número superior a 0 en el X, se moverá hasta esa coordenada de en la dirección del ancho de la impresora 3D. Mientras que si hay un número por encima de 0 en el Y, el cabezal se moverá en la dirección hacia afuera y hacia adentro de la zona de impresión. Por último, cualquier valor superior a 0 en Z hará que se desplace hasta esa coordenada especificada de abajo a arriba. Es decir, respecto a la pieza, se puede decir que X sería el ancho, Y la profundidad o largo, y Z el alto.
- F: indicará la velocidad a la que se mueve el cabezal de impresión indicada en mm/min.
- E: se refiere a la longitud de la extrusión en milímetros.
- ;: todo el texto que vaya precedido por ; es un comentario y la impresora lo ignora.
- G28: se suele ejecutar al principio para que el cabezal se mueva hasta los topes. Si no se especifican ejes, la impresora moverá los 3, pero si se especifica uno concreto solo lo aplicará a ese.
- G1: es uno de los comandos G más populares, ya que es el que ordena a la impresora 3D que deposite material mientras se mueve de forma lineal hasta la coordenada marcada (X,Y). Por ejemplo, el G1 X1.0 Y3.5 F7200 indica que deposite material a lo largo de la zona marcada por las coordenadas 1.0 y 3.5, y a una velocidad de 7200 mm/min, es decir, a 120 mm/s.
- G0: hace lo mismo que G1, pero sin extruir material, es decir, mueve el cabezal sin depositar material, para aquellos movimientos o zonas en las que no se deba depositar nada.
- G92: ordena a la impresora establecer la posición actual de sus ejes, algo práctico cuando se desea modificar la ubicación de los ejes. Muy usado justo al comienzo de cada capa o en la retracción.
- M104: comando para calentar el extrusor. Se usa al principio. Por ejemplo, M104 S180 T0 indicaría que se caliente el extrusor T0 (si hay doble boquilla sería T0 y T1), mientras que S determina la temperatura, en este caso 180ºC.
- M109: similar al anterior, pero indica que la impresión debe esperar hasta que el extrusor alcance la temperatura antes de continuar con cualquier otro comando.
- M140 y M190: similares a los dos anteriores, pero no llevan parámetro T, ya que en este caso se hace referencia a la temperatura de la cama.
Por supuesto, este G-Code sirve para impresoras tipo FDM, ya que las de resina necesitarán otros parámetros, pero con este ejemplo es suficiente para que comprendas cómo funciona.
Conversiones: STL a…
Por último, otra de las cosas que más dudas genera entre los usuarios, dado la cantidad de formatos diferentes que existen sumando los de los diseños 3D CAD, y los códigos generados por los diferentes slicers, es cómo convertir de uno a otro. Aquí tienes algunos de las conversiones más buscadas:
- Convertir de STL a GCode: se puede convertir con software de slicing, ya que es uno de sus objetivos.
- Pasar de STL a Solidworks: se puede hacer con el propio Solidworks. Abrir > en el explorador de archivos cambia a formato STL (*.stl) > Opciones > cambia Importar como a Cuerpo sólido o Superficie sólida > Aceptar > navega y pulsa sobre el STL que quieres importar > Abrir > ahora podrás ver el modelo abierto y el árbol de características a la izquierda > Imported > FeatureWorks > Recognize Features > y ya estaría listo.
- Convertir una imagen a STL o JPG/PNG/SVG a STL: puedes usar servicios online como Imagetostl, Selva3D, Smoothie-3D, etc., o emplear algunas herramientas de IA, e incluso software como Blender etc., para generar un modelo 3D a partir de la imagen y luego exportar a STL.
- Convertir de DWG a STL: es un archivo CAD, y se puede emplear multitud de software de diseño CAD para hacer la conversión. Por ejemplo:
- AutoCAD: Salida > Enviar > Exportar > ingresar el nombre del archivo > selecciona tipo Litografía (*.stl) > Guardar.
- SolidWorks: Archivo > Guardar como > Guardar como STL > Opciones > Resolución > Fina > Aceptar > Guardar.
- De OBJ a STL: se pueden usar tanto servicios de conversión online, como también algunas herramientas de software local. Por ejemplo, con Spin3D puedes hacer lo siguiente: Añadir archivos > Abrir > elegir una carpeta destino en Guardar en carpeta > Selecciona Formato de salida > stl > pulsa el botón Convertir y espera a que termine el proceso.
- Pasar de Sketchup a STL: lo puedes hacer con el propio Sketchup de forma fácil, ya que tiene función tanto para importar como para exportar. En este caso se necesita exportar siguiendo los pasos cuando tienes el archivo de Sketchup abierto: Archivo > Exportar > Modelo 3D > elige dónde guardar el STL > Guardar como STereolithography File (.stl) > Exportar.
Más información
- Mejores impresoras 3D de resina
- Escáner 3D
- Repuestos de impresoras 3D
- Filamentos y resina para impresoras 3D
- Mejores impresoras 3D industriales
- Mejores impresoras 3D para el hogar
- Mejores impresoras 3D baratas
- Cómo elegir la mejor impresora 3D
- Tipos de impresoras 3D
- Guía de introducción a la impresión 3D
Perfecto muy bien explicado y muy clarito.
Gracias por la sintesis.
Muchas gracias!