【问题标题】:triangulate 3D points & save as .stl对 3D 点进行三角测量并另存为 .stl
【发布时间】:2013-12-03 05:52:24
【问题描述】:

我有一个 3D 点云,我想对它们进行三角测量并保存为 .stl 文件。 我使用 Delaunay 进行三角测量:

points = np.array([[x[i], y[i], z[i]] for i in range(len(x))])
tri = Delaunay(points)

但我找不到可以将此对象保存到 .stl 文件中的库。有谁知道好的解决方案吗?

我的 3D 点云的描述:它只是描述了一个表面,因此对于每个 (x,y),只有一个 z 值。

也许我可以尝试编写自己的 STL 保护程序,但因此我必须知道 tri.simplices 究竟返回了什么:正如我在文档中所读到的,我得到了形成三角形的点的索引 - 但 tri .simplices 返回一组 4 索引;我期望的是 3(因为三角形有 3 个顶点)?!

编辑: 哦,该死的,我刚刚弄清楚为什么我得到 4 个索引:它是一个四面体。但是我不想从我的点云中得到四面体——正如我所说的,我的点云是一个表面,我也只想接收一个“表面”网格,而不是“实体”网格。这怎么可能?

顺便说一句:我刚写完自己的 STL 编写器,它按预期工作 - 但它只是 ascii 格式...有人知道我如何保存为二进制格式吗?

【问题讨论】:

  • 我很笨:我只需要更改这一行:points = np.array([[x[i], y[i]] for i in range(len(x))]) -> 消除 z。现在它看起来是正确的......但是有人提示我如何以二进制格式保存?

标签: python delaunay


【解决方案1】:

我发现了这一点,如果你纠正了一些错误,它就会起作用: http://www.csar.at/?p=22

【讨论】:

  • 响应不足。需要更多信息。有什么错误?
猜你喜欢
  • 1970-01-01
  • 2019-11-14
  • 2012-01-26
  • 2011-03-09
  • 1970-01-01
  • 1970-01-01
  • 2017-03-02
  • 1970-01-01
  • 2015-03-08
相关资源
最近更新 更多