Kurz gesagt, eine STL-Datei speichert Informationen über 3D-Modelle. Dieses Format beschreibt nur die Oberflächengeometrie eines dreidimensionalen Objekts ohne jegliche Darstellung von Farbe, Textur oder anderen gängigen Modellattributen.
Diese Dateien werden in der Regel von einem CAD-Programm (Computer-Aided Design) als Endprodukt des 3D-Modellierungsprozesses erzeugt. ".STL" ist die Dateierweiterung für das STL-Dateiformat.
Das STL-Dateiformat ist das am häufigsten verwendete Dateiformat für den 3D-Druck. Wenn es in Verbindung mit einem 3D-Slicer verwendet wird, ermöglicht es einem Computer die Kommunikation mit 3D-Druckern.
Seit Beginn wurde das STL-Dateiformat von vielen anderen CAD Programmen übernommen und unterstützt. Noch heute wird das Format für Rapid Prototyping, 3D-Druck und computergestützte Fertigung verwendet. Hobbyisten und Profis nutzen es gleichermaßen.
Die wahre Bedeutung der Dateierweiterung .STL ist im Nebel der Zeit untergegangen. Es wird allgemein angenommen, dass es eine Abkürzung des Wortes STereoLithography ist, obwohl es manchmal auch als "Standard Triangle Language" oder "Standard Tessellation Language" bezeichnet wird.
Der Hauptzweck des STL-Dateiformats besteht darin, die Oberflächengeometrie eines 3D Objekts zu kodieren. Es kodiert diese Informationen mithilfe eines einfachen Konzepts namens "Tesselation"(engl. tessellation).
Unter Tessellierung versteht man den Vorgang, eine Fläche mit einer oder mehreren geometrischen Formen so zu kacheln, dass es keine Überlappungen oder Lücken gibt. Wenn Sie schon einmal einen gefliesten Boden oder eine geflieste Wand gesehen haben, ist das ein gutes Beispiel für eine Tessellierung in der Praxis.
Bei der Tessellierung kann es sich um einfache geometrische Formen oder sehr komplizierte (und phantasievolle) Formen handeln. Hier sind einige Beispiele für künstlerische Tessellationen, die dem berühmten Maler M. C. Escher zu verdanken sind.
1987 hatte Chuck Hull gerade den ersten stereolithografischen 3D-Drucker erfunden, und die "Albert Consulting Group for 3D Systems" versuchte, einen Weg zu finden, Informationen über 3D-CAD-Modelle an den 3D-Drucker zu übertragen. Sie erkannten, dass sie Tesselation der Oberfläche des 3D-Modells verwenden konnten, um diese Informationen zu kodieren!
Schauen wir uns ein paar Beispiele an, um zu verstehen, wie das funktioniert. Wenn Sie z. B. einen einfachen 3D-Würfel haben, kann dieser durch 12 Dreiecke abgedeckt werden, wie im Bild unten gezeigt. Wie Sie sehen können, gibt es zwei Dreiecke pro Fläche. Da der Würfel sechs Flächen hat, summiert sich das auf 12 Dreiecke. Wenn Sie ein 3D-Modell einer Kugel haben, dann kann diese durch viele kleine Dreiecke abgedeckt werden, wie auch im gleichen Bild gezeigt.
Die "Albert Consulting Group for 3D Systems" erkannte, dass, wenn sie die Informationen über diese winzigen Dreiecke in einer Datei speichern könnten, diese Datei die Oberfläche eines beliebigen 3D-Modells vollständig beschreiben könnte. Dies bildete die Grundidee für das STL-Dateiformat!
Das STL-Dateiformat bietet zwei verschiedene Möglichkeiten zum Speichern von Informationen über die dreieckigen Facetten, die die Objektoberfläche kacheln. Diese werden als ASCII-Kodierung und als Binärkodierung bezeichnet. In beiden Formaten werden die folgenden Informationen zu jedem Dreieck gespeichert:
Jede STL-Datei in ASCII-Code ist folgendermaßen aufgebaut:
name steht für den Dateinamen, der Block von facet bis endfacet steht für ein Dreieck und wird entsprechend der Anzahl an Dreiecken wiederholt. ni gibt den Normalenvektor des Dreiecks an, v1j bis v3j die x-, y- und z-Koordinate der Eckpunkte des Dreiecks.
Wenn die Tessellierung viele kleine Dreiecke umfasst, kann die ASCII-STL-Datei sehr groß werden. Aus diesem Grund gibt es eine kompaktere Binärversion.
Eine binäre STL-Datei beginnt mit einem Dateikopf (Header) von 80 Bytes. Der Inhalt des Headers wird bei der Verarbeitung meistens ignoriert, (über namhafte Ausnahmen werden wir später mehr erfahren), der Dateikopf darf allerdings nicht mit solid
beginnen, da dies das Schlüsselwort für STL-Dateien im ASCII-Format ist. Auf den Header folgen 4 Bytes, die einen vorzeichenlosen Integer darstellen, welcher die Anzahl der Dreiecke (respektive facet-Einträge) in der Datei angibt.
Danach folgen die Daten für die einzelnen Dreiecke. Die Datei endet nach dem letzten Dreieck. Jedes Dreieck wird durch zwölf Gleitkommazahlen zu je 32 Bit dargestellt: drei für die Normale und drei für die jeweiligen X-,Y- und Z-Koordinaten der Eckpunkte des Dreiecks.
Beachten Sie, dass nach jedem Dreieck eine 2-Byte-Sequenz folgt, welche "Attribute Byte Count" genannt wird. In den meisten Fällen ist diese auf null gesetzt und dient als Abstandhalter zwischen zwei Dreiecken. Manche Software verwenden diese 2 Bytes aber auch, um zusätzliche Informationen über das Dreieck zu kodieren. Wir werden später ein solches Beispiel sehen, bei dem diese Bytes verwendet werden, um Farbinformationen zu speichern.
Für den 3D-Druck muss die STL-Datei in einem speziellen Slicer geöffnet werden. Was ist ein Slicer? Es handelt sich um eine 3D-Drucksoftware, die digitale 3D-Modelle in Druckanweisungen für Ihren 3D-Drucker umwandelt, um ein Objekt zu erstellen.
Der Slicer zerlegt Ihre STL-Datei in Hunderte (manchmal Tausende) von flachen, horizontalen Schichten, basierend auf den von Ihnen gewählten Einstellungen, und berechnet, wie viel Material Ihr Drucker zum Extrudieren benötigt und wie lange er dafür braucht.
Alle diese Informationen werden dann in einer GCode-Datei gebündelt, der Muttersprache Ihres 3D-Druckers. Die Slicer-Einstellungen haben einen Einfluss auf die Qualität Ihres Drucks, daher ist es wichtig, die richtige Software und die richtigen Einstellungen zu verwenden, um die bestmögliche Druckqualität zu erzielen.
Sobald der GCode auf Ihren 3D-Drucker hochgeladen wurde, werden diese separaten zweidimensionalen Schichten im nächsten Schritt als dreidimensionales Objekt auf Ihrem Druckbett wieder zusammengesetzt. Dazu werden eine Reihe dünner Schichten aus Kunststoffen, Metallen oder Verbundwerkstoffen aufgetragen und das Modell Schicht für Schicht aufgebaut.
Leider nicht. Nur eine 3D-Konstruktion, die speziell für den 3D-Druck erstellt wurde, ist 3D druckbar. Die STL-Datei ist nur der Container für die Daten, keine Garantie, dass etwas druckbar ist.
3D-Modelle, die für den 3D-Druck geeignet sind, müssen eine Mindestwandstärke und eine "wasserdichte" Oberflächengeometrie aufweisen. Selbst wenn es auf einem Computerbildschirm sichtbar ist, heißt es nicht das man es auch ausdrucken kann. Außerdem muss man überhängende Elemente am Modell berücksichtigen, diese müssen nämlich gestützt werden.
Wenn Sie eine STL-Datei herunterladen, die Sie nicht selbst erstellt haben, sollten Sie sich die Zeit nehmen, um zu überprüfen, ob sie tatsächlich druckbar ist. Dies erspart Ihnen eine Menge Zeit, Frustration und verschwendetes Filament.
Das STL-Dateiformat approximiert die Oberfläche eines CAD-Modells mit Dreiecken. Die Annäherung ist nie perfekt, und die Facetten bringen Grobheit in das Modell.
Der 3D-Drucker druckt das Objekt mit der gleichen Grobheit wie in der STL-Datei angegeben. Wenn Sie die Dreiecke immer kleiner machen, kann die Annäherung natürlich immer besser werden, was zu einer guten Druckqualität führt. Allerdings steigt mit der Verkleinerung der Dreiecke auch die Anzahl der Dreiecke, die benötigt werden, um die Fläche abzudecken. Dies führt zu einer riesigen STL-Datei, die 3D-Drucker nicht verarbeiten können. Es ist auch mühsam, solche riesigen Dateien zu teilen oder hochzuladen.
Es ist daher sehr wichtig, die richtige Balance zwischen Dateigröße und Druckqualität zu finden. Es macht keinen Sinn, die Größe der Dreiecke endlos lange zu reduzieren, weil Ihr Auge irgendwann nicht mehr zwischen den Druckqualitäten unterscheiden kann.
Die meisten CAD-Programme bieten beim Export von STL-Dateien eine Reihe von Einstellungen an. Diese Einstellungen steuern die Größe der Facetten und damit die Druckqualität und die Dateigröße. Schauen wir uns die wichtigsten Einstellungen an und finden wir ihre optimalen Werte heraus.
In den meisten CAD-Programmen können Sie einen Parameter namens Segmenthöhe (auch Sagitta genannt; engl. chord height) oder Toleranz wählen. Die Segmenthöhe ist der maximale Abstand zwischen der Oberfläche des ursprünglichen Designs und dem STL-Netz. Wenn Sie die richtige Toleranz wählen, sehen Ihre Drucke glatt und nicht pixelig aus. Es ist offensichtlich, dass die Facetten die tatsächliche Oberfläche des Modells umso genauer darstellen, je kleiner die Segmenthöhe ist.
Es wird empfohlen, die Toleranz zwischen 0,01 Millimeter und 0,001 Millimeter einzustellen. Dies führt in der Regel zu einer guten Druckqualität. Es macht keinen Sinn, dies noch weiter zu reduzieren, da 3D-Drucker (noch) nicht mit diesem Detailgrad drucken können.
Die Winkeltoleranz begrenzt den Winkel zwischen den Normalen von benachbarten Dreiecken. Der Standardwinkel ist normalerweise auf 15 Grad eingestellt. Eine Verringerung der Toleranz (die im Bereich von 0 bis 1 liegen kann) verbessert die Druckauflösung. Die empfohlene Einstellung für diesen Parameter ist 0.
Schließlich haben Sie die Wahl, die STL-Datei im Binär- oder ASCII-Format zu exportieren. Das Binärformat wird für den 3D-Druck immer empfohlen, da es zu einer kleineren Dateigröße führt. Wenn Sie die STL-Datei jedoch zur Fehlersuche manuell überprüfen möchten, ist das ASCII-Format vorzuziehen, da es einfacher zu lesen ist.
Das STL-Dateiformat ist nicht das einzige Format, das im 3D-Druck verwendet wird. Es gibt über 30 Dateiformate für den 3D-Druck. Am wichtigsten ist das OBJ-Dateiformat, in dem Farb- und Texturprofile gespeichert werden können. Eine weitere Option ist das Polygon-Dateiformat (PLY), das ursprünglich zum Speichern von 3D-gescannten Objekten verwendet wurde.
In jüngster Zeit gab es Bestrebungen zur Einführung eines neuen Dateityps durch das 3MF Konsortium, das ein neues 3D-Druck-Dateiformat namens 3MF vorschlägt. Sie behaupten, dass es den 3D-Druckprozess rationalisieren und verbessern wird.
Für die Umsetzung hat sich Microsoft mit Unternehmen wie Autodesk, HP und Shapeways zusammengetan, um die Vision Wirklichkeit werden zu lassen. Weitere Details über das 3MF-Konsortium können auf deren Website nachgelesen werden. Es ist jedoch noch viel zu früh, um zu sagen, ob sich dies auf breiter Basis durchsetzen wird.
Da es viele Dateiformate für den 3D-Druck gibt, ist die naheliegende Frage: Welches sollten Sie für Ihre Drucke verwenden? Die Antwort hängt, wie sich herausstellt, stark von Ihrem Anwendungsfall ab.
Wie wir bereits gesehen haben, kann das STL-Dateiformat keine zusätzlichen Informationen wie Farbe, Material usw. der Facetten oder Dreiecke speichern. Es speichert nur Informationen über die Scheitelpunkte und den Normalenvektor. Das bedeutet, dass das STL-Dateiformat nicht die richtige Wahl ist, wenn Sie mehrere Farben oder mehrere Materialien für Ihre Drucke verwenden möchten. Außerdem ist es nicht möglich Metadaten (wie z.B Urheber und Copyright-Informationen) in eine STL-Datei aufzunehmen. Das OBJ-Format ist ein beliebtes Format, das eine gute Unterstützung genießt und eine Möglichkeit zur Angabe von Farbe, Material usw. bietet.
Wenn Sie hingegen mit einer einzigen Farbe oder einem einzigen Material drucken möchten, was meistens der Fall ist, dann ist STL besser als OBJ, da es einfacher ist, was zu kleineren Dateigrößen und schnellerer Verarbeitung führt.
Universell: Ein weiterer großer Vorteil des STL-Dateiformats ist, dass es universell ist und von fast allen 3D-Druckern unterstützt wird. Dies kann nicht für das OBJ-Format gesagt werden, auch wenn es ebenfalls eine angemessene Akzeptanz und Unterstützung genießt. Die Formate VRML, AMF und 3MF werden zum jetzigen Zeitpunkt nicht weit genug unterstützt.
Ausgereiftes Ökosystem: Die meisten druckbaren 3D-Modelle, die Sie im Internet finden, liegen im STL-Dateiformat vor. Die Existenz dieses Ökosystems, kombiniert mit STL-basierten Software-Investitionen von 3D-Druckerherstellern, hat zu einer großen Benutzerbasis geführt, die stark in das Format investiert ist. Das bedeutet, dass es eine Menge Software von Drittanbietern gibt, die sich mit STL-Dateien befasst, was bei den anderen Dateiformaten nicht der Fall ist.
Wenn Ihre 3D-Druckanforderungen einfach sind, dann gibt es vielleicht keinen Grund, vom STL-Dateiformat abzuweichen. Für fortgeschrittenere Drucke mit mehreren Materialien und Farben ist es jedoch vielleicht ratsam, das OBJ oder andere verfügbare Formate auszuprobieren
Der Grund, warum dem STL-Dateiformat Farbinformationen fehlen, ist einfach. Als sich das Rapid Prototyping in den 1980er Jahren entwickelte, dachte niemand an den Farbdruck. Heutzutage haben sich die Materialien und Verfahren für den 3D-Druck rasant weiterentwickelt. Einige ermöglichen den Druck in Vollfarbe - siehe Bild Oben.
Es ist jedoch nicht fair zu sagen, dass STL keine Farben verarbeiten kann. Es stellt sich heraus, dass es nicht-standardisierte Versionen des STL-Formats gibt, die tatsächlich in der Lage sind, Farbinformationen zu speichern.
Die Softwarepakete VisCAM und Solidview verwenden z. B. die "attribute byte count" am Ende jedes Dreiecks, um eine 15-Bit-RGB-Farbe nach folgendem System zu speichern:
Die Materialize Magics Software hingegen verwendet den 80-Byte-Header im Binärformat, um die Gesamtfarbe des 3D-Objekts darzustellen. Die Farbe wird durch Einfügen der ASCII Zeichenkette "COLOR=" angegeben, gefolgt von vier Bytes, die Rot, Grün, Blau und den Alphakanal (Transparenz) im Bereich 0-255 darstellen. Diese Grundfarbe kann auch an jeder Facette mit den "attribute byte count"-Bytes überschrieben werden.
Sie wissen jetzt eine ganze Menge über das STL Dateiformat. Es gibt viele Quellen, Marktplätze und Suchmaschinen im Internet, die Millionen von kostenlosen STL-Dateien enthalten. Schauen Sie hier nach für weiteres: 3D Drucker Vorlagen
Slide
Wir hoffen, dass ein tiefgreifendes Verständnis des STL-Dateiformats Ihnen dabei hilft, ein kenntnisreicherer Benutzer zu werden. 3D Drucker kaufen? Hier mehr Infos.