Загрузка из 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.