python - 用于将 STEP 转换为 STL 且输出文件大小不较大的编码库

标签 python file cad freecad cadquery

我正在构建一项服务,将 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 文件:

Circuit Board 22 MB STEP File

这是 500 KB STEP 文件:

Door Hinge 500 KB STEP File

我可以尝试哪些库可以轻松地将 STEP 转换为 STL,而无需使用大文件?该库最好是 Python 或 Node.js 版本。不过,Java 或 C++ 也是可以接受的;我们的团队可以使用此类服务​​器。我假设基于 C++ 的库将具有最佳的处理速度。

最佳答案

看看 DG 内核:https://dynoinsight.com/ProDown.htmhttp://dynoinsight.com/Prod/Examples/InterfaceTestsVC.zip 中的 ModelTest::SetGeometryTypeEx()演示了由偏差定义的不同密度网格的生成。它是 C++。

问候

关于python - 用于将 STEP 转换为 STL 且输出文件大小不较大的编码库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76665637/

相关文章:

python - 从模型 flask 、sqlalchamey 和 wtforms 创建表单

python - Scipy:通过 cdist 计算标准化欧几里德

python - 使用 os.walk 读取文件

android - 通过 Android 中的 Intent 选择任何类型的文件

api - 如何学习 CATIA CAA V5 R18 c++ 中的流程

python - 使用 Python 的 Azure Rest API

python - 如何按元素应用二元交叉熵,然后在 Keras 中对所有这些损失求和?

c++ - 是否可以同时用两个程序写入和读取文本文件

image - DXF图像实体组码解释

.net - WPF、xaml Cad 或绘图应用程序示例?