[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3915] contrib/py/scripts/addons/ oscurart_tools.py: Add only selected shape in split shapes

Eugenio Pignataro info at oscurart.com.ar
Fri Nov 2 02:54:49 CET 2012


Revision: 3915
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3915
Author:   oscurart
Date:     2012-11-02 01:54:44 +0000 (Fri, 02 Nov 2012)
Log Message:
-----------
Add only selected shape in split shapes

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-11-01 19:17:01 UTC (rev 3914)
+++ contrib/py/scripts/addons/oscurart_tools.py	2012-11-02 01:54:44 UTC (rev 3915)
@@ -405,36 +405,62 @@
 
 
 ##-----------------------------------CREATE SHAPES----------------
-class CreaShapes(bpy.types.Operator):
-    bl_idname = "mesh.split_lr_shapes_osc"
-    bl_label = "Split LR Shapes"
-    bl_options = {"REGISTER", "UNDO"}
-    def execute(self, context):
-        ## VARIABLES
-        ACTOBJ=bpy.context.active_object
-        LENKB=len(ACTOBJ.data.shape_keys.key_blocks)
-        """
-        ## RECORTO NOMBRES
-        for SHAPE in ACTOBJ.data.shape_keys.key_blocks:
-            if len(SHAPE.name) > 7:
-                SHAPE.name=SHAPE.name[:8]
-        """        
 
+def DefSplitShapes(self,ACTIVESHAPE,INDEX):
+    ## VARIABLES
+    ACTOBJ=bpy.context.active_object
+    LENKB=len(ACTOBJ.data.shape_keys.key_blocks)
+    
+    ## RECORTO NOMBRES
+    for SHAPE in ACTOBJ.data.shape_keys.key_blocks:
+        if len(SHAPE.name) > 7:
+            SHAPE.name=SHAPE.name[:8]
+ 
+    if ACTIVESHAPE:  
+        print(INDEX)
+        ACTOBJ.active_shape_key_index=INDEX          
+        AS=ACTOBJ.active_shape_key
+        AS.value=1
+        bpy.ops.object.shape_key_add(from_mix=True)
+        ACTOBJ.data.shape_keys.key_blocks[-1].name=AS.name[:8]+"_L"
+        ACTOBJ.data.shape_keys.key_blocks[-1].vertex_group="_L"
+        bpy.ops.object.shape_key_add(from_mix=True)
+        ACTOBJ.data.shape_keys.key_blocks[-1].name=AS.name[:8]+"_R"
+        ACTOBJ.data.shape_keys.key_blocks[-1].vertex_group="_R"
+        bpy.ops.object.shape_key_clear()
+           
+    else:       
         ## DUPLICO SHAPES Y CONECTO GRUPO
         for SHAPE in ACTOBJ.data.shape_keys.key_blocks[1:]:
             SHAPE.value=1
             bpy.ops.object.shape_key_add(from_mix=True)
-            ACTOBJ.data.shape_keys.key_blocks[-1].name=SHAPE.name+"_L"
+            ACTOBJ.data.shape_keys.key_blocks[-1].name=SHAPE.name[:8]+"_L"
             ACTOBJ.data.shape_keys.key_blocks[-1].vertex_group="_L"
             bpy.ops.object.shape_key_add(from_mix=True)
-            ACTOBJ.data.shape_keys.key_blocks[-1].name=SHAPE.name+"_R"
+            ACTOBJ.data.shape_keys.key_blocks[-1].name=SHAPE.name[:8]+"_R"
             ACTOBJ.data.shape_keys.key_blocks[-1].vertex_group="_R"
             bpy.ops.object.shape_key_clear()
+    
+    print("OPERACION TERMINADA")    
 
-        print("OPERACION TERMINADA")
+class CreaShapes(bpy.types.Operator):
+    bl_idname = "mesh.split_lr_shapes_osc"
+    bl_label = "Split LR Shapes"
+    bl_options = {"REGISTER", "UNDO"}
+
+    @classmethod
+    def poll(cls, context):
+        return context.object is not None
+
+    activeshape=bpy.props.BoolProperty(name="Only Active Shape", default=False)  
+    
+
+    def execute(self, context):
+        self.index=bpy.context.object.active_shape_key_index
+        DefSplitShapes(self,self.activeshape,self.index)
+
         return {'FINISHED'}
 
-
 ##----------------------------SHAPES LAYOUT-----------------------
 
 class CreaShapesLayout(bpy.types.Operator):
@@ -2495,4 +2521,4 @@
 
 
 if __name__ == "__main__":
-    register()
+    register()
\ No newline at end of file



More information about the Bf-extensions-cvs mailing list