Wie kann ich aus einer STL-Datei das Volumena raus lesen/berechnen?
Ich möchte aus einer STL-Datei das Volumen raus lesen,
habe im internet einiges über numpy-stl gelesne, aber kommt damit auch nicht weiter,
kann mir jemand weiter helfen? Möchte ein Programm in Python programmieren, dass die Volumen einer STL-Datei liest.
1 Antwort
Siehe:
https://stackoverflow.com/questions/1838401/general-formula-to-calculate-polyhedron-volume
Das scheint genauso zu finktionieren, wie die Flächenberechnung eines geschlossenen Polygonzugs.
Du wählst schlicht einen Punkt und bildest dann für jedes dreieckige Face der Mesh ein Tetraeder,d essen Volumen du berechnest. Diese Volumen addierst du dann auf.(Dabei muss das Vorzeichen der Volumenberechnungen unverändert bleiben.)
Das funktioniert, sofern deine Faces alle korrekt ausgerichtet sind, als die vertices dieser entsprechend so angegeben werden, dass diese auf einer Fläche der überall gegen bzw. im Uhrzeigersinn gelesen werden können.
Folgende Seite schlägt noch einen anderen Algorithmus vor, der auch mit nicht-konvexen meshes finktionieren soll:
https://math.stackexchange.com/questions/803076/how-to-calculate-volume-of-non-convex-polyhedron
Ich bin mir nicht sicher, inwieweit dei Algoritmen äquivalent sind oder für welche Meshes sie tatsächlich funktionieren.
Der Algorithmus,d er im wzeiten Link genannt wurde, lässt sich auf jeden falla uch anderswo finden:
https://wwwf.imperial.ac.uk/~rn/centroid.pdf
Siehe auch: