38

Is there a way to rotate each iteration of an Array Modifier?

For example, I've created the helices of a DNA molecule, and I'm trying to add the base pairs. I've got a cylinder with an array modifier.

base array modifier

Then, I thought I'd apply a simple deform to twist them 360 degrees, corresponding to one twist of the double helix. The problem I'm seeing is that the deform modifiers squishes the cylinders, rather than rotating them independently.

enter image description here

ajwood
  • 10,063
  • 11
  • 60
  • 112

1 Answers1

58

You can achieve that with the Array modifier alone.

  1. Create an empty at the origin of your base pair and make sure it has the same xyz rotation.
  2. Disable all offsets in the Array modifier.
  3. Enable Object Offset and select the empty from the list.
  4. Rotate the empty and move it up a little, so that it matches your helix.

The object offset uses the differences regarding location, rotation and scale to generate the array.

Array modifier with object offset to create a dna helix

Another, older and in some aspects, more powerful way would be to animate the base pair rotating and moving up the helix and then turn on dupliframes in the Duplication panel of the object properties.

To get even spaces between the steps, you'd have to set the f-curve to linear interpolation.

Haunt_House
  • 16,049
  • 5
  • 48
  • 78