Python 三角化三维点&;另存为.stl

Python 三角化三维点&;另存为.stl,python,delaunay,Python,Delaunay,我有一个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.simp

我有一个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格式。。。有人知道如何将文件另存为二进制格式吗?

我发现了这一点,如果您纠正了一些错误,它就会工作:

我笨得要命:我只需要改变这一行:
点=np.数组([[x[I],y[I]]代表范围内的I(len(x)))
->。现在它看起来是正确的。。。但有人知道我如何以二进制格式保存吗?回答不足。需要更多的信息。有什么错误?