Blender (jusqu'à 2.49)
Python: 
Renomme les objets par blocs
    Début   Index
précédentScript lamp data copieur
Les scripts dans blender même : Suivant

télécharger le script

#!BPY

""" Registration info for Blender menus: <- these words are ignored
Name: 'Name OBJECT changer'
Blender: 232
Group: 'Misc'
Tip: 'GUI to Rename Object by selected group'
"""

# ----------------------------------------------------------
# Name OBJECT changer
# (c) 2004 jean-michel soler
# -----------------------------------------------------------
#----------------------------------------------
# Page officielle/offcial page du blender python Name OBJECT changer:
#   http://jmsoler.free.fr/didacticiel/blender/tutor/cpl_renameobjectgui.htm
# Communiquer les problemes et erreurs sur:
# To Communicate problems and errors on:
#   http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender
#--------------------------------------------- 

CVS='0'

import Blender
from Blender import *
from Blender.Draw import *
from Blender.BGL import *
 

O = Object.Get()
taglist=[]
stringlist=[[],[]]
 

def renew(taglist):
     global O
     MAJ='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
     O = Object.Get()
     if CVS==0:
        param= [ [p.getName(),O.index(p),str(p.getType())] for p in O ]
     else:
        param= [ [p.getName(),O.index(p),str(p.getType()),O[O.index(p)].isSelected()] for p in O ]
     PARAM={}
     evt=9
     stringlist=[[],[],[]]
     for p in param:
         if p[0] in taglist or len(p)>3:
            if CVS==0:
               PARAM[p[0]]=[Create(1),evt,p[1],p[2],Create(p[0]),evt+1]
            elif p[3]==1:
               PARAM[p[0]]=[Create(1),evt,p[1],p[2],Create(p[0]),evt+1]
            elif p[3]==0:
               PARAM[p[0]]=[Create(0),evt,p[1],p[2],Create(p[0]),evt+1]
            stringlist[0].append(evt+1)
            stringlist[1].append(p[0])
            stringlist[2].append(evt)
         else: 
            PARAM[p[0]]=[Create(0),evt,p[1],p[2],Create(p[0]),evt+1]
            stringlist[0].append(evt+1)
            stringlist[1].append(p[0])
            stringlist[2].append(evt) 
         evt+=2
     print stringlist
     return PARAM,stringlist

NEWNAME=Create('Name')

alignment={'BEGIN' : [Create(1),5],
           'END'   : [Create(0),6],
           'POINT' : [Create(0),7],
           'FULL'  : [Create(0),8]}

def rename():
     global NEWNAME, alignment, O, taglist, PARAM, stringlist
     taglist=[]
     for p in PARAM.keys():
        if PARAM[p][0].val==1:
           if alignment['END'][0].val: 
             O[PARAM[p][2]].setName(p+NEWNAME.val) 
             taglist.append(p+NEWNAME.val)
           elif alignment['BEGIN'][0].val:
             O[PARAM[p][2]].setName(NEWNAME.val+p) 
             taglist.append(NEWNAME.val+p)
           elif alignment['FULL'][0].val:
             O[PARAM[p][2]].setName(NEWNAME.val) 
             taglist.append(O[PARAM[p][2]].getName())
        #print taglist
     PARAM, stringlist =renew(taglist)

PARAM, stringlist = renew(taglist)

def EVENT(evt,val):
   pass

def BUTTON(evt):
   global PARAM  , alignment, O, stringlist, CVS
   if (evt==1):
         Exit()
   elif (evt==2):
         rename()
   elif (evt==3):
         PARAM, stringlist = renew(taglist)

   elif (evt in [5,6,7,8]): 
         for k in alignment.keys():
             if alignment[k][1]!=evt:
                alignment[k][0].val=0
             #print alignment[k][1],evt

   elif (evt in stringlist[0]):
         O[PARAM[stringlist[1][(evt-9)/2]][2]].setName(PARAM[stringlist[1][(evt-9)/2]][4].val)
         PARAM, stringlist = renew(taglist)

   elif (evt in stringlist[2]):
       try:
         O[PARAM[stringlist[1][(evt-9)/2]][2]].select(PARAM[stringlist[1][(evt-9)/2]][0].val)
       except:
        pass

   Blender.Redraw()

def DRAW():
  global PARAM, O, NEWNAME, alignment
 

  glColor3f(0.7, 0.7, 0.7)
  glClear(GL_COLOR_BUFFER_BIT)
  glColor3f(0.1, 0.1, 0.15) 

  size=Buffer(GL_FLOAT, 4)
  glGetFloatv(GL_SCISSOR_BOX, size)
  size= size.list
  for s in [0,1,2,3]: size[s]=int(size[s])
  ligne=20

  Button ("Exit",1,20,1,80,ligne)
  Button ("Rename",2,102,1,80,ligne)
  Button ("renew",3,184,1,80,ligne)

  glRasterPos2f(20, ligne*2-10)
  Text(" Poly-RENAME tool")
  NEWNAME=String('Add string : ', 4, 150, ligne*2-16, 150, 18, NEWNAME.val,120 )

  key=alignment.keys()
  key.sort()
  n=150+150+4
  for k in key:
      alignment[k][0]=Toggle(k,alignment[k][1],n,ligne*2-16, 40, 18, alignment[k][0].val)
      n+=40+4

  max=size[3] / 22 -2
  pos   = 1
  decal = 20

  keys=[[PARAM[k][1],k] for k in PARAM.keys()]
  keys.sort()

  #print keys
  for p_ in keys:
     p=p_[1] 
     if  pos==max:
         decal+=152
         pos=1
     else:
         pos+=1 
     PARAM[p][0]=Toggle('S',PARAM[p][1],decal,pos*22+22,20,20, PARAM[p][0].val,"Select this one for a group renaming")
     PARAM[p][4]=String('> ',PARAM[p][5],decal+20,pos*22+22,90,20, PARAM[p][4].val,200, "string button to rename immediately but only this object")

     glRasterPos2f(decal+115,pos*22+22)
     Text(PARAM[p][3][:4])
Register(DRAW,EVENT,BUTTON)

 


 
précédentScript lamp data copieur
 Les scripts dans blender même : Suivant
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