[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3648] contrib/py/scripts/addons/ oscurart_tools.py: rewrite Shapes Layout Asymmetrical Tool

Eugenio Pignataro info at oscurart.com.ar
Wed Jul 25 03:20:59 CEST 2012


Revision: 3648
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3648
Author:   oscurart
Date:     2012-07-25 01:20:57 +0000 (Wed, 25 Jul 2012)
Log Message:
-----------
rewrite Shapes Layout Asymmetrical Tool

Modified Paths:
--------------
    contrib/py/scripts/addons/oscurart_tools.py

Modified: contrib/py/scripts/addons/oscurart_tools.py
===================================================================
--- contrib/py/scripts/addons/oscurart_tools.py	2012-07-24 02:40:20 UTC (rev 3647)
+++ contrib/py/scripts/addons/oscurart_tools.py	2012-07-25 01:20:57 UTC (rev 3648)
@@ -449,18 +449,23 @@
         scn.objects.active = ob
         ob.select = True
         
+        ## CREO DATA PARA SLIDERS        
+        ## creo data para los contenedores
+        verticess = [(-1,1,0),(1,1,0),(1,-1,0),(-1,-1,0)]
+        edgess = [(0,1),(1,2),(2,3),(3,0)]        
+        mesh = bpy.data.meshes.new("%s_data_container" % (SEL_OBJ))
+        object = bpy.data.objects.new("GRAPHIC_CONTAINER", mesh)
+        bpy.context.scene.objects.link(object)
+        mesh.from_pydata(verticess,edgess,[])          
         
-        
         gx = 0
         gy = 0
         
         
         for keyblock in LISTA_KEYS:    
             if keyblock.name[-2:] != "_L":
-                if keyblock.name[-2:] != "_R":  
+                if keyblock.name[-2:] != "_R":                     
                     
-                    
-                    
                     ## OBJETO ACTIVO
                     scn.objects.active = ob
                     eval(EDITMODE)
@@ -472,8 +477,7 @@
                     
                     bonectrl = amt.edit_bones.new(keyblock.name+"_CTRL")
                     bonectrl.head = (gy,0,0)
-                    bonectrl.tail = (gy,0,0.2)
-        
+                    bonectrl.tail = (gy,0,0.2)        
             
                     ##EMPARENTA HUESOS             
                     ## EMPARENTO
@@ -499,19 +503,8 @@
                         VAR2.type = 'TRANSFORMS'                    
                         VAR2.targets[0].bone_target = bonectrl.name
                         VAR2.targets[0].transform_space = "LOCAL_SPACE"
-                        VAR2.targets[0].transform_type = "LOC_Y"
-                              
-              
-                    ## CREO DATA PARA SLIDERS        
-                    ## creo data para los contenedores
-                    verticess = [(-1,1,0),(1,1,0),(1,-1,0),(-1,-1,0)]
-                    edgess = [(0,1),(1,2),(2,3),(3,0)]
+                        VAR2.targets[0].transform_type = "LOC_Y"         
                     
-                    mesh = bpy.data.meshes.new(keyblock.name+"_data_container")
-                    object = bpy.data.objects.new("GRAPHIC_CONTAINER", mesh)
-                    bpy.context.scene.objects.link(object)
-                    mesh.from_pydata(verticess,edgess,[])            
-                    
                     eval(POSEMODE)
                     
                     ## SETEO ICONOS
@@ -1364,177 +1357,123 @@
     def execute(self, context):
 
         SEL_OBJ= bpy.context.active_object
-        LISTA_KEYS = bpy.context.active_object.data.shape_keys.key_blocks
-
+        LISTA_KEYS = bpy.context.active_object.data.shape_keys.key_blocks[1:]
+        
         ##MODOS
         EDITMODE = "bpy.ops.object.mode_set(mode='EDIT')"
         OBJECTMODE = "bpy.ops.object.mode_set(mode='OBJECT')"
         POSEMODE = "bpy.ops.object.mode_set(mode='POSE')"
-
-        ##INDICE DE DRIVERS
-        varindex = 0
-
+        
         ##CREA NOMBRES A LA ARMATURE
         amtas = bpy.data.armatures.new("ArmatureData")
         obas = bpy.data.objects.new("RIG_LAYOUT_"+SEL_OBJ.name, amtas)
-
+        
         ##LINK A LA ESCENA
         scn = bpy.context.scene
         scn.objects.link(obas)
         scn.objects.active = obas
         obas.select = True
-
-
+        
+        ## CREO DATA PARA SLIDERS            
+        ## creo data para los contenedores
+        verticess = [(-.1,1,0),(.1,1,0),(.1,0,0),(-.1,0,0)]
+        edgess = [(0,1),(1,2),(2,3),(3,0)]            
+        mesh = bpy.data.meshes.new("%s_data_container" % (SEL_OBJ))
+        object = bpy.data.objects.new("GRAPHIC_CONTAINER_AS", mesh)
+        bpy.context.scene.objects.link(object)
+        mesh.from_pydata(verticess,edgess,[])
+        
         eval(EDITMODE)
         gx = 0
-        gy = 0
-
-
-        for keyblock in LISTA_KEYS:
-            print("KEYBLOCK EN CREACION DE HUESOS "+keyblock.name)
-
-
+        gy = 0        
+        
+        for keyblock in LISTA_KEYS:        
             if keyblock.name[-2:] != "_L":
                 if keyblock.name[-2:] != "_R":
-
-                    ##CREA HUESOS
-
+                    ## OBJETO ACTIVO
+                    scn.objects.active = obas
+                    eval(EDITMODE)
+        
+                    ##CREA HUESOS        
                     bone = amtas.edit_bones.new(keyblock.name)
                     bone.head = (gx,0,0)
                     bone.tail = (gx,0,1)
-                    gx = gx+2.2
-                    bone = amtas.edit_bones.new(keyblock.name+"_CTRL")
-                    bone.head = (gy,0,0)
-                    bone.tail = (gy,0,0.2)
-                    gy = gy+2.2
-
-                    ##SETEA ARMATURE ACTIVA
-                    bpy.context.scene.objects.active = bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name]
-                    bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].select = 1
-                    ##DESELECCIONA (modo edit)
-                    eval(EDITMODE)
-                    bpy.ops.armature.select_all(action="DESELECT")
-
+                    
+                    bonectrl = amtas.edit_bones.new(keyblock.name+"_CTRL")
+                    bonectrl.head = (gy,0,0)
+                    bonectrl.tail = (gy,0,0.2)
+        
                     ##EMPARENTA HUESOS
-
-                    ##HUESO ACTIVO
-                    eval(OBJECTMODE)
-                    bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].data.bones.active = bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].data.bones[keyblock.name]
-                    ##MODO EDIT
-                    eval(EDITMODE)
+                    ## EMPARENTO
+                    obas.data.edit_bones[bonectrl.name].parent = obas.data.edit_bones[bone.name]                         
+                    bpy.context.scene.objects.active = obas
+                    
                     ##DESELECCIONA (modo edit)
                     bpy.ops.armature.select_all(action="DESELECT")
-                    ##MODO OBJECT
+        
+                    ##CREA DRIVERS Y LOS CONECTA
+                    DR1 = keyblock.driver_add("value")
+                    DR1.driver.expression = "var"
+                    VAR2 = DR1.driver.variables.new()     
+                    VAR2.targets[0].id = obas
+                    VAR2.targets[0].bone_target = bonectrl.name
+                    VAR2.type = 'TRANSFORMS'
+                    VAR2.targets[0].transform_space = "LOCAL_SPACE"
+                    VAR2.targets[0].transform_type = "LOC_Y"       
+                    
+                    eval(POSEMODE)
+                    
+                    ## SETEO ICONOS
+                    obas.pose.bones[keyblock.name].custom_shape = object
+                    obas.pose.bones[keyblock.name+"_CTRL"].custom_shape = object
+                    
+                    ## SETEO CONSTRAINTS
+        
+                    bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].data.bones.active = bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].data.bones[keyblock.name+"_CTRL"]
+                    ## SUMO CONSTRAINT
+                    eval(POSEMODE)
+                    CNS = obas.pose.bones[keyblock.name+"_CTRL"].constraints.new(type='LIMIT_LOCATION')                        
+                    CNS.min_x = 0
+                    CNS.use_min_x = 1
+                    CNS.min_z = 0
+                    CNS.use_min_z = 1
+                    CNS.min_y = 0
+                    CNS.use_min_y = 1
+                    
+                    CNS.max_x =  0
+                    CNS.use_max_x = 1
+                    CNS.max_z =  0
+                    CNS.use_max_z = 1
+                    CNS.max_y =  1
+                    CNS.use_max_y = 1
+                    
+                    CNS.owner_space  = "LOCAL"
+                    CNS.use_transform_limit = True        
+        
+                    ## PARA QUE EL TEXTO FUNCIONE PASAMOS A OBJECT MODE
                     eval(OBJECTMODE)
-                    ##SELECCIONA UN HUESO
-                    bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].data.bones[keyblock.name+"_CTRL"].select = 1
-                    eval(EDITMODE)
-                    ##EMPARENTA
-                    bpy.ops.armature.parent_set(type="OFFSET")
-                    ##DESELECCIONA (modo edit)
-                    bpy.ops.armature.select_all(action="DESELECT")
+        
+                    ## TEXTOS
+                    ## creo tipografias
+                    bpy.ops.object.text_add(location=(0,0,0))
+                    gx = gx+2.2
+                    gy = gy+2.2
+                    texto = bpy.context.object
+                    texto.data.body = keyblock.name
+                    texto.name = "TEXTO_"+keyblock.name
+        
+                    texto.rotation_euler[0] = math.pi/2
+                    texto.location.x = -.15
+                    texto.location.z = -.15
+                    texto.data.size = .2
+                    
+                    CNS = texto.constraints.new(type="COPY_LOCATION")
+                    CNS.target = obas
+                    CNS.subtarget = obas.pose.bones[keyblock.name].name
+                    CNS.use_offset = True  
+                              
+        
 
-                    ##CREA DRIVERS Y LOS CONECTA
-                    keyblock.driver_add("value")
-                    keyblock.driver_add("value")
-
-                    SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.expression = "-var+var_001"
-                    SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables.new()
-                    SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables.new()
-                    SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var'].targets[0].id = bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name]
-                    SEL_OBJ.data.shape_keys.animation_data.drivers[varindex].driver.variables['var'].targets[0].bone_target = bpy.data.objects["RIG_LAYOUT_"+SEL_OBJ.name].data.bones[(keyblock.name)+"_CTRL"].name

@@ Diff output truncated at 10240 characters. @@


More information about the Bf-extensions-cvs mailing list