1
$\begingroup$

So initially I've learned using the Array modifier from this video but actually it is decribed in short in this Q&A. When I used it to create a spiral ladder, I got a problem, though: when I used an empty for object offset, the copy ladder step was scaled by more than 10 along Z and by 2 along X which I fixed by scaling the empty.

Now I'm trying to use the Array modifier to create a cylinder with a code of thinner cylinders emerging from it. Here's what I have before applying the modifier:

enter image description here

Note that:

  1. the thin cylinder's facets were moved so that its origin is on its bottom
  2. it was then rotated around the X axis
  3. then it was moved along Y and its origin was moved back to the (0,0,0)
  4. now cursor is also at (0,0,0) and I created an empty also there, at (0,0,0)

So what I'm expecting is when I set an Array modifier with the Object offset of the Empty (the Arrows one), the copies are on the same place as the original cylinder and then I rotate the Empty and get my nice cone. However, even without any rotations, just when I set Object offset to the Empty, I get this:

enter image description here

Man, I'm definitely missing something. I've seen this question but the origin of my thin cylinder is in the same place as the Empty. Any ideas?

Here's my .blend file:

PS and here's an idea of what I'm trying to get (I've made this one by simple creating duplicates and rotating them around Z, but I'd like to have multiple of them placed in a regular manner):

enter image description here

$\endgroup$
1
$\begingroup$

Select the smaller cylinder and apply the rotation and scale.

enter image description here

This can also be done by pressing CtrlA followed by O.

The result should be like this.

enter image description here

Then select the empty and rotate it around the Z axis.

enter image description here

N.B. You could also rotate the small cylinder itself around the Z axis, but I prefer doing all transforms on the empty when using one to guide an array.
And the reason why this happens, is that for every duplicate the Array modifier makes, it takes into account the transforms of both the duplicated object and of the empty. I have not read the source code, nor have I found specific information on how it calculates the transforms, but from what it looks like to me, it divides the scale of the empty by the scale of the object.
An example: The object has scale set to 0.333 and the empty has scale set to 2. The overall scale for each repetion would be 2/0.333 = 6, so each duplicate would be 6 times bigger than the previous one.
With rotation and position, it looks like it's just subtracting the position and rotation respectively of the empty from the position and the rotation respectively of the object.

$\endgroup$
  • $\begingroup$ Thanks! So, is it that rotate and scale are also modifiers but they (being not applied) are not listed in the modifiers panel? Where can I read some more about what actually happens here? $\endgroup$ – YakovL Sep 17 '16 at 17:48
  • $\begingroup$ @YakovL I edited my answer to include a brief explanation. $\endgroup$ – Duane Dibbley Sep 17 '16 at 17:58
  • 1
    $\begingroup$ @YakovL Thanks. I made a slight correction, since the explanation was only for scale. I also added a few lines on what it appears to be doing with rotation and location. $\endgroup$ – Duane Dibbley Sep 17 '16 at 18:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.