Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'release/scripts/obdatacopier.py')
-rw-r--r--release/scripts/obdatacopier.py215
1 files changed, 0 insertions, 215 deletions
diff --git a/release/scripts/obdatacopier.py b/release/scripts/obdatacopier.py
deleted file mode 100644
index 2f5617951de..00000000000
--- a/release/scripts/obdatacopier.py
+++ /dev/null
@@ -1,215 +0,0 @@
-#!BPY
-
-""" Registration info for Blender menus: <- these words are ignored
-Name: 'Data Copier'
-Blender: 232
-Group: 'Object'
-Tip: 'Copy data from active object to other selected ones.'
-"""
-
-__author__ = "Jean-Michel Soler (jms), Campbell Barton (Ideasman42)"
-__url__ = ("blender", "blenderartists.org",
-"Script's homepage, http://jmsoler.free.fr/didacticiel/blender/tutor/cpl_lampdatacopier.htm",
-"Communicate problems and errors, http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender")
-__version__ = "0.1.2"
-
-__bpydoc__ = """\
-Use "Data Copier" to copy attributes from the active object to other selected ones of
-its same type.
-
-This script is still in an early version but is already useful for copying
-attributes for some types of objects like lamps and cameras.
-
-Usage:
-
-Select the objects that will be updated, select the object whose data will
-be copied (they must all be of the same type, of course), then run this script.
-Toggle the buttons representing the attributes to be copied and press "Copy".
-"""
-
-# ----------------------------------------------------------
-# Object DATA copier 0.1.2
-# (c) 2004 jean-michel soler
-# -----------------------------------------------------------
-#----------------------------------------------
-# Page officielle/official page du blender python Object DATA copier:
-# http://jmsoler.free.fr/didacticiel/blender/tutor/cpl_lampdatacopier.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
-#---------------------------------------------
-# Blender Artistic License
-# http://download.blender.org/documentation/html/x21254.html
-#---------------------------------------------
-
-import Blender
-from Blender import *
-from Blender.Draw import *
-from Blender.BGL import *
-
-
-scn= Blender.Scene.GetCurrent()
-
-type_func_method= type(dir)
-type_func= type(lambda:i)
-type_dict= type({})
-# type_list= type([])
-
-IGNORE_VARS = 'users', 'fakeUser', 'edges', 'faces', 'verts', 'elements'
-
-def renew():
- scn= Blender.Scene.GetCurrent()
- act_ob= scn.objects.active
- if act_ob==None:
- return {}
-
- act_ob_type= act_ob.getType()
- act_ob_data= act_ob.getData(mesh=1)
-
- if act_ob_data==None: # Surf?
- return {}
-
- PARAM={}
- evt=4
- doc='doc'
-
- for prop_name in dir(act_ob_data):
- if not prop_name.startswith('__') and prop_name not in IGNORE_VARS:
- # Get the type
- try: exec 'prop_type= type(act_ob_data.%s)' % prop_name
- except: prop_type= None
-
- if prop_type != None and prop_type not in (type_func_method, type_func, type_dict):
-
- # Now we know that the attribute can be listed in the UI Create a button and tooltip.
-
- # Tooltip
- try:
- if prop_name=='mode':
- try:
- exec "doc=str(%s.Modes)+' ; value : %s'"%( act_ob_type, str(act_ob_data.mode) )
- except:
- exec """doc= '%s'+' value = '+ str(act_ob.getData(mesh=1).%s)"""%(prop_name, prop_name)
- elif prop_name=='type':
- try:
- exec "doc=str(%s.Types)+' ; value : %s'"%( act_ob_type, str(act_ob_data.type) )
- except:
- exec """doc= '%s'+' value = '+ str(act_ob.getData(mesh=1).%s)"""%(prop_name, prop_name)
- else:
- exec """doc= '%s'+' value = '+ str(act_ob_data.%s)"""%(prop_name, prop_name)
- if doc.find('built-in')!=-1:
- exec """doc= 'This is a function ! Doc = '+ str(act_ob_data.%s.__doc__)"""% prop_name
- except:
- doc='Doc...'
-
- # Button
- PARAM[prop_name]= [Create(0), evt, doc]
- evt+=1
-
- return PARAM
-
-def copy():
- global PARAM
-
- scn= Blender.Scene.GetCurrent()
- act_ob= scn.getActiveObject()
- if act_ob==None:
- Blender.Draw.PupMenu('Error|No Active Object.')
- return
-
- act_ob_type= act_ob.getType()
-
- if act_ob_type in ('Empty', 'Surf'):
- Blender.Draw.PupMenu('Error|Copying Empty or Surf object data isnt supported.')
- return
-
- act_ob_data= act_ob.getData(mesh=1)
-
- print '\n\nStarting copy for object "%s"' % act_ob.name
- some_errors= False
- for ob in scn.objects.context:
- if ob != act_ob and ob.getType() == act_ob_type:
- ob_data= None
- for prop_name, value in PARAM.iteritems():
- if value[0].val==1:
-
- # Init the object data if we havnt alredy
- if ob_data==None:
- ob_data= ob.getData(mesh=1)
-
- try:
- exec "ob_data.%s = act_ob_data.%s"%(prop_name, prop_name)
- except:
- some_errors= True
- print 'Cant copy property "%s" for type "%s"' % (prop_name, act_ob_type)
- if some_errors:
- Blender.Draw.PupMenu('Some attributes could not be copied, see console for details.')
-
-PARAM= renew()
-
-def EVENT(evt,val):
- pass
-
-def BUTTON(evt):
- global PARAM
- if (evt==1):
- Exit()
-
- if (evt==2):
- copy()
- Blender.Redraw()
-
- if (evt==3):
- PARAM= renew()
- Blender.Redraw()
-
-def DRAW():
- global PARAM
-
- scn= Blender.Scene.GetCurrent()
- act_ob= scn.objects.active
-
- 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,4,80,ligne)
- Button("Copy",2,102,4,80,ligne)
- Button("Renew",3,184,4,80,ligne)
-
- glRasterPos2f(20, ligne*2-8)
- if act_ob:
- Text(act_ob.getType()+" DATA copier")
- else:
- Text("Please select an object")
-
-
- max=size[3] / 22 -2
- pos = 0
- decal = 20
- key=PARAM.keys()
- key.sort()
- for p in key:
- if pos==max:
- decal+=102
- pos=1
- else:
- pos+=1
-
- PARAM[p][0]=Toggle(p,
- PARAM[p][1],
- decal,
- pos*22+22,
- 100,
- 20,
- PARAM[p][0].val,
- str(PARAM[p][2]))
-
-
-Register(DRAW,EVENT,BUTTON)