[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3667] contrib/py/scripts/addons/ oscurart_tools.py: Restore Distribute Objecst

Eugenio Pignataro info at oscurart.com.ar
Sun Aug 5 23:11:55 CEST 2012


Revision: 3667
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3667
Author:   oscurart
Date:     2012-08-05 21:11:55 +0000 (Sun, 05 Aug 2012)
Log Message:
-----------
Restore Distribute Objecst

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-08-04 09:30:38 UTC (rev 3666)
+++ contrib/py/scripts/addons/oscurart_tools.py	2012-08-05 21:11:55 UTC (rev 3667)
@@ -136,6 +136,7 @@
         colrow.prop(bpy.context.scene, "RenameObjectOt", text="")
         colrow.operator("object.rename_objects_osc", icon="SHORTDISPLAY")
         col.operator("object.duplicate_object_symmetry_osc", icon="OBJECT_DATAMODE", text="Duplicate Symmetry")
+        col.operator("object.distribute_osc", icon="OBJECT_DATAMODE", text="Distribute")
         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")
@@ -2235,7 +2236,48 @@
     def execute (self, context):
         reSymMesh(self)
         return {'FINISHED'}
+    
+##=============== DISTRIBUTE ======================    
 
+
+def ObjectDistributeOscurart (self, X, Y, Z):
+    if len(bpy.selection_osc[:]) > 1:
+        # VARIABLES
+        dif = bpy.selection_osc[-1].location-bpy.selection_osc[0].location
+        chunkglobal = dif/(len(bpy.selection_osc[:])-1)
+        chunkx = 0
+        chunky = 0
+        chunkz = 0
+        deltafst = bpy.selection_osc[0].location
+        
+        #ORDENA
+        for OBJECT in bpy.selection_osc[:]:          
+            if X:  OBJECT.location.x=deltafst[0]+chunkx
+            if Y:  OBJECT.location[1]=deltafst[1]+chunky
+            if Z:  OBJECT.location.z=deltafst[2]+chunkz
+            chunkx+=chunkglobal[0]
+            chunky+=chunkglobal[1]
+            chunkz+=chunkglobal[2]
+    else:  
+        self.report({'ERROR'}, "Selection is only 1!")      
+    
+class DialogDistributeOsc(bpy.types.Operator):
+    bl_idname = "object.distribute_osc"
+    bl_label = "Distribute Objects"       
+    Boolx = bpy.props.BoolProperty(name="X")
+    Booly = bpy.props.BoolProperty(name="Y")
+    Boolz = bpy.props.BoolProperty(name="Z")
+    
+    def execute(self, context):
+        ObjectDistributeOscurart(self, self.Boolx,self.Booly,self.Boolz)
+        return {'FINISHED'}
+    def invoke(self, context, event):
+        self.Boolx = True
+        self.Booly = True
+        self.Boolz = True        
+        return context.window_manager.invoke_props_dialog(self)
+
+
 ##======================================================================================FIN DE SCRIPTS
 
 
@@ -2283,6 +2325,7 @@
     bpy.utils.register_class(OscSelection)
     bpy.utils.register_class(OscResymSave)
     bpy.utils.register_class(OscResymMesh)
+    bpy.utils.register_class(DialogDistributeOsc)
 
 def unregister():
     bpy.utils.unregister_class(OscPanelControl)
@@ -2328,7 +2371,9 @@
     bpy.utils.unregister_class(OscSelection)
     bpy.utils.unregister_class(OscResymSave)
     bpy.utils.unregister_class(OscResymMesh)
+    bpy.utils.unregister_class(DialogDistributeOsc)
 
-
 if __name__ == "__main__":
-    register()
\ No newline at end of file
+    register()
+else:
+    unregister()



More information about the Bf-extensions-cvs mailing list