0

所以我在我的 stl 文件中存储了这个可爱的吉普车小模型:

在此处输入图像描述

为了在我的 jupyter notebook 中显示它的 3D 网格,我使用了以下代码段:

from stl import mesh
from mpl_toolkits import mplot3d
from matplotlib import pyplot

tgtMesh = mesh.Mesh.from_file(r'./miljeep.stl')

figure = pyplot.figure()
axes = mplot3d.Axes3D(figure)
axes.add_collection3d(mplot3d.art3d.Poly3DCollection(tgtMesh.vectors))
scale = tgtMesh.points.flatten(-1)
axes.auto_scale_xyz(scale,scale,scale)
pyplot.show()

不幸的是,出现的是这样的:

在此处输入图像描述

通过简单的打印,我看到网格中只存储了一个 (376, 3, 3) 的向量数组,而正确地,当使用在线软件完全显示时,它应该是 (53184, 3, 3)。

所以这似乎是 matplotlib 或者更可能是 numpy-stl 的问题?任何想法,任何人?

4

1 回答 1

0

经过一个没有成果的周末,原来问题出在 stl 文件上。

它本身并没有损坏,但是因为它之前已经使用另一个应用程序从实体模型转换为表面模型,所以生成的 stl 文件格式不正确,numpy-stl无法完全解析。

解决方案是简单地使用另一个应用程序打开 stl 文件(例如 MeshLab),然后再次将其导出为 stl 文件。之后就正常显示了,万岁!

于 2018-06-25T08:53:23.027 回答