Ive been checking out tutorials on how to do something I use alot and in Blender 2.77 it seems to be a real pain. I am used to seting my pivot to the centre of the object I want the array to rotate around and pesto. Anyone know how to do this? Creating an empty, o worse selecting the mesh you want to rotate around doesnt work, even after resetting scale of the, and /or the empty and checking offset the copies get wacked offsets.
import bpy
from math import *
from mathutils import *
radiusX = 3
radiusY = 3
obj = bpy.context.selected_objects
L = len(obj)
Len = (pi*2)/L
Cur = bpy.context.scene.cursor_location
for n, ob in zip(range(L), obj):
pp = Len * n
ob.location = Cur + Vector((sin(pp)*radiusX,cos(pp)*radiusY,0))
ob.rotation_euler = (0,0,-pp)
This script will place all selected objects around the 3d cursor.
select circle, and in the object properties set the Duplication to “Verts”
check “rotation” in order to rotate each object relatively.
Add a subdivision modifier to double the number of monkey heads. Or adjust the number of vetices manually.
This works with faces as well. And mesh modifiers may be applied as well - for example, the circle can be projected on a sphere with shrinkwrap. Then hide the sphere.
Btw, the duplicator mesh is hidden during rendering.
If you watch the the cursor is at the 0,0,0 location, but it have select cursor as pivot point. so yes, select any point, then control+ s, cursor to selection,
thank you lane !
spin function under edit mode is a good option. I use it seldom.
In my case I have four legs of a stool and I want them editable for future beveling materials and so on.
I could also use alt+D to duplicate and then rotate them around the coursor the first time and alt+R the second and third.
But somehow I’d like to understand how the array function work, also for sharing with other people working with me, and I can’t believe it works only for object with location 0,0,0.
if I “clear location” of the empty, it takes my array in the wrong position.
See picture, and if you like, blend file.