28
$\begingroup$

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

$\endgroup$
  • $\begingroup$ I just noticed that since I took the first screenshot, I've shrunk the double helix to just one spin. $\endgroup$ – ajwood Aug 15 '13 at 3:12
  • 1
    $\begingroup$ If you want more detailed helixes, BioBlender addon 1.0 was released last month. It let's you load .pdf files from the protein database $\endgroup$ – zeffii Aug 15 '13 at 10:19
  • $\begingroup$ If using a curve to generate the spiral, see: How can I duplicate a mesh along a curve? $\endgroup$ – Aldrik Aug 15 '13 at 10:59
  • $\begingroup$ I used a circle and a Screw Modifier, so I don't think that one would work for me. I might want to animate the helices straightening out into a ladder, so I might need rethink my approach.. $\endgroup$ – ajwood Aug 15 '13 at 20:22
  • $\begingroup$ How accurate are you trying to be? Are you just doing something that kind of looks like a twisted ladder, or do you need to generate a specific base pair sequence? If the latter, try 3D-Dart. $\endgroup$ – Elyz Apr 16 '18 at 16:28
44
$\begingroup$

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.

$\endgroup$
  • 1
    $\begingroup$ Aha - I'd been trying something like this, but hadn't figured out to disable the constant offset. $\endgroup$ – ajwood Aug 15 '13 at 20:19
  • 2
    $\begingroup$ Why would you consider the old way to be more powerful? $\endgroup$ – ajwood Aug 16 '13 at 1:05
  • 3
    $\begingroup$ Because you can do custom movements, rotations, scaling, different spaces between Dupliframes. Array modifiers duplicate in a very regular fashion which is good for most cases. Btw, I said 'more powerful in some aspects', not 'more powerful per se' $\endgroup$ – Haunt_House Aug 16 '13 at 1:22
  • $\begingroup$ Cool! I wasn't challenging the notion, just curious :) $\endgroup$ – ajwood Aug 16 '13 at 15:10
  • $\begingroup$ Don't worry, I understood it right (: $\endgroup$ – Haunt_House Aug 16 '13 at 15:52

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.