Hallo,
STL ist sowas wie das simpelste Format für 3D Körper. Das verstehen alle CAD-Programme. Außerdem wird es AFAIK als Datenquelle für 3D-Drucker genutzt.
Wenn du mal den Wikipedia-Artikel liest, sollte es eigentlich klarer sein.
Gruß, noisefloor
CAD STEP EXPORT
- noisefloor
- User
- Beiträge: 3843
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Ich habe programmiertechnisch mit beiden Varianten noch nicht gearbeitet. Ich möchte mir nun so eine Art Flächenkörper ins CAD holen. Wenn das mit dem Mesh geht, dann ist das auch OK für mich. Mit numpy habe ich auch bei Matplotllib schon gearbeitet. Das würde scih also anbieten.
@stefanxfg:
Mit Hilfe des Links von noisefloor kannst du ja nachvollziehen wie eine .stl aufgebaut ist.
Wenn man davon ausgeht, dass deine Kurvenzüge auf der y-z-Ebene liegen, nur in z-Richtung zueinander verschoben sind und jeweils die gleiche Anzahl von Punkten haben, dann:
- musst du die Fläche, die zwischen Kurvenzug 1 und Kurvenzug 2 in Dreiecke aufteilen
- den Normalenvektor für jedes Dreieck berechnen/erzeugen
- alles im entsprechenden Format in eine .stl packen
Siehe auch http://pythonhosted.org/numpy-stl/usage ... -and-faces
Im Grunde hast du ja deine Punkte der Kurvenzügen (vertices).
Dann musst du noch deine Einzelflächen (faces) aus den zur Verfügung stehenden Punkten (vertices) definieren und wie
im Link die zugehörigen Normalenvektoren erzeugen
Eine Einzelfläche wäre in deinem Fall
[Koordinanten Punkt1 von Kurvenzug1, Koordinanten Punkt2 von Kurvenzug1, Koordinanten Punkt1 von Kurvenzug2]
wie für diese Fläche der Normalenvektor zu berechnen ist, findest du auch im Link zu numpy-stl.
Um mal bei deinem Minimalbsp. eines Kreisquerschnittes zu bleiben, wird dieser dann im CAD als .stl importiert kein Kreis mehr sein,
sondern ein Polygon, dass je nach Anzahl der Punkte deiner Kurven kantig aussieht.
Interessant wäre noch zu wissen, warum du nicht einfach die Kurvenzüge mittels ihrer Punkte und deren x,y,z Koordinaten in´s CAD importierst
und dort die Fläche/ den Volumenkörper erzeugst? Jedes vernünftige CAD Programm kann Punktewolken importieren, die machen dir daraus auch direkt ne Kurve/ Spline und das Verbinden zu Flächen ist dann auch nicht mehr aufwändig.
Mit Hilfe des Links von noisefloor kannst du ja nachvollziehen wie eine .stl aufgebaut ist.
Wenn man davon ausgeht, dass deine Kurvenzüge auf der y-z-Ebene liegen, nur in z-Richtung zueinander verschoben sind und jeweils die gleiche Anzahl von Punkten haben, dann:
- musst du die Fläche, die zwischen Kurvenzug 1 und Kurvenzug 2 in Dreiecke aufteilen
- den Normalenvektor für jedes Dreieck berechnen/erzeugen
- alles im entsprechenden Format in eine .stl packen
Siehe auch http://pythonhosted.org/numpy-stl/usage ... -and-faces
Im Grunde hast du ja deine Punkte der Kurvenzügen (vertices).
Dann musst du noch deine Einzelflächen (faces) aus den zur Verfügung stehenden Punkten (vertices) definieren und wie
im Link die zugehörigen Normalenvektoren erzeugen
Eine Einzelfläche wäre in deinem Fall
[Koordinanten Punkt1 von Kurvenzug1, Koordinanten Punkt2 von Kurvenzug1, Koordinanten Punkt1 von Kurvenzug2]
wie für diese Fläche der Normalenvektor zu berechnen ist, findest du auch im Link zu numpy-stl.
Um mal bei deinem Minimalbsp. eines Kreisquerschnittes zu bleiben, wird dieser dann im CAD als .stl importiert kein Kreis mehr sein,
sondern ein Polygon, dass je nach Anzahl der Punkte deiner Kurven kantig aussieht.
Interessant wäre noch zu wissen, warum du nicht einfach die Kurvenzüge mittels ihrer Punkte und deren x,y,z Koordinaten in´s CAD importierst
und dort die Fläche/ den Volumenkörper erzeugst? Jedes vernünftige CAD Programm kann Punktewolken importieren, die machen dir daraus auch direkt ne Kurve/ Spline und das Verbinden zu Flächen ist dann auch nicht mehr aufwändig.
Danke für die Erklärung. Der Grund ist, dass ich programmunabhängig bleiben möchte. Als Ergebnis soll die fertige Datei exportiert werden, welche dann vom Benutzer importiert werden kann. Es ist eben eine Erleichterung der Arbeit, wenn man die Umwandlung nicht mehr von Hand machen muss.
Ich werde das mal ausprobieren. Vielleicht kann man dann noch eine Knovertierung von STL zu STEP machen. Oder es ist dann nicht mehr notwendig. Ich hoffe, dass in der STL auch die Informationen stehen, dass das jeweilige CAD dann weiß, dass es sich um Flächen handelt.
Ich habe gerade gesehen, dass man auch direkt von matplotlib ins stl exportieren kann. Vielleicht ist das ja die beste Wahl.
Ich werde das mal ausprobieren. Vielleicht kann man dann noch eine Knovertierung von STL zu STEP machen. Oder es ist dann nicht mehr notwendig. Ich hoffe, dass in der STL auch die Informationen stehen, dass das jeweilige CAD dann weiß, dass es sich um Flächen handelt.
Ich habe gerade gesehen, dass man auch direkt von matplotlib ins stl exportieren kann. Vielleicht ist das ja die beste Wahl.
- noisefloor
- User
- Beiträge: 3843
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Gruß, noisefloor
Äh... STL Daten bestehen _nur_ aus Dreiecksflächen...Ich hoffe, dass in der STL auch die Informationen stehen, dass das jeweilige CAD dann weiß, dass es sich um Flächen handelt.
Gruß, noisefloor