2014-09-10 1 views
3

У меня есть данные 3D (x, y, z, value) в python, и я могу визуализировать изоповерхности в Mayavi. Как я могу экспортировать эту isosurface в файл, который я могу читать в Blender?В Python, как я могу экспортировать 3D-изоповерхность в Blender

Вот несколько примеров кода:

import numpy 
from mayavi import mlab 

x, y, z = numpy.ogrid[-5:5:64j, -5:5:64j, -5:5:64j] 
values = x * x * 0.5 + y * y + z * z * 2.0 
mlab.contour3d(values, contours=[.5]) 
mlab.show() 
+0

Ответ на это также может помочь с безответной http://stackoverflow.com/questions/23122004/how-to-write-stl-file-within-python-mayavi слишком – timday

ответ

6

Используя @ предложение timday, я добавил следующий код, чтобы сохранить изоповерхность в волновом фронте (.obj) Формат:

mlab.savefig ('surface.obj')

Затем я могу открыть это в Blender с файлом >> Импорт >> Wavefront (.obj)

Мне пришлось значительно уменьшить изображение (~ 100x), чтобы оно стало видимым в окне просмотра Blender.

enter image description here

Происхождение установлен путь в сторону от реального объекта, так что объект легче иметь дело с тем, если я использую объект >> Transform >> Origin в Геометрия

enter image description here

После добавления освещения и самолета объект выглядит довольно хорошо!

enter image description here

1

Я никогда не пробовал сам, но я заметил MLab-х savefig также утверждает, что поддерживает сохранение в формате Wavefront «.obj» (также известный как wavefront format), 3D формат геометрии. Конечно, я видел importers from obj to Blender.