[Bf-extensions-cvs] [575fe44] master: Restore Duplicate Sym tool restored

Eugenio Pignataro noreply at git.blender.org
Mon Oct 27 02:02:30 CET 2014


Commit: 575fe44efe3adaf66e29f61bcba283fbd18b0188
Author: Eugenio Pignataro
Date:   Sun Oct 26 22:02:09 2014 -0300
Branches: master
https://developer.blender.org/rBAC575fe44efe3adaf66e29f61bcba283fbd18b0188

Restore Duplicate Sym tool restored

===================================================================

M	oscurart_tools/__init__.py
M	oscurart_tools/oscurart_objects.py

===================================================================

diff --git a/oscurart_tools/__init__.py b/oscurart_tools/__init__.py
index 3c139ea..78c3cd9 100644
--- a/oscurart_tools/__init__.py
+++ b/oscurart_tools/__init__.py
@@ -153,6 +153,7 @@ class OscPanelObject(OscPollObject, bpy.types.Panel):
         colrow.prop(bpy.context.scene, "RenameObjectOt", text="")
         colrow.operator("object.rename_objects_osc", icon="SHORTDISPLAY")
         col.operator("object.distribute_osc", icon="OBJECT_DATAMODE", text="Distribute")
+        col.operator("object.duplicate_object_symmetry_osc", icon="OUTLINER_OB_EMPTY", text="Duplicate Sym")
         colrow = col.row(align=1)
         colrow.operator("object.modifiers_remove_osc", icon="MODIFIER", text="Remove Modifiers")
         colrow.operator("object.modifiers_apply_osc", icon="MODIFIER", text="Apply Modifiers")
diff --git a/oscurart_tools/oscurart_objects.py b/oscurart_tools/oscurart_objects.py
index a1eb0a3..bd4b15e 100644
--- a/oscurart_tools/oscurart_objects.py
+++ b/oscurart_tools/oscurart_objects.py
@@ -333,3 +333,83 @@ class RenderOnlyInCamera (bpy.types.Operator):
         DefRenderOnlyInCamera()
         return {'FINISHED'}
 
+
+##------------------------ DUPLICATE OBJECTS SYMMETRY ------------------------
+
+def duplicateSymmetrical (self, disconect):
+    for objeto in bpy.context.selected_objects:
+
+        OBSEL = objeto
+        bpy.ops.object.select_all(action='DESELECT')
+        objeto.select = 1
+        bpy.context.scene.objects.active = objeto
+        bpy.ops.object.duplicate(linked=1)
+        OBDUP=bpy.context.active_object
+        print(OBDUP)
+        OBDUP.driver_add("location")
+        OBDUP.animation_data.drivers[0].driver.expression = "-var"
+        OBDUP.animation_data.drivers[0].driver.variables.new()
+        OBDUP.animation_data.drivers[0].driver.variables[0].type = "TRANSFORMS"
+        OBDUP.animation_data.drivers[0].driver.variables[0].targets[0].id = objeto
+        OBDUP.animation_data.drivers[0].driver.variables[0].targets[0].transform_type = 'LOC_X'
+        OBDUP.animation_data.drivers[1].driver.expression = "var"
+        OBDUP.animation_data.drivers[1].driver.variables.new()
+        OBDUP.animation_data.drivers[1].driver.variables[0].type = "TRANSFORMS"
+        OBDUP.animation_data.drivers[1].driver.variables[0].targets[0].id = objeto
+        OBDUP.animation_data.drivers[1].driver.variables[0].targets[0].transform_type = 'LOC_Y'
+        OBDUP.animation_data.drivers[2].driver.expression = "var"
+        OBDUP.animation_data.drivers[2].driver.variables.new()
+        OBDUP.animation_data.drivers[2].driver.variables[0].type = "TRANSFORMS"
+        OBDUP.animation_data.drivers[2].driver.variables[0].targets[0].id = objeto
+        OBDUP.animation_data.drivers[2].driver.variables[0].targets[0].transform_type = 'LOC_Z'
+        OBDUP.driver_add("scale")
+        OBDUP.animation_data.drivers[3].driver.expression = "-var"
+        OBDUP.animation_data.drivers[3].driver.variables.new()
+        OBDUP.animation_data.drivers[3].driver.variables[0].type = "TRANSFORMS"
+        OBDUP.animation_data.drivers[3].driver.variables[0].targets[0].id = objeto
+        OBDUP.animation_data.drivers[3].driver.variables[0].targets[0].transform_type = 'SCALE_X'
+        OBDUP.animation_data.drivers[4].driver.expression = "var"
+        OBDUP.animation_data.drivers[4].driver.variables.new()
+        OBDUP.animation_data.drivers[4].driver.variables[0].type = "TRANSFORMS"
+        OBDUP.animation_data.drivers[4].driver.variables[0].targets[0].id = objeto
+        OBDUP.animation_data.drivers[4].driver.variables[0].targets[0].transform_type = 'SCALE_Y'
+        OBDUP.animation_data.drivers[5].driver.expression = "var"
+        OBDUP.animation_data.drivers[5].driver.variables.new()
+        OBDUP.animation_data.drivers[5].driver.variables[0].type = "TRANSFORMS"
+        OBDUP.animation_data.drivers[5].driver.variables[0].targets[0].id = objeto
+        OBDUP.animation_data.drivers[5].driver.variables[0].targets[0].transform_type = 'SCALE_Z'
+        OBDUP.driver_add("rotation_euler")
+        OBDUP.animation_data.drivers[6].driver.expression = "var"
+        OBDUP.animation_data.drivers[6].driver.variables.new()
+        OBDUP.animation_data.drivers[6].driver.variables[0].type = "TRANSFORMS"
+        OBDUP.animation_data.drivers[6].driver.variables[0].targets[0].id = objeto
+        OBDUP.animation_data.drivers[6].driver.variables[0].targets[0].transform_type = 'ROT_X'
+        OBDUP.animation_data.drivers[7].driver.expression = "-var"
+        OBDUP.animation_data.drivers[7].driver.variables.new()
+        OBDUP.animation_data.drivers[7].driver.variables[0].type = "TRANSFORMS"
+        OBDUP.animation_data.drivers[7].driver.variables[0].targets[0].id = objeto
+        OBDUP.animation_data.drivers[7].driver.variables[0].targets[0].transform_type = 'ROT_Y'
+        OBDUP.animation_data.drivers[8].driver.expression = "-var"
+        OBDUP.animation_data.drivers[8].driver.variables.new()
+        OBDUP.animation_data.drivers[8].driver.variables[0].type = "TRANSFORMS"
+        OBDUP.animation_data.drivers[8].driver.variables[0].targets[0].id = objeto
+        OBDUP.animation_data.drivers[8].driver.variables[0].targets[0].transform_type = 'ROT_Z'
+
+        if disconect != True:
+            bpy.ops.object.make_single_user(obdata=True, object=True)
+            bpy.context.active_object.driver_remove("location")
+            bpy.context.active_object.driver_remove("rotation_euler")
+            bpy.context.active_object.driver_remove("scale")
+
+class oscDuplicateSymmetricalOp (bpy.types.Operator):
+    bl_idname = "object.duplicate_object_symmetry_osc"
+    bl_label = "Oscurart Duplicate Symmetrical"
+    bl_options = {"REGISTER", "UNDO"}
+
+    desconecta = bpy.props.BoolProperty(name="Keep Connection", default=True)
+
+    def execute(self,context):
+
+        duplicateSymmetrical(self, self.desconecta)
+
+        return {'FINISHED'}



More information about the Bf-extensions-cvs mailing list