stl为numpy_stl库,不要下错了
from mpl_toolkits.mplot3d import Axes3D, art3d
from matplotlib import pyplot
from stl import mesh
angledict = {'FRONT': [0, 0], 'LEFT': [0, -90], 'TOP': [90, 0], 'REAR': [0, 180], 'RIGHT': [0, 90], 'BOTTOM': [-90, 0],
'SOUTHWEST': [45, 45]}
def stltoviews(filename, viewmode):
# 创建一个plot
fig = pyplot.figure()
axes = fig.add_axes(Axes3D(fig))
# 加载stl文件,把读取到的向量信息加载到plot
stl_mesh = mesh.Mesh.from_file(filename)
poly = art3d.Poly3DCollection(stl_mesh.vectors, color='lightgrey')
# poly.set_facecolor('b')
poly.set_edgecolor('b')
poly.set_alpha(0.9)
axes.add_collection3d(poly)
# 自动缩放网格尺寸
scale = stl_mesh.points.flatten()
axes.auto_scale_xyz(scale, scale, scale)
# 是否显示坐标轴
pyplot.axis('on')
# 调整模型的角度
axes.view_init(elev=angledict[viewmode][0], azim=angledict[viewmode][1])
# 保存到本地文件
pyplot.show()
# pyplot.savefig('model.png')
# 本地文件
name = 'model.stl'
mode = 'TOP'
stltoviews(name, mode)
程序无渲染,仅提取缩略图使用