#!BPY
"""
Name: 'Remove Empty Mesh'
Blender: 232
Group: 'Object'
Tooltip: 'Retreive and remove non exportable meshes'
"""
__author__ = "Jean-Michel Soler (jms)"
__url__ = ("Script's homepage, http://jmsoler.free.fr/didacticiel/blender/tutor/cpl_rememptymesh.htm",
"Communicate problems and errors, http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender")
__version__ = "11/2004"
__bpydoc__ = """\
This script removes all the empty meshes object or mesh
with no exportable data before exportation.
Usage:
run the script from the Object Scripts Menu.
"""
#-------------------------------------------------
# script pour retirer les objets mesh vides de la scene.
#-------------------------------------------------
import Blender
#-------------------------------------------------
# VERTS=0 controle seulement les mesh vides de faces,
# efface
meme s'il y a des sommets libre
# y compris
les faces a 2 sommets
# VERTS=1 controle aussi l'absence de sommet
#---------------------------------------------------
VERTS=0
#---------------------------------------------------
# Fonction :
# Tester les objets constitues de segment sans aucune
# face exportable. Retourne faux si au moins une faces
# est un triangle ou un quad
#---------------------------------------------------
def onlysegment(o):
for f in o.getData().faces:
if len(f.v)>2:
return
0
return 1
#---------------------------------------------------
# Operation :
# Cree rla liste des objets vides ou non exportables
#---------------------------------------------------
if VERTS==0:
Obj=[o for o in Blender.Object.Get()
if o.getType()==
'Mesh'
and (o.getData().faces==[] or onlysegment(o))]
elif VERTS==1:
Obj=[o for o in Blender.Object.Get()
if o.getType()==
'Mesh' and
o.getData().faces==[] and
o.getData().verts==[]
]
#---------------------------------------------------
# Operation :
# Se connecter a la scene courante
#---------------------------------------------------
SC=Blender.Scene.GetCurrent()
#---------------------------------------------------
# Operation :
# retirer tous les objets de la scene
#---------------------------------------------------
for o in Obj:
o.setName('XRET_'+o.getName())
SC.unlink(o)
Blender.Redraw()
|