Как вычислить поверхность и объем большого количества файлов STL?

Пожалуйста, как мне вычислить поверхность и объем большого количества файлов STL ?

У меня более 3000 файлов STL, и я хочу знать их соответствующие объемы и поверхности. Я буду использовать эти данные, чтобы определить самую большую часть, ту, у которой самая большая поверхность и т. Д.

Я обнаружил, что прекрасное программное обеспечение Admesh (включенное в openscad, насколько я знаю), которое может вычислять объем с помощью командной строки (powershell), и при некотором редактировании текста получить объемы для всех этих частей (требуется некоторое терпение), но я не нашел никакого аналогичного инструмента для surface.

Лучшим инструментом было бы вывести такую вещь, как:

вход.stl - 75.554мм2 - 45.547мм3

Я не уверен, что этот пост здесь уместен, но в любом случае, спасибо.

, 👍5

Обсуждение

В зависимости от того, насколько вам удобно программировать, вычислить поверхность довольно просто. Просто суммируйте площадь всех треугольников в файле., @Tom van der Zanden

Ну, дело в том, что я не очень хорошо разбираюсь в программировании. Я много изучаю информатику в целом, но мои навыки программирования ограничены (очень) простыми скриптами, такими как " $ cp -r \some\folder \some\destination\ ; shutdown`. Не то чтобы я не хотел бы узнать об этом, но у меня действительно нет времени... по крайней мере, пока., @42Z0GqNNz

если вы можете найти вес (он же оценка использования филамента) и объем, можете ли вы вычислить поверхность компьютера? идк, @dandavis

@dandavis Я не понимаю, что ты имеешь в виду. Я ищу **поверхность деталей**, которая не зависит от объема (объем и вес являются пропорциональными, а не [плотностью](https://en.wikipedia.org/wiki/Density)). то есть: [эти части](https://www.netfabb.com/sites/default/files/blog/SilverStructures002.jpg) имеют гораздо более высокое отношение поверхности к объему, чем [это one](https://upload.wikimedia.org/wikipedia/commons/thumb/3/31/Pallo_valmiina.jpg/800px-Pallo_valmiina.jpg)., @42Z0GqNNz

[admesh -c](https://admesh.readthedocs.io/en/latest/cli.html) даст вам сводку, которая включает в себя volume, вы colud grep для строки/значения после "volume : ", @esoterik

@esoterik Я уже говорил об этом в своем посте., @42Z0GqNNz


1 ответ


2

Вы можете использовать консоль Python FreeCAD. Выполнение следующих команд

FreeCAD.ActiveDocument.ActiveObject.Shape.Area
FreeCAD.ActiveDocument.ActiveObject.Shape.Volume

выведет площадь и объем объекта соответственно.

Я не знаю, как получить доступ к выводу консоли извне FreeCAD, но в FreeCAD есть опция, называемая Перенаправлением внутреннего вывода Python для представления отчета, которая, я думаю, является тем, что вы ищете.

Возможно, вам захочется ознакомиться с документацией по сценариям FreeCAD для получения дальнейших инструкций.

Using the Python console of FreeCAD to calcaulate area and volume of an object


,

Я совершенно уверен, что Python также можно использовать для полной автоматизации этого процесса, если вы хорошо с ним справляетесь., @Trish

Я ошибаюсь, предполагая, что это потребует от меня импорта файла STL в FreeCAD и обработки тома/поверхности, как описано, выгрузки файла, перезагрузки следующего файла STL? Будет ли ваш ответ подразумевать, что я буду делать это файл за файлом для 3000+ файлов, упомянутых в посте?, @42Z0GqNNz