STL-Schnittstelle

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von STL-Format)
Wechseln zu: Navigation, Suche

Vorlage:Infobox Dateiformat/Wartung/MagischeZahl fehltVorlage:Infobox Dateiformat/Wartung/Standard fehltVorlage:Infobox Dateiformat/Wartung/Website fehlt

STL
Dateiendung: .stl
MIME-Type: application/sla
Entwickelt von: 3D-Systems, Inc.
Erstveröffentlichung: 1989
Art: ASCII, binäres Format
Container für: 3D-Modelle


Bei der STL-Schnittstelle (Surface Tesselation Language; deutsch etwa Sprache zur Beschreibung der Oberfläche durch Dreiecke oder Standard Triangulation Language und mit unbekannter Herkunft auch Standard Tesselation Language) handelt es sich um eine (Quasi-)Standardschnittstelle vieler CAD-Systeme.

Dieses Dateninterface dient hauptsächlich der Bereitstellung geometrischer Informationen aus dreidimensionalen Datenmodellen heraus für die Fertigung mittels generativer Fertigungsverfahren oder Rapid Prototyping-Anlagen.

Die Bezeichnung Stereolithografie-Schnittstelle hat ihre Begründung in der Tatsache, dass Stereolithografie-Anlagen (SLA) die ersten kommerziell verfügbaren Anlagen waren, die eben mit dieser Geometriebeschreibung betrieben wurden.

Definition[Bearbeiten]

Das STL-Format beinhaltet die Beschreibung der Oberfläche von 3D-Körpern mit Hilfe von Dreiecksfacetten (englisch tesselation = „Parkettierung“). Jede Dreiecksfacette wird durch die drei Eckpunkte und die zugehörige Flächennormale des Dreieckes charakterisiert. Diese gesamten geometrischen Werte werden in definierter Form für die weitere Datenaufbereitung (z. B. Positionieren, Slicen) für den Bauprozess benötigt.

Durch die Tatsache, dass mindestens drei Dreiecke, meistens eher vier, fünf oder mehr Dreiecke einen gemeinsamen Eckpunkt besitzen, wird also jeder Punkt mindestens dreimal aufgelistet. Zusätzlich wird die Flächennormale abgespeichert, die sich ebenso gut durch die Reihenfolge bei der Beschreibung eines einzelnen Dreiecks definieren ließe. Dies und die Abspeicherung im ASCII-Code führen dazu, dass die Datenmenge enorme Größen annehmen kann. Das Format existiert auch in einer binär abgespeicherten Variante, was schon eine erhebliche Reduktion ergibt, zusätzlich lässt sich mit Komprimierung eine Reduktion auf handhabbare Dateigrößen erreichen.

Ein Format, das die gleiche Struktur (triangulierte Oberflächen) aufweist, jedoch die Redundanzen (Mehrfachnennungen) vermeidet, ist VRML (Virtual Reality Modeling Language, auch *.vrml). Bei diesem Format gibt es zwei nummerierte Listen: die erste umfasst die Koordinaten der Dreieckseckpunkte, in der zweiten werden die Dreiecke anhand der Positionsnummer der Punkteliste definiert, ebenso die Flächennormale aus der Reihenfolge der Dreieckspunkte. Dieses Geometrieelement ist erforderlich, um Innen- und Außenseite unterscheiden zu können. Um die Oberfläche des Körpers aufzubauen, ist also ein einmaliges Durchlaufen der zweiten Liste der VRML-Datei erforderlich. Beim STL-Format sind die Dreiecke direkt auslesbar, wie oben erwähnt werden die Punkte aber mehrmals gelesen. Der Zeitbedarf für den Aufbau eines virtuellen Modells ist bei beiden Formaten nicht sehr unterschiedlich, aber beim Speicherbedarf und bei der Datenübermittlung ist VRML klar im Vorteil. Aus diesem Grund findet das Format bei Computerspielen, in der „Virtual Reality“ und bei 3D-Anwendungen im Internet seine bevorzugte Verwendung.

Gekrümmte Oberflächen werden durch die Dreiecke nur angenähert. Je geringer die Anzahl der Dreiecke, desto größer sind die Abweichungen; je genauer die Annäherung sein muss, desto mehr Einzeldreiecke sind nötig. Daher steigt die Datenmenge mit höherer Genauigkeit stark an.

Die Beschreibung der Modelloberfläche in Form des STL-Formates stellt faktisch einen Industriestandard dar. VRML wird nicht von allen Systemen korrekt erzeugt oder gelesen, was eine Substitution bisher verhindert hat. VRML bietet die Möglichkeit, die Oberflächen mit Farben oder Texturen zu versehen oder auch eine vierte Dimension, die über eine zeitliche Veränderung von Geometrieelementen (Punktkoordinaten) dargestellt wird. Spätestens hier endet jedoch die Standardisierung (vergleichbar mit den Dialektversionen von NC-Code).

Im STL-Format vorliegende Daten können ohne erneutes Importieren in ein CAD-Programm gedreht und vergrößert oder verkleinert werden, um z. B. die Schrumpfung des Harzes bei der Stereolithografie auszugleichen.

ASCII-Format[Bearbeiten]

Jede STL-Datei in ASCII-Code ist folgendermaßen aufgebaut:

solid name
 facet normal n1 n2 n3
  outer loop
   vertex p1x p1y p1z
   vertex p2x p2y p2z
   vertex p3x p3y p3z
  endloop
 endfacet
endsolid name

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, p1j bis p3j die x-, y- und z-Koordinate der Eckpunkte des Dreiecks.

Binär-Format[Bearbeiten]

Da Modelle im ASCII-Format leicht zu sehr großen Dateien führen, wird häufig im Binär-Format gespeichert. Eine binäre STL-Datei beginnt mit einem Dateikopf (Header) von 80 Bytes. Der Inhalt des Headers wird bei der Verarbeitung ignoriert, er 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 Fließkommazahlen 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. Danach folgen zwei Bytes, die einen vorzeichenlosen Integer darstellen (attribute byte count). In der Regel ist dessen Wert Null, der Großteil der existierenden Software versteht auch keine anderen Werte.

Fließkommazahlen werden nach IEEE 754 dargestellt, wobei die Byte-Reihenfolge Little-Endian verwendet wird.

UINT8[80]         -   Dateikopf (Header)
UINT32            -   Anzahl der Dreiecke

foreach triangle
  REAL32[3]       -    Normalenvektor
  REAL32[3]       -    Vertex 1
  REAL32[3]       -    Vertex 2
  REAL32[3]       -    Vertex 3
  UINT16          -    Attribute byte count
end

Fehler und Probleme[Bearbeiten]

Bei der Umsetzung der CAD-internen Geometriedaten können verschiedene Fehler auftreten. Sie werden wie folgt unterteilt:

Umsetzungsprobleme[Bearbeiten]

  • keine direkte Umsetzung von gekrümmten Formelementen möglich
  • Verzerrung von Formelementen durch den gewählten Approximationsgrad (minimale Größe bzw. maximale Dichte der verwendeten Dreiecksfacetten)

Die Umsetzungsfehler führen zu einer Verfälschung der gefertigten Geometrie im Verhältnis zur konstruktiven Ausgangsbasis. Sie haben jedoch keinen Einfluss auf die Verarbeitbarkeit der Daten auf der Stereolithographieanlage. Die Größe der Fehler hängt vom verwendeten CAD-System mit seinen vorgegebenen Eigenschaften sowie vom Handling des Systems (und speziell der STL-Schnittstelle) durch den Bediener ab. Ein spezieller Einflussfaktor ist der verwendete Approximationsgrad für gekrümmte Formelemente. Dieser definiert die Anzahl der zu verwendenden Dreiecksfacetten pro gekrümmter Fläche und damit die Feinheit der Umsetzung. Je mehr Facetten verwendet werden, umso genauer ist die Beschreibung und umso größer ist die erzeugte Datei. Hier ist ein Kompromiss zwischen Datenmenge und Formabweichung für das zu beschreibende Werkstück zu finden.

Für die Fertigung der Teile sind deshalb diese Werte von grundlegender Bedeutung.

Syntaktische Darstellungsfehler[Bearbeiten]

Beim Auftreten von Fehlern in diesen Datenfiles ist eine Fertigung nur mit Einschränkungen oder überhaupt nicht möglich. Diese Fehler können sein:

  • Lücken zwischen Dreiecksfacetten
  • Doppelte Dreiecksfacetten
  • Falsche Orientierung einzelner Facetten
  • Falten

Weblinks[Bearbeiten]