Blender (jusqu'à 2.49)
Redimensionner
en fonction de la distance
 entre l'objet nomme : "_resize" et l'objet   "_master" .
(version anglaise)
(09/09/2005)
    Début   Index
précédentScript Python
Script imiter un raccourcis Suivant
# -------------------------
# Redimensionne en fonction de la distance 
# entre l'objet nomme : "_resize" et l'objet 
# "_master" .
# le script doit etre lie a l'objet resize en
# mode redraw . 
#
# (c) jm soler, 09/2005 
# ------------------------
import Blender

# ------------------------
# pour inverser l'effet
# ------------------------
DIM=0

# ------------------------
# pour conserverla taille d'origine 
# ------------------------
ORIGINE=1

# ------------------------
# releve des positions reciproques
# ------------------------
[[x,y,z]]=[o.getLocation() for o in Blender.Object.Get() if o.name.find('resize')!=-1]
[[x1,y1,z1]]=[o.getLocation() for o in Blender.Object.Get() if o.name.find('master')!=-1]
distance=abs((x1-x)**2+(y1-y)**2+(z1-z)**2)**0.5

# ------------------------
# Permet de mettre a jour les valeurs .
#
# Changer provisoirement la valeur pour 1 
# Quand la modification est satisfaisante
# il faut modifier de nouveau a la main 
# pour reenclancher l'affichage automatique
# des variations de taille .
# ------------------------
RENEW=0

try :
 # ------------------------
 # renouvelle les valeurs  en produisant une 
 # erreur qui  oblige a passer par le contenu 
 # d'except 
 # ------------------------
 if RENEW==1 :
  error="renew"
  raise error
 # ------------------------
 # calcul des valeurs 
 # ------------------------ 
 if DIM: Size=distance/Blender.D
 else:  Size=Blender.D/distance

 # ------------------------
 # raccourci de la variable 
 # ------------------------ 
 if ORIGINE: BS=Blender.Size[0]
 else: BS=[0.0,0.0,0.0]

 # ------------------------
 # mise  a jour des valeurs dans les 
 # objets 
 # ------------------------ 
 [o.setSize(Size+BS[0],Size+BS[1],Size+BS[2]) for o in Blender.Object.Get() if o.name.find('resize')!=-1]

 # ------------------------
 # fin
 # ------------------------ 

except:
 # ------------------------
 # les valeurs sont mises en reserve
 # dans l'espace de nom du module
 # Blender . Pas une bonne habitude
 # mais infiniment plus rapide que 
 # de passer par le module register 
 # ou d'enregistrer sur le disque
 # on pourrait eventuellement stocker 
 # ces informations dans un objet neutre 
 # ------------------------ 
 Blender.D=distance
 Blender.Size=[o.getSize() for o in Blender.Object.Get() if o.name.find('resize')!=-1]


 
précédentScript Python
Script imiter un raccourcis Suivantt
Vers le  Haut de page

Les questions concernant cette page  peuvent être posées sur  :
 news://news.zoo-logique.org/3D.Blender


 

 

Livre en français
Blender : apprenez, pratiquez, Créez, livre, Ed. Campus Press, coll. Starter Kit
Blender Starter Kit

Forum
FAQ
Lexique
Didacticiels
Compilations
Blender2KT
Débuter
Modelage
Blender python
Materiaux
Lumière
Animation
API python (eng)
Archives nzn
Statistiques
Doc flash Sculptris
Galerie Sculptris

mon site de démos sur youtube