Cookies de estadística y publicidad
Usamos cookies de estadística y de publicidad, y ambas van a Google. Si rechazas, para ti no cambia nada visible.Ir a la página de privacidad
Aquí puedes convertir STL a OBJ gratis y sin cuenta: suelta el archivo arriba y en un par de segundos tienes el resultado listo para descargar. La conversión ocurre en tu propio navegador, así que el archivo no se sube nunca. Funciona igual en Windows, macOS y Linux que en iPhone y Android, y sigue funcionando aunque cortes la conexión.
Hasta 100 archivos a la vez. Mezclar formatos no es problema.
Se convierten uno tras otro y vuelven juntos en un ZIP.
STL a OBJ
STL existe para laminarse. Lleva triángulos y nada más, que es justo lo que un laminador quiere y justo lo que un programa de modelado no: sin grupos que aislar, sin materiales que asignar, sin nombres que buscar y, sobre todo, sin vértices compartidos. Todo lo que hace un modelador empieza por seleccionar una parte de la malla, y un STL no le ofrece nada que seleccionar.
OBJ es el tipo de archivo contrario: texto, indexado, agrupado, importado por todo y lo bastante antiguo como para que lo lea un programa de 1998. No es mejor formato que STL en abstracto; es el formato que cualquier herramienta de una cadena de modelado trata como opción por defecto, que es exactamente lo que quieres cuando el siguiente paso está en el programa de otra persona.
Un cubo dentro de un STL son doce triángulos con treinta y seis vértices, porque cada triángulo lleva sus tres esquinas por separado y las ocho esquinas reales están escritas cuatro o cinco veces cada una. Importa eso sin tocar y cada triángulo es su propia isla: seleccionar lo enlazado coge una cara, seleccionar un bucle no encuentra bucle, subdividir abre huecos y el sombreado suave no tiene normales compartidas que promediar, así que la superficie sigue facetada pongas lo que pongas.
El lector de este sitio fusiona los vértices coincidentes antes de escribir nada. La clave de comparación se redondea a seis decimales, porque dos triángulos que se tocan en una arista discrepan con toda normalidad en el último bit de un número en coma flotante: seis decimales están muy por debajo de cualquier tolerancia imprimible y muy por encima del ruido. El cubo sale con ocho vértices y doce caras, que es una malla en el sentido en el que un modelador usa la palabra.
Una línea de comentario, una línea «o» que nombra el único grupo, después una línea «v» por vértice y una línea «f» por triángulo. Ese es el archivo entero. Los índices empiezan en uno, como exige OBJ, y se cuentan a lo largo de todo el archivo y no por grupo.
No hay líneas «vt» porque un STL no tiene coordenadas de textura, ni «vn» porque las normales se pueden deducir, ni «usemtl» porque no hay material, ni referencia «mtllib» porque no hay biblioteca de materiales que referenciar. Cualquier cosa que abra OBJ va a leerlo; no queda nada raro dentro sobre lo que dos importadores puedan discrepar.
Un STL no tiene concepto de objeto, así que el OBJ sale con un grupo y ese grupo se llama mesh_1. Un modelo montado a partir de un cuerpo, una tapa y un asa llega como un solo grupo con tres cascarones desconectados dentro.
Todos los programas de modelado saben partir eso. Blender lo hace con «Separar por partes sueltas» en modo edición, MeshLab tiene «Split in Connected Components» y Maya y 3ds Max tienen su equivalente. Lo que ninguno puede hacer es recuperar los nombres, porque el STL nunca los tuvo. Si los nombres importan y tienes alguna influencia sobre el archivo de origen, 3MF y OBJ los conservan y STL nunca lo hará.
Un STL guarda una normal por cara. No se escribe en el OBJ y no se pierde nada: la normal de una cara queda completamente determinada por el orden de giro de sus tres esquinas, y todos los programas la recalculan al importar. Varios laminadores ignoran el valor guardado por completo, precisamente porque muchos escritores lo ponen mal.
La ausencia de normales por vértice es más interesante. Sin ellas, el importador calcula las suyas, y en una malla soldada eso significa promediar entre los vértices compartidos, de modo que el modelo llega listo para sombrearse suave o plano según elijas, con la decisión viviendo en tu programa y no cocida dentro del archivo. En un volcado de CAD convertido, añadir un umbral de aristas marcadas te da los chaflanes nítidos y los cilindros suaves en un solo paso.
Se convierten los dos dialectos y el archivo no dice cuál es. La prueba habitual —¿empieza por la palabra «solid»?— está mal, porque un STL binario puede llevar cualquier cosa en sus ochenta bytes de cabecera y varios escritores ponen ahí precisamente esa palabra, con lo que se produce un archivo que parece texto y no lo es.
La prueba fiable es aritmética: un STL binario mide exactamente 84 más 50 por el número de triángulos que declara su cabecera, y ninguna otra cosa mide eso. Es lo que se comprueba. Si la cuenta no cuadra, el archivo se descodifica como texto y se leen todas sus líneas de vértice. Un archivo que no sea ninguna de las dos cosas —truncado, o STL solo en el nombre— se detiene con un mensaje en vez de producir una malla vacía.
Hay un lector muy concreto detrás de esta página en España y en América Latina: el taller de un ciclo de Formación Profesional, un fablab municipal, el laboratorio de prototipos de una escuela de ingeniería, la pequeña ortopedia que adapta una férula. En todos esos sitios la pieza llega ya como STL, porque es lo que exporta el CAD del cliente y lo que sale de un repositorio de modelos, y hay que modificarla en lugar de imprimirla tal cual.
La herramienta de modelado suele ser Blender o MeshLab, por licencia y por presupuesto, y ambas importan STL sin protestar. El problema no es abrirlo: es que después no se puede seleccionar nada. Convertirlo pasando por la soldadura de vértices es la diferencia entre pelearse con una nube de triángulos sueltos y trabajar con una malla normal, y es un paso que dura un segundo.
Hay dos ajustes que conviene mirar en la importación. El eje vertical: OBJ no tiene convención al respecto y el importador de Blender asume que la Y apunta hacia arriba, mientras que un STL salido de CAD o de impresión casi siempre tiene arriba la Z, así que el modelo llega tumbado si no lo cambias.
Y la escala: ninguno de los dos formatos declara unidad, de modo que si el STL estaba en milímetros, una escena de Blender en metros va a tratar una pieza de 60 mm como sesenta metros. Después de importar, el primer movimiento útil en cualquier malla de CAD convertida es fusionar por distancia con un umbral muy pequeño, que atrapa lo que la soldadura a seis decimales no cogió porque la geometría de origen discrepaba de verdad.
La malla queda soldada y sigue siendo enteramente de triángulos, porque es todo lo que el STL contenía. Los cuadriláteros y los polígonos de más lados no se pueden recuperar: la información sobre qué parejas de triángulos fueron un cuadrilátero no está en el archivo y no se deduce de forma fiable. Esculpir, hacer operaciones booleanas, decimar y medir funcionan bien sobre triángulos.
Lo que no funciona bien es el modelado con superficies de subdivisión y cualquier flujo de trabajo que dependa de un flujo de aristas limpio, que quieren cuadriláteros. Si vas a seguir trabajando sobre este modelo en lugar de hacerle un cambio y devolverlo, retopologizar es el paso honesto: el remallado cuadrangular de Blender, ZRemesher o InstantMeshes te dan una malla de cuadriláteros en una pasada, y el OBJ convertido es una entrada perfectamente válida para cualquiera de ellos.
Esta conversión mueve geometría: dónde están los triángulos, y nada más. No hay materiales, ni texturas, ni coordenadas UV, ni colores por vértice, ni cámaras, ni luces, ni animación, ni grafo de escena. Y en este par concreto eso no cuesta nada, porque el STL tampoco tenía ninguna de esas cosas.
La consecuencia práctica es que no se genera ningún archivo MTL al lado y el OBJ no referencia ninguno, de modo que tu programa aplicará su material por defecto. Si esperabas un color, tendrás que ponerlo tú. Donde esto sí importa es en la dirección contraria y con otros formatos de origen: convertir un GLB con texturas a OBJ deja las texturas fuera por la misma razón, y ahí sí hay pérdida real.
Hay dos efectos que tiran en direcciones opuestas y ninguno de los dos se puede resumir en un factor. La soldadura elimina la mayor parte de la duplicación: en una malla típica cada vértice lo comparten cinco o seis triángulos, así que la lista de vértices se encoge más o menos en esa proporción. El texto expande lo que queda: un número en coma flotante de cuatro bytes pasa a ser una tirada de cifras decimales, y las líneas de caras añaden lo suyo.
Qué gana de los dos depende de la malla concreta, así que lo sensato es convertir y mirar en lugar de fiarse de una regla. El techo gratuito es de 100 MB por archivo, y una malla que se acerque a esa cifra ya es más densa de lo que casi ninguna sesión de modelado necesita. Si el STL es muy grande, decimar antes de convertir es más rápido que decimar después.
En esta pestaña, con JavaScript corriente. No se descarga ningún módulo de WebAssembly, no se sube nada, no hay cuenta y no hay cuota diaria; abrir la pestaña de red del navegador y convertir algo es la forma de comprobarlo en vez de creérselo.
Un STL es con muchísima frecuencia el diseño de otra persona: la pieza de un cliente, la geometría de un proveedor, un componente cubierto por un acuerdo de confidencialidad. Y el trabajo de modelado del que trata esta página es justo la situación en la que eso es cierto. Una conversión que no envía el archivo a ninguna parte evita la pregunta en lugar de tener que responderla.
| STL | OBJ | |
|---|---|---|
| Nombre completo | Stereolithography | Objeto Wavefront |
| Extensión de archivo | .stl | .obj |
| Tipo de medio | model/stl | model/obj |
| Publicado por primera vez | 1987 | 1992 |
| Publicado por | 3D Systems | Wavefront Technologies |
| Licencia | Estándar abierto | Estándar abierto |
| Situación actual | Vigente | Vigente |
| Se abre en el navegador | Ningún navegador | Ningún navegador |
| Considerado en su lugar | 3MF, PLY | GLTF, PLY |
Blender lee tanto STL como OBJ, así que puedes comparar el resultado con el original sin un segundo programa.
Los dos apuntan a trabajos distintos: STL a la impresión 3D y OBJ a mover datos entre programas y la edición. Conviene sopesarlo antes, porque la razón de ser de uno suele ser la razón por la que el otro resulta incómodo.
OBJ viene de Wavefront Technologies y es de 1992. Blender, MeshLab y Maya lo leen.
No. Esta conversión ocurre por completo en tu navegador, así que el archivo no sale de tu dispositivo. Puedes comprobarlo tú: abre la pestaña de red de las herramientas de desarrollo y convierte algo. Verás la propia página y las peticiones de estadística y publicidad con las que se paga este servicio, y ni una sola que lleve tu archivo.
Sí. Sin cuenta, sin marca de agua y sin cupo diario que se gaste: se ejecuta en tu propio equipo, así que puedes volver tantas veces como quieras. El navegador procesa archivos de hasta 100 MB, 100 a la vez.
STL y OBJ describen el contenido de maneras radicalmente distintas. La conversión es por tanto una reconstrucción y no una copia: fiel, pero no idéntica byte a byte. Solo la geometría. Los materiales, los colores, las texturas y la animación no viajan, y un modelo colocado varias veces vuelve con cada copia fijada en su propia posición.
Para la conversión no: ocurre en el navegador que ya tienes abierto. Para abrir el resultado necesitas después el programa con el que tu dispositivo muestra normalmente Wavefront Object.