STL in OBJ umwandeln

STL kannst du hier kostenlos und ohne Konto in OBJ umwandeln: Datei oben ablegen, und ein, zwei Sekunden später steht das Ergebnis zum Herunterladen bereit. Die Umwandlung läuft in deinem eigenen Browser, die Datei wird also nie hochgeladen — das klappt unter Windows, macOS und Linux ebenso wie auf iPhone und Android, und es funktioniert selbst dann noch, wenn du das Netz abschaltest.

  • Wo es läuft In deinem Browser. Die Datei wird nicht hochgeladen.
  • Neu aufgebaut OBJ funktioniert anders als STL. Es ist also nicht der schleichende Qualitätsverlust eines verlustbehafteten Codecs: Was OBJ ausdrücken kann, wird originalgetreu wiedergegeben — was dort keine Entsprechung hat, bleibt ganz weg.
  • Größenbegrenzung Bis 100 MB pro Datei, kostenlos und ohne Konto.
  • Gut zu wissen Nur die Geometrie. Materialien, Farben, Texturen und Animation kommen nicht mit, und ein mehrfach platziertes Modell kommt so zurück, dass jede Kopie fest an ihrer eigenen Position sitzt.

Bis zu 100 Dateien auf einmal. Gemischte Formate sind kein Problem.

Ein STL ist zum Drucken gemacht und nicht zum Weiterarbeiten

STL existiert, um geschnitten zu werden. Es trägt Dreiecke und sonst nichts — genau das, was ein Slicer braucht, und genau das, was eine Modelliersoftware nicht gebrauchen kann: keine Gruppen zum Isolieren, keine Materialien, keine Namen zum Suchen und, das ist der entscheidende Punkt, keine gemeinsam genutzten Eckpunkte. Jede Arbeit am Netz beginnt damit, einen Teil davon auszuwählen, und ein STL bietet dafür keinen Ansatzpunkt.

OBJ ist die entgegengesetzte Art Datei: Text, indiziert, gruppiert, überall importierbar und so alt, dass selbst ein Programm von 1998 es liest. Es ist nicht das grundsätzlich bessere Format — es ist das Format, das jedes Werkzeug in einer Modellierkette als selbstverständlich behandelt. Und darum geht es, wenn der nächste Schritt in fremder Software stattfindet: im Makerspace, im Konstruktionsbüro, bei der Kollegin, die mit Blender arbeitet, während du aus FreeCAD kommst.

Das Verschweißen der Eckpunkte ist der eigentliche Gewinn

Ein Würfel besteht im STL aus zwölf Dreiecken mit sechsunddreißig Eckpunkten, weil jedes Dreieck seine drei Ecken für sich allein mitbringt und die acht echten Ecken vier- oder fünfmal geschrieben werden. Importiert man das unverändert, ist jedes Dreieck eine eigene Insel: Verknüpftes auswählen erwischt eine Fläche, eine Kantenschleife findet nichts, Unterteilen reißt Lücken, und weiche Schattierung hat keine gemeinsamen Normalen zum Mitteln — die Oberfläche bleibt facettiert, was man auch einstellt.

Deshalb werden hier deckungsgleiche Eckpunkte zusammengelegt, bevor irgendetwas geschrieben wird. Verglichen wird auf sechs Nachkommastellen gerundet, denn zwei Dreiecke, die an einer Kante zusammenstoßen, sind sich in der letzten Stelle einer Gleitkommazahl regelmäßig uneinig. Sechs Stellen liegen weit unter jeder druckbaren Toleranz und weit über diesem Rauschen. Der Würfel kommt mit acht Eckpunkten und zwölf Flächen heraus, und das ist ein Netz in dem Sinn, den ein Modellierer meint: zusammenhängend, auswählbar, unterteilbar, weich schattierbar.

Was in der OBJ-Datei tatsächlich steht

Eine Kommentarzeile, eine o-Zeile für die eine Gruppe, dann je eine v-Zeile pro Eckpunkt und eine f-Zeile pro Dreieck. Mehr ist es nicht. Die Nummerierung beginnt bei eins, wie es OBJ verlangt, und zählt über die ganze Datei hinweg statt je Gruppe neu.

Es gibt keine vt-Zeilen, weil ein STL keine Texturkoordinaten kennt, keine vn-Zeilen, weil sich Normalen ableiten lassen, keine usemtl-Zeile, weil es kein Material gibt, und keinen Verweis auf eine Materialbibliothek, weil es keine gibt. Alles, was OBJ öffnet, liest diese Datei; es steht nichts darin, worüber ein Importeur anderer Meinung sein könnte.

Die eine Gruppe, und wie du die Teile hinterher trennst

Ein STL kennt den Begriff Objekt nicht, also hat die OBJ-Datei genau eine Gruppe, und sie heißt mesh_1. Eine Baugruppe aus Körper, Deckel und Griff kommt als eine Gruppe an, in der drei nicht zusammenhängende Schalen liegen.

Jedes Modellierprogramm kann das auftrennen. In Blender heißt der Befehl im Bearbeitungsmodus Trennen nach losen Teilen, MeshLab hat Split in Connected Components, Maya und 3ds Max haben jeweils eine Entsprechung. Was keines davon kann, ist die Namen zurückholen, denn das STL hatte nie welche. Wenn Namen wichtig sind und du Einfluss auf die Quelldatei hast, führen 3MF und OBJ sie mit, STL nie.

Es werden keine Normalen geschrieben, und das ist die richtige Entscheidung

Ein STL speichert je Dreieck eine Flächennormale. Sie landet nicht in der OBJ-Datei, und es geht dabei nichts verloren: Eine Flächennormale ergibt sich vollständig aus der Reihenfolge, in der die drei Ecken notiert sind, und jedes Programm rechnet sie beim Import ohnehin neu aus. Mehrere Slicer ignorieren den gespeicherten Wert grundsätzlich, gerade weil ihn so viele schreibende Programme falsch setzen.

Interessanter ist das Fehlen von Eckpunktnormalen. Ohne sie berechnet der Importeur eigene, was bei einem verschweißten Netz bedeutet, dass über die gemeinsamen Eckpunkte gemittelt wird — das Modell kommt also so an, dass du weich oder hart schattieren kannst, wie du möchtest, und die Entscheidung liegt in deinem Programm statt in der Datei. Bei einem umgewandelten CAD-Export bringt ein Kantenwinkel oder ein Schärfe-Schwellwert in einem Schritt die knackigen Fasen und die glatten Zylinder gleichzeitig.

Woran erkannt wird, ob dein STL binär oder Text ist

Beide Spielarten werden gelesen, und die Datei selbst sagt nicht, welche vorliegt. Der übliche Test — fängt die Datei mit dem Wort solid an? — ist falsch, denn ein binäres STL darf in seinen achtzig Kopfbytes beliebiges stehen haben, und mehrere Programme schreiben dort genau dieses Wort hinein. Heraus kommt eine Datei, die wie Text aussieht und keiner ist.

Verlässlich ist Arithmetik: Ein binäres STL ist exakt 84 + 50n Byte groß, wobei n die im Kopf angegebene Anzahl Dreiecke ist, und sonst nichts ergibt diese Rechnung. Genau das wird geprüft. Geht sie nicht auf, wird die Datei als Text gelesen und jede vertex-Zeile ausgewertet. Eine Datei, die weder das eine noch das andere ist — abgeschnitten oder nur dem Namen nach ein STL —, endet mit einer Meldung statt mit einem leeren Netz.

Millimeter: keines der beiden Formate sagt, worin gemessen wird

Das ist die Falle, in die beim ersten Import fast jeder tappt, und sie kostet Zeit, weil das Ergebnis nicht falsch aussieht, sondern nur falsch groß ist. Weder STL noch OBJ tragen eine Einheit in der Datei. In der Druck- und CAD-Welt ist stillschweigend Millimeter gemeint; eine Blender-Szene rechnet in Metern. Ein 60 Millimeter großes Bauteil steht dann als sechzig Meter in der Szene.

Der zweite Punkt beim Import ist die Hochachse. OBJ hat dafür keine Festlegung, und Blenders Importeur nimmt standardmäßig Y nach oben an, während ein STL aus einem Druck- oder Konstruktionsablauf fast immer Z nach oben verwendet — das Modell liegt sonst auf dem Gesicht. Beides ist in den Importeinstellungen mit zwei Klicks erledigt, wenn man vorher weiß, dass man hinsehen muss. Danach lohnt bei jedem umgewandelten CAD-Netz noch ein Nach Abstand zusammenführen mit sehr kleinem Schwellwert: Es fängt das ab, was das Verschweißen auf sechs Stellen nicht erwischt hat, weil die Ausgangsgeometrie tatsächlich auseinanderlag.

Wie groß die OBJ-Datei gegenüber dem STL wird

Zwei Wirkungen ziehen in verschiedene Richtungen. Das Verschweißen räumt den größten Teil der Doppelung weg: In einem üblichen Netz gehört jeder Eckpunkt zu fünf oder sechs Dreiecken, und ungefähr um diesen Faktor schrumpft die Eckpunktliste. Der Textcharakter bläht das Übriggebliebene wieder auf, denn aus einer Vier-Byte-Zahl werden zehn bis fünfzehn Zeichen in Dezimalschreibweise, und die Flächenzeilen kommen dazu.

Unterm Strich landet man meist in derselben Größenordnung, mit der OBJ-Datei etwas über dem binären STL — ein Aufschlag, keine Vervielfachung. Die Obergrenze hier liegt bei 100 MB je Datei, was rund zwei Millionen Dreiecken entspricht. Ein Netz dieser Dichte ist ohnehin mehr, als eine Modelliersitzung angenehm handhabt; ist dein STL wirklich so groß, ist Reduzieren vor dem Umwandeln schneller als danach.

Dreiecke bleiben Dreiecke, auch nach dem Verschweißen

Das Netz ist danach zusammenhängend und besteht trotzdem vollständig aus Dreiecken, denn mehr hat das STL nie enthalten. Vierecke und Vielecke lassen sich nicht zurückgewinnen: Die Information darüber, welche zwei Dreiecke einmal ein Viereck waren, steht nicht in der Datei und ist auch nicht zuverlässig zu erraten. Sculpting, boolesche Operationen, Reduzieren und Messen funktionieren mit Dreiecken einwandfrei.

Schlecht funktioniert alles, was auf sauberen Kantenverlauf angewiesen ist, vor allem das Modellieren mit Unterteilungsflächen. Wenn du an diesem Modell wirklich weiterarbeiten und nicht bloß eine Änderung anbringen willst, ist ein Neuaufbau der Topologie der ehrliche nächste Schritt — Quadriflow in Blender, ZRemesher in ZBrush oder InstantMeshes liefern in einem Durchgang ein Viereckenetz, und die umgewandelte OBJ-Datei ist für alle drei eine gute Eingabe.

Der Rückweg nach STL, wenn am Ende gedruckt werden soll

Die meisten kommen wegen einer einzigen Änderung hierher — ein Loch versetzen, eine Beschriftung anbringen, zwei Teile zusammenführen — und brauchen danach wieder ein STL für den Slicer. Dieser Weg ist auf dieser Seite genauso vorhanden, und er schreibt ein binäres STL statt eines Textmodells: Das ist das kompaktere Format und das, was jeder Slicer erwartet.

Beim Herausschreiben wird für jedes Dreieck die Flächennormale neu aus der Reihenfolge seiner Ecken berechnet, statt einen gespeicherten Wert weiterzureichen. Das ist die verlässlichere Richtung, denn ein Normalenwert, der nicht zur Wicklung passt, ist die häufigste Ursache dafür, dass ein Slicer eine Fläche für die Innenseite hält. Was auf dem Rückweg verschwindet, ist alles, was du im Modellierprogramm an Gruppen, Namen und Materialien angelegt hast — STL kennt nach wie vor nur Dreiecke.

Farben und Materialien gibt es hier nicht, in keiner Richtung

Übertragen wird ausschließlich Geometrie: wo die Dreiecke liegen. Materialien, Farben, Texturen, Animationen und der Aufbau der Szene bleiben zurück, und zwar auf jedem Weg zwischen den 3D-Formaten dieser Seite, nicht nur auf diesem. Das ist eine bewusste Festlegung und keine Lücke, die noch geschlossen wird.

Bei STL fällt sie ohnehin kaum ins Gewicht, denn das Format hat für Farbe nie eine anerkannte Festlegung gehabt. Es gibt Erweiterungen, die die zwei ungenutzten Bytes je Dreieck für einen Farbwert benutzen, und es gibt mehrere davon, die sich widersprechen — der Grund, warum ein farbiges STL zwischen zwei Programmen fast nie farbig ankommt. Wenn Farbe pro Teil oder pro Fläche wirklich mitreisen soll, ist 3MF das Format, das dafür gebaut wurde, und der Umstieg lohnt sich früher als der Versuch, STL etwas beizubringen.

Warum die Datei deinen Rechner nicht verlässt

Gerechnet wird in diesem Browserreiter, mit gewöhnlichem JavaScript. Es wird kein WebAssembly-Paket nachgeladen, nichts hochgeladen, es gibt kein Konto und kein Tageskontingent. Wer das nachprüfen will, öffnet den Netzwerk-Reiter der Entwicklerwerkzeuge und wandelt etwas um — genau dafür ist er da.

Bei 3D-Daten ist das öfter relevant, als es klingt. Ein STL ist häufig fremde Konstruktion: das Teil eines Auftraggebers, die Geometrie eines Lieferanten, eine Baugruppe unter Geheimhaltungsvereinbarung — und die Bearbeitung, um die es auf dieser Seite geht, ist genau die Situation, in der das zutrifft. Und wenn das Modell aus einer Plattform wie Printables oder Thingiverse stammt, lohnt vor dem Verändern ein Blick auf die Lizenz: Viele Modelle stehen unter Creative-Commons-Bedingungen, die Bearbeitungen erlauben, aber Namensnennung verlangen und die gewerbliche Nutzung ausschließen. Eine Umwandlung, die die Datei nie verschickt, umgeht diese Fragen nicht — sie stellt nur sicher, dass wenigstens der technische Teil keine neue aufwirft.

STL in OBJ umwandeln — so geht es

  1. Leg deine STL-Datei auf dieser Seite ab, oder klick, um eine auszuwählen.
  2. Wähl OBJ als Ziel. Die Umwandlung läuft in deinem Browser, die Datei wird nicht hochgeladen.
  3. Lade die fertige OBJ-Datei herunter.

STL und OBJ im Vergleich: was sich ändert

STL im Vergleich zu OBJ
STLOBJ
Vollständiger NameStereolithographyWavefront-Objekt
Dateiendung.stl.obj
Medientypmodel/stlmodel/obj
Erstmals veröffentlicht19871992
Herausgegeben von3D SystemsWavefront Technologies
LizenzlageOffener StandardOffener Standard
Heutiger StandAktuellAktuell
Öffnet im BrowserKein BrowserKein Browser
Stattdessen erwogen3MF, PLYGLTF, PLY

Das Ergebnis öffnen

Blender liest sowohl STL als auch OBJ — du kannst das Ergebnis also gegen das Original prüfen, ohne ein zweites Programm zu brauchen.

Wofür die beiden Formate gedacht sind

Die beiden zielen auf verschiedene Arbeit: STL auf den 3D-Druck, OBJ auf den Austausch zwischen Programmen und die Bearbeitung. Das lohnt sich vorher abzuwägen — der Grund, aus dem es das eine gibt, ist meist der Grund, aus dem das andere unpraktisch ist.

OBJ kommt von Wavefront Technologies und stammt aus 1992. Blender, MeshLab und Maya lesen das Format.

STL zu OBJ: häufige Fragen

Werden meine STL-Dateien irgendwo hochgeladen?

Nein. Diese Umwandlung läuft vollständig in deinem Browser, die Datei verlässt dein Gerät also nicht. Du kannst das selbst nachprüfen: Öffne den Netzwerk-Tab der Entwicklerwerkzeuge und wandle etwas um. Zu sehen sind die Seite selbst und die Statistik- und Werbeanfragen, mit denen dieser Dienst bezahlt wird — und keine einzige, die deine Datei trägt.

Ist das Umwandeln von STL in OBJ kostenlos?

Ja. Kein Konto, kein Wasserzeichen und kein Tageskontingent, das sich verbraucht — es läuft auf deinem eigenen Rechner, du darfst also so oft wiederkommen, wie du willst. Dateien bis 100 MB verarbeitet der Browser, 100 auf einmal.

Geht beim Umwandeln von STL in OBJ Qualität verloren?

STL und OBJ beschreiben Inhalte auf grundverschiedene Weise. Die Umwandlung ist deshalb ein Nachbau und keine Kopie: originalgetreu, aber nicht Byte für Byte dasselbe. Nur die Geometrie. Materialien, Farben, Texturen und Animation kommen nicht mit, und ein mehrfach platziertes Modell kommt so zurück, dass jede Kopie fest an ihrer eigenen Position sitzt.

Muss ich etwas installieren, um OBJ-Dateien zu öffnen?

Für die Umwandlung selbst nicht — sie läuft in dem Browser, den du ohnehin offen hast. Zum Öffnen brauchst du danach das Programm, das auf deinem Gerät üblicherweise Wavefront Object anzeigt.

Mehr über diese Formate