#---------------------------------------------
# (c) Jm Soler 08/2004 : Mesh2Obj
# updated the 2nd of july, 2006 0.0.3
# --------------------------------------------
import Blender
from Blender import Object,NMesh,Scene
SCENE=Scene.getCurrent()
# ---------------------------------------------
# set this variable to remodve exported faces
# ---------------------------------------------
DELETE=1
REMOVE=[]
EDITMODE=0
if Blender.Window.EditMode(1):
EDITMODE=1
Blender.Window.EditMode(0)
MESH3D = Object.GetSelected()[0]
if MESH3D.getType() == 'Mesh':
MESH = MESH3D.getData()
SIZE=MESH3D.getSize()
for f in MESH.faces:
if f.sel :
if DELETE :
REMOVE.append(f)
MESH2=NMesh.GetRaw()
f1=NMesh.Face()
v2=[0.0,0.0,0.0]
for v in f.v:
v1 = Blender.NMesh.Vert
(v.co[0],
v.co[1],
v.co[2])
v=v1.co*MESH3D.matrix
v1.co[:]=v[:]
for n
in [0,1,2]: v2[n]+=v1.co[n]
MESH2.verts.append(v1)
f1.v.append(MESH2.verts[len(MESH2.verts)
- 1])
for n in [0,1,2]: v2[n]/=len(f.v)
for v in f1.v:
for n in [0,1,2]: v.co[n]-=v2[n]
MESH2.faces.append(f1)
OBJ=Object.New('Mesh')
OBJ.link(MESH2)
for n in [0,1,2]: v2[n]+= MESH3D.getLocation()[n]
OBJ.setLocation(v2)
OBJ.setName('EXPLODE')
SCENE.link(OBJ)
if DELETE :
for f in REMOVE :
MESH.removeFace(f)
MESH.update()
if EDITMODE :
[O.select(0) for O in Object.Get()]
MESH3D.select(1)
Blender.Window.EditMode(EDITMODE)
|