From BlenderWiki
Introduction
In this very simple tutorial, we'll explore some of the possibilities offered by the modifier stack. Each element of this stack is very well documented in the Modifiers Introduction section, so we won't go into details for every one of them but rather see what we can get by combining some of them.
We will create a very simple DNA-style double helix [1] combining the following modifiers: Subsurf, Mirror, Array and Curve.
Creating the Building Block
Our "Nucleic Acid" will be very simple indeed. Let's create it.Be sure your cursor is at Origin. Select the default Cube. Create one if needed (Space>Add>Mesh>Cube), but be sure to be in Topview before. You should automatically switch to Edit Mode. Scale constraining global X to 0.20. (S then ⇧ Shift+X then type 0.2 and ↵ Enter). While still in Edit Mode move this selection 1 unit in the +x direction (Press G then X then type 1 and ↵ Enter).
Then add an UVSphere with 8 segments/rings and radius=1 (Press Space, Add>UVSphere). Grab it and move along x 2.5 BlenderUnits (Press G then X then type 2.5 and ↵ Enter). Now we've got a basic Nucleic Acid. It is very blocky though. Switch to Object Mode and press "Set Smooth" in the "Link and Material" Panel of the Editing Menu (F9).
Smoothing the Building Block
First encounter with the modifier stack: we are going to use the Subsurf Modifier. In this same Editing Menu (F9) we have a "modifier" panel with a Popup button. Select "Subsurf" from this list. All of a sudden our block is nicer! The settings Blender chooses are fine for now, but you can try to push up the "Levels" slider a bit to see what it does: the shapes become smoother and smoother. I wouldnt recommend pushing too far though: 3 or 4 are high values for our usage here. I'd choose 2 for both "Levels" and "Render Levels" (which is obviously the level used for the Rendering).If you are in Edit Mode, you may wish to see where your vertice have been moved. Tick the grey box left to the up and down arrows in the subsurf modifier interface: the vertices now are stuck to the subsurface they produce.
Creating a twin for our Building Block
We now want to add another base opposite to this one so that we'll have a true double helix. While we could just duplicate the vertice of the block and rotate them 180, we will use another modifier, Mirror.Select our block and add a Mirror modifier. You may wish to collapse the subsurf modifier with the use of the little triangle left to its name in order to have a clearer view of the stack. (By the way, it is worth mentionning that modifier stacks are easier to use if the panel is used verticaly). You can see that the creation of this modifier lead to the creation of a symetrical block opposite to the first one. In fact the default settings are just fine here too: we want the mirroring to happen along the Y-axis.
Now that we use 2 modifiers simultaneously, we can have a go at changing their order to see what this implies. Press the little Up arrow in the Mirror modifier. This modifier is now applied BEFORE the subsurf modifier and the result is different. I'd stay with Subsurf on top though.
Duplicating this Shape
We need to multiply this pair: DNA is obviously much much longer than that!Be sure to be in Object Mode and move into Front View (1 NumPad). We will now add another modifier to the stack: Array. As soon as you've added it, you see a copy of our object appear next to it. Unfortunately we'd like it to be situated ABOVE the original.
Take a look at the Array modifier: the Offset is based on the size of the original ("relative") and works in the X axis (value=1). We want it to work in the Z direction. So set X to 0 and Z to ~1.2 in the "relative Offset" box. Constant Offset would move our duplicate a certain amount of Blender Units in a given direction, regardless of its size. Of course 2 isn't enough: enter 20 in the "Count" box.
Adding some "twists"
Now we want to turn this into a spiral. The trick is to use an "Empty".Follow these instructions: in Object Mode, switch to Top view (7 NumPad) and, while the cursor is still situated at the Origin, add an Empty (Space>Add>Mesh>Empty).
Note
In Blender 2.49 you add an Empty with Space>Add>Empty. Make sure you don't add an empty mesh but an actual Empty
|
Now select our object and enter "Empty" in the "Object Offset" box. Make sure that the "Object Offset" button is pressed. Switch to Front View (1 NumPad), select our Empty and Move it (G): the duplicates rearrange to accomodate its location. Put it back where you found it! (CtrlZ or enter (0,0,0) in the Transform Properties box found in the Object menu)
If we apply a rotation to this Empty, every single copy of our object will copy this rotation and apply it to itself with regards to its predecessor. So select our Empty and rotate it 15 degrees along the z-axis (R, Z, type 15 and pres ↵ Enter).
...and some "turns"
Now, still in Front View and Object Mode, create a Bezier curve (Space>Add>Curve>Bezier). Scale it 30 times (S, type 30 and press ↵ Enter) and rotate 90 degress (R, type 90 and press ↵ Enter). Now ⇆ Tab to Object Mode, select the helix and add another modifier, the "curve" one. Type "Curve" (the default name of the curve we've just created) in the "Ob." box. This will force our helix to follow the curve. Now tick the "Y" at the bottom: this is the direction we need to follow... Most of the work is done!A very handy tool is to be found in the array modifier: instead of "Fixed Count" choose "Fit To Curve Length" and type "Curve" in the "Ob:" box just below. You can see that the helix now stretches to the whole length of our curve! Try scaling the curve (in Edit Mode!) and you'll see.
Making this scene pleasing to the eye
I decided to apply Mirror and Transparency, added three colored lamps and DoF to create the following render...








