我正在构建一项服务,将 STEP 文件转换为 STL 文件以供用户查看。这种转换只是为了让用户可以查看上传到服务器的文件。它不用于修改文件。
但是,经过测试的转换库无法有效地将STEP转换为STL。
我第一次尝试了 FreeCAD,并发表了以下论坛帖子:https://forum.freecad.org/viewtopic.php?t=79333
如何安装 FreeCAD 进行脚本编写:https://forum.freecad.org/viewtopic.php?t=79327
对于 FreeCAD,代码如下:
Part.open(fileNameFrom) # STEP File on server
Mesh.export( FreeCAD.getDocument("Unnamed").findObjects(), fileNameOut) # STL file on server
但是,FreeCAD 的处理效率非常低,以至于 22 MB STEP 文件在转换两分钟后就输出为 366 MB STL 文件。即使较小的 500 KB 文件仍然会生成 18 MB 的文件输出,并且没有文档指定较低的分辨率以减小文件大小。
我尝试的下一个编码库是cadquery
。服务器的语法和设置很简单,因为与 FreeCAD 不同,该库可以直接从 PIP 安装。
import cadquery as cq
afile = cq.importers.importStep(fileNameFrom)
cq.exporters.export(afile,fileNameOut)
Cad Query 最初表现良好,为相同的 500 KB STEP 测试文件生成 8 MB 输出 STL 文件。但是,22 MB STEP 文件已转换为 386 MB STL 文件。
STEP 文件不够复杂,无法产生这样的文件大小。这是 22 MB STEP 文件:
这是 500 KB STEP 文件:
我可以尝试哪些库可以轻松地将 STEP 转换为 STL,而无需使用大文件?该库最好是 Python 或 Node.js 版本。不过,Java 或 C++ 也是可以接受的;我们的团队可以使用此类服务器。我假设基于 C++ 的库将具有最佳的处理速度。
最佳答案
看看 DG 内核:https://dynoinsight.com/ProDown.htm 。 http://dynoinsight.com/Prod/Examples/InterfaceTestsVC.zip 中的 ModelTest::SetGeometryTypeEx()演示了由偏差定义的不同密度网格的生成。它是 C++。
问候
关于python - 用于将 STEP 转换为 STL 且输出文件大小不较大的编码库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76665637/