import Blender
#------------------------------------
# récupérer tous les objets de toutes les scenes
# même ceux qui ont été retirés sans faire
un
# enregistrement et un reload du fichier courant
#------------------------------------
OBJ = Blender.Object.Get()
print OBJ
#------------------------------------
# récupérer la scene courante ...
#------------------------------------
SCE=Blender.Scene.getCurrent()
#------------------------------------
# ... retirer les objets de la scene courante ...
#------------------------------------
for obj in OBJ:
SCE.unlink(obj)
#------------------------------------
# ... mettre à jour la scene courante ...
#------------------------------------
SCE.update()
#------------------------------------
# forcer un réaffichage de toutes les fenêtres
#------------------------------------
Blender.Redraw()
#------------------------------------
# récuperer tous les objets restants
#------------------------------------
OBJ = Blender.Object.Get()
#------------------------------------
# vérifier le contenu de la liste ...
#------------------------------------
print OBJ
#------------------------------------
# OBJ n'est pas vide mais ne contient que des
# objets << flottants >> dans la mémoire
# rattachés à aucune scene . En fait, ce ne sont
# que les données de ces objets .
# Pour savoir ce qu'il reste réellement dan la scene
# courante il faut faire :
#------------------------------------
OBJ=SCE.getChildren()
print OBJ
#------------------------------------
# Conclusion :
# il vaut mieux faire un
# OBJ = Blender.Scene.getCurrent().getChildren()
# qu'un :
# OBJ = Blender.Object.Get()
# pour unnettoyage complet de la mémoire il faut enregistrer
# et recharger le fichier donc faire un :
#------------------------------------
COMPLETECLEAR=1
if COMPLETECLEAR:
FILENAME=Blender.Get('filename')
Blender.Save(FILENAME)
Blender.Load(FILENAME)
|