Загрузка из ZipFile stl файлов с помощью numpy-stl

Есть ли способ, как загрузить STL-файлы из zip по Numpy-STL?

Я могу читать stl файлы, как правило, из файловой системы по numpy-stl, но я не могу подключить его к открытому zip-файлу.

Это питон 2.7

Например:

это код для чтения scene.xml из файла example.zip в память

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 файлы в двоичном или ascii формате.

Но я не знаю, как читать файлы.stl из zip без распаковки файлов в файловую систему и чтения из нее.

Спасибо за помощь.

1 ответ

Во-первых, это не совсем ответ на ваш вопрос, заранее прошу прощения. Но гораздо лучший способ — использоватьopen3dпакет для 3D-визуализации файлов. Это совершенно неразрешимо с сгенерированными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.

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