Blender (jusqu'à 2.49)
|
Python
Considérations
sur la fonction Window.EditMode()
|
|
Depuis la sortie de Blender 2.34, il est
possible d'entrer et de sortir de l'edit mode. Même si certains script
en modifie le contenu à la première utilisation, il n'est
pas vraiment encore possible de manipuler les objets qui sont dans le tampon
mémoire de ce mode. On peut donc supposer que cette fonction est
liée aux limites d'autres nouvelles fonctions, comme par exemple
la fonction Blender.Load() qui déclanche une erreur si on
l'utilise en mode Edit justement.
Pour éviter des erreurs, il
serait préférable de procéder comme ceci:
1/ opérations intercactives dans
le mode edit de blender
2/ lancement d'un script
3/ execution du script qui devrait
commencer par vérifier l'état du mode:
---> si Wlindow.EditMode()
alors :
--> EDITMODE= 1 # variable globale qui vaudrait 0 au depart
--> Window.EditMode(0)
--> ... (le script fait ses petites affaires)
--> si EDITMODE alors:
--> Window.EditMode(1) |
Contrainte supplémentaires: si le
script crée un nouvel objet, celui-ci se retrouvera automatiquement
objet "actif". Ce qui peut-être génant si on veut revenir
en mode edit sur l'objet que l'on avait au départ.
Choses qui peuvent etre interessantes à
savoir :
1/ si on fait un Object.GetSelected()
l'objet actif est le premier de la liste
2/ si on fait un Object.Get() le
dernier objet créé se tout à la fin de la liste .
3/ Object.Select(0) dessélectionne
l'objet et Object.Select(1) le resélectionne
#exemple d'utilisation:
import Blender
O0=Blender.Object.GetSelected()
O1=Blender.Object.Get()
for o in O0:
o.select(0)
O1[-1].select(1)
Blender.Redraw() |
Les questions concernant cette page
peuvent être posées sur :
news://news.zoo-logique.org/3D.Blender
|