matplotlib показывает только частичную сетку из файла stl

Итак, у меня есть эта милая маленькая модель джипа, хранящаяся в моем файле stl:

Чтобы отобразить его трехмерную сетку в блокноте Jupyter, я использовал следующий сегмент кода:

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? Любая идея, кто-нибудь?

1 ответ

Решение

Оказывается, что после непродуктивных выходных проблема в файле stl.

Он не поврежден сам по себе, но поскольку ранее он был преобразован из твердотельной модели в модель поверхности с использованием другого приложения, сгенерированный файл STL был каким-то образом неправильно отформатирован для numpy-stl разобрать полностью.

Тогда решением было просто использовать другое приложение, чтобы открыть файл stl (например, MeshLab), а затем снова экспортировать его как файл stl. Впоследствии это было правильно отображено, ура!

Другие вопросы по тегам