Blender

Blender

Not enough ratings
Blender recursive duplicator [Python]
By Dev⁧⁧Dave
A very simple duplicator that recursively duplicates objects, scales and moves them in local axes.
   
Award
Favorite
Favorited
Unfavorite
Introduction
  • A very simple duplicator that recursively duplicates objects, scales and moves them in local axes.
  • The transformation can be applied to any object. It will move and scale on the y-axis.
  • Parameters can be used to set scale and offset on other axes.
  • Script works on local axes!
Python code
import bpy import mathutils duplicates = 1 scale_on_x = 1 scale_on_y = 1.045 scale_on_z = 1 move_on_x = 0 move_on_y = 0 move_on_z = -0.036 def simple_duplicate(dobject, limit, actual): copy_of_dobject = dobject.copy() copy_of_dobject.data = copy_of_dobject.data.copy() bpy.context.collection.objects.link(copy_of_dobject) bpy.context.view_layer.objects.active = copy_of_dobject inv = copy_of_dobject.matrix_world.copy() inv.invert() # move copy_of_dobject.location += mathutils.Vector( (move_on_x, move_on_y, move_on_z) ) @ inv copy_of_dobject.scale = ( copy_of_dobject.scale[0] * scale_on_x, copy_of_dobject.scale[1] * scale_on_y, copy_of_dobject.scale[2] * scale_on_z ) actual += 1 if actual <= limit: print("call") simple_duplicate(copy_of_dobject, limit, actual) # execute simple_duplicate(bpy.context.active_object, duplicates, 1)
Conclusion
_ _ _ _ | || |__ _ _ __ _ __ _ _ __ ___ __| (_)_ _ __ _ | __ / _` | '_ \ '_ \ || | / _/ _ \/ _` | | ' \/ _` | |_||_\__,_| .__/ .__/\_, | \__\___/\__,_|_|_||_\__, | |_| |_| |__/ |___/