I posted this some time ago. There are several posts on this subject if you search for "tank treads" in the past year.
/////////////////////////////////////////////////////////////
Here is a quick and dirty method to get an animated tank tread rig.
The basic idea is this:
1. Create a nurbs circle, give it 32 sections,or more depending on the accuracy you are looking for. Delete history.
2.Deform the circle.
A. This can be done with a lattice with a lot of divisions (16 plus in each direction) to get the shape of your wheel.This curve will be used as a path which will run through the pivot point of your plates which make up the tread. When you create the lattice, use the option to "group base and lattice together", then scale up the group node above the lattice which will ensure that when you deform the curve, you will not lose a c.v. that is close to the edge.
B. This can also be done (and maybe will be easier to get a good defromation) with a wrap deformer. The advantage of using the wrap deformer in this case is that you will more easily be able to maintain consistent paramatarization of your curve (the spacing between the c.v.'s on the curve). The wrap deformer can be composed of a copy of the curve (scale it up slightly to make it easier to select and see changes, I scaled mine up to 1.1 units ). The setting on the wrap deformer should always be set to use max distance (start out with a value of .2). Create the wrap and translate the deforming circle (this is to test the wrap). If the deformed cirlce does not move exactly like the deformer, icrease the max distance by selecting the deformed curve and selecting "wrap1" in "Inputs" area of the channel box, (or whatever the name is depending on if you have other wraps in the scene). You can adjust the max distance there (I used .5 for my test scene). The other attribute to adjust which will smooth out the deformation is the "Wrap Samples", increse these to 50 for a really smooth falloff. Now you can move the c.v.'s of the deforming (outer) circle and get your desired shape for the inner circle. Do not delete history on the inner circle.
Now if you animate the circle by rotating in Y (unless you rotated the circle after creation, then you would rotate in another axis) you will see that the deformed circle is rotating on the oval shaped path.
The next step involves attatching your objects to the curve by making path animation. In the animate menu, Animate > Path > Attatch to Path (maya3 command, maya4 is different but similar), choose the "Follow" option. This will allow you to orient the object to the normals of the path. I would suggest not attatching your objects directly but attaching locators which will be parents of your tread pieces. After you attatch the locator to the path, you will need to delete the end key of the path curve for the object. This will stick the object to one point on the path depending on where the single key is placed. When you create your multiple path objects, you can offset their position on the path by changing the value on the key (vertical positon of the key for value, horizontal for time)
The path curve is now controlled by the wrap curve. The wrap curve can be parented under the axel of the vehicle. The path curve will then follow the vehicle. Do not put both of these objects into the vehicle hierarchy or you will get double transformations.
Now you will be able to put several levels of animation on your treads. First you will be animating the path curve rotation to create the movement. This will most likely be done by linking the rotation of the tread to the forward and backward movement of the vehicle.
path.rotateY = -(mover.translateX * (360.0 / (radius* 3.14159))) ;
"Path" being the deformed curve and "mover" is the node of the vehicle which is getting the translation values. The ".translateX" value may be ".translateZ" depending on your orientation of the vehicle.
You can also set up some clusters on the wrap curve to get some jiggle at the top of the tread where the tread hangs due to gravity.
That's all folks,
alan