gempy
gempy copied to clipboard
Export to Blender
Is your feature request related to a problem? Please describe. We want easily to export models to blender
Describe the solution you'd like A function of gempy as gempy.export_to_blender A python script in blender that takes what the gempy function exports and renders it
Additional context I have already a blender script for blender 2.7
import bpy
import numpy as np
#bpy.ops.object.mode_set(mode='OBJECT')
bpy.ops.object.select_by_type(type="MESH")
bpy.ops.object.delete(use_global=False)
for item in bpy.data.meshes:
bpy.data.meshes.remove(item)
try:
bpy.ops.object.mode_set(mode='OBJECT')
bpy.ops.object.select_by_type(type="MESH")
bpy.ops.object.delete(use_global=False)
for item in bpy.data.meshes:
bpy.data.meshes.remove(item)
except:
pass
verts = np.load('/Users/varga/PycharmProjects/ver_Bounding_Thrusts.npy')
edges = np.load('/Users/varga/PycharmProjects/sim_Bounding_Thrusts.npy')
verts_topo = np.load('/Users/varga/PycharmProjects/ver_topo.npy')
edges_topo = np.load('/Users/varga/PycharmProjects/sim_topo.npy')
#print(edges_topo)
#verts = np.append(np.array(verts), np.load('/Users/varga/PycharmProjects/gempy/notebooks/examples/Ales_topo.npy'))
#edges = np.append(np.array(edges), np.load('/Users/varga/PycharmProjects/gempy/notebooks/examples/Ales_topo_simpl.npy'))
#verts.append(*np.load('/Users/varga/PycharmProjects/gempy/notebooks/examples/Ales_vert.npy'))
#edges.append(*np.load('/Users/varga/PycharmProjects/gempy/notebooks/examples/Ales_edges.npy'))
col = [(82, 118, 130),
(82, 118, 130),
(82, 118, 130),
(159, 0, 82),
(1, 84, 130),
(255, 190, 0),
(114, 143, 2), (1,1,1)]
def makeMaterial(name, diffuse, specular, alpha):
mat=bpy.data.materials.new(name)
mat.diffuse_color = diffuse
mat.diffuse_shader = 'LAMBERT'
mat.diffuse_intensity = 1.0
mat.specular_color = specular
mat.specular_shader = 'COOKTORR'
mat.specular_intensity = 0.5
mat.alpha = alpha
mat.ambient = 1
return mat
def setMaterial(ob, mat):
me = ob.data
me.materials.append(mat)
for i in range(0, 6):
#for i in range(6,6):
mesh_data = bpy.data.meshes.new('cube_mesh_data')
v = (verts[i] - np.array([4481366.5, 5292437.6185, 232.05]))/71911.8*10
v[:,2] = v[:,2] * 1
mesh_data.from_pydata(v, [], edges[i].tolist())
mesh_data.update()
obj = bpy.data.objects.new('My_object', mesh_data)
color = makeMaterial('Red', np.array(col[i])/255, (1,1,1), 1)
setMaterial(obj, color)
scene=bpy.context.scene
scene.objects.link(obj)
obj.select=True
mesh_data = bpy.data.meshes.new('cube_mesh_data')
print(verts_topo)
mesh_data.from_pydata((verts_topo - np.array([706744.9407500001, 5292437.6185, 232.05]))/71911.8*10,
[], edges_topo.tolist())
mesh_data.update()
obj = bpy.data.objects.new('My_object', mesh_data)
color = makeMaterial('Red', np.array(col[-1])/255, (1,1,1), 1)
setMaterial(obj, color)
scene=bpy.context.scene
scene.objects.link(obj)
obj.select=True
print('sujugj')
@flohorovicic maybe interesting for your Hiwi for the Blender add-on?
@flohorovicic has some functions for this. Can you link them here?