通过numpy-stl从ZipFile加载stl文件

j91ykkif  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(116)

有没有一种方法可以通过numpy-stl从zip中加载stl文件?
我可以通过numpy-stl从文件系统正常读取stl文件,但我无法将其连接到打开的zip文件。
Python 2.7
举例来说:
这是用于从内存中的example.zip文件中阅读scene.xml的代码

from zipfile import ZipFile

opened_zipfile = ZipFile("example.zip", 'r')
tree = ET.fromstring(opened_zipfile.read('scene.xml'))
...

这就是我如何从文件系统中读取cube.stl文件

from stl.mesh import Mesh

mesh = Mesh.from_file("cube.stl")
...

Stl文件是二进制或asstrom格式的。
但我不知道如何从zip中读取.stl文件,而不需要将文件夹导入文件系统并从中阅读。
谢谢你的帮助

9o685dep

9o685dep1#

首先,这并不是对你问题的回答,我提前道歉。但更好的方法是使用open3d包来3D可视化stl文件。它完全难以处理生成的triangle_mesh
你可以这样做:

  • 安装
pip install open3d
  • 使用
from zipfile import ZipFile
import open3d as o3d

# specifying the zip file name
file_name = "Body_Kylo_Ren_fixed.zip"
  
# opening the zip file in READ mode
with ZipFile(file_name, 'r') as zip:
    # printing all the contents of the zip file
    zip.printdir()
    # extracting all the files
    zip.extractall()
    
    mesh = o3d.io.read_triangle_mesh("Body_Kylo_Ren_fixed.stl")
    mesh = mesh.compute_vertex_normals()
    o3d.visualization.draw_geometries([mesh],window_name="STL",
                                    left=1000, top=200,
                                    width=800, height=650)

输出:完全可交互的stl对象

查看open3d-documentation以了解更多信息

相关问题