How do I compute the surface & volume of a large amount of STL files?
Please, how do I compute the surface & volume of a large amount of STL files ?
I have over 3000 STL files, and I want to know their respective volumes and surfaces. I will use this data to be able to identify the biggest part, the one with the biggest surface, etc.
I found that the fine Admesh (included in openscad, as far as I know) software that can compute the volume via command-line (powershell) and with some text editing I can get the volumes for all of these parts (needing some patience), but I didn't find any similar tool for the surface.
The best tool would output such thing as:
input.stl - 75.554mm2 - 45.547mm3
I'm not sure this post is adequate in here, but anyway, thanks.
Well, the fact is that I am not comfortable with programming. I am learning a lot in computer science in general, but my programming skills are limited to (very) simple scripts like `$ cp -r \some\folder \some\destination\ ; shutdown`. Not that I wouldn't like to learn about, but I don't really have the time… yet, at least.
if you can find the weight (aka filament use estimate) and the volume, can you computer surface? idk
@dandavis I don't understand what do you mean. I am searching for the **surface of the parts**, which is independent from the volume (volume and weight being proportionals, tighten by density). i.e.: these parts have a much higher surface over volume ratio than this one.
admesh -c will give you a summary that includes volume, you colud grep for the line/value after "volume : "
@esoterik I already talked about it in my post.
You could use the Python console of FreeCAD. Issuing the following commands
FreeCAD.ActiveDocument.ActiveObject.Shape.Area
FreeCAD.ActiveDocument.ActiveObject.Shape.Volumewill output the area and the volume of the object, respectively.
I don't know how to access the console output from outside FreeCAD, but there is an option in FreeCAD called Redirect internal Python output to report view which I think is what you are looking for.
You might want to look into the Scripting documentation of FreeCAD for further instructions.
I am quite sure, that Python also could be used to automate this fully, if one is good with it.
Am I wrong assuming that this would require me to import STL file to FreeCAD and process the volume/surface as described, unload the file, reload the next STL file? Would your answer implies me to do so file by file for the 3000+ files mentionned in the post?
Tom van der Zanden 4 years ago
Depending on how comfortable you are with programming, calculating the surface is pretty easy. Simply sum the area of all the triangles in the file.