python - 在 Python 中导入 CAD 对象并存储为数组

标签 python vertex cad freecad

我正在使用 Autodesk Fusion 360 为 3D 零件建模(见下图),然后我可以将其导出并另存为 .step、.iges、.sat 或 .smt 文件。

我想要实现的是将这部分转换为 Python 中的 3D numpy 数组。数组的每个元素都将是 01,以指示该位置是否有固体 Material 或根本没有 Material (空气)。

例如,如果我的对象具有图形的尺寸,则大小为 100x100x50 的数组中的每个元素将代表对象的 1 毫米3 体积。所有浅蓝色小立方体的值为1,表示该位置有固体 Material ,而红色立方体的值为0,表示这个空间不包含固体 Material 。

enter image description here

这可以使用 FreeCAD API 来完成吗?或者有没有其他方法可以在 Python 中导入 .step/.iges/.sat/.smt 文件并转换/解析它以创建所需的数组?

最佳答案

我终于找到了一种适合我的方法,并且实际上可以更好地解释我一直在努力实现的目标。

显然,FreeCAD 有一个选项,在激活“点”工作台后,您可以选择将对象转换为“point cloud”。每个点都没有任何质量,整个新的点云结构可以导出到以空格分隔的“.asc”文件中。

之后,将其导入 Python numpy 数组就很简单了。我个人使用过 voxel-based表示以在 Python 中可视化导入的对象,这可以使用最新的 matplotlib 或 mayavi(我至少尝试过这两个)来完成。

关于python - 在 Python 中导入 CAD 对象并存储为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46901300/

相关文章:

python - 带有(非 unicode)字符串的 PyUnicode_FromFormat

c++ - DirectX Vertex 中的 THE 是什么

vbscript - 如何通过 VBscript 获取 CAD 零件的位置?

java - 从 Vertex 实例中获取 Json 格式的 String

c++ - BGL : Using bundled properties to store vertex descriptor of another vertex

volume - 如何计算存储在 STL 文件中的对象的体积?

c# - 以编程方式创建 CAD 文件

python - 从 Tensorflow 变量中提取值

python - CodeHS 8.3.8 : Word Ladder? 我还需要什么

python - Tkinter - 如何将实例变量传递给另一个类?