Ok this had been bugging me for some time now. There had to be a way to do it. I found it, unfortunately you can't do it by just moving one object.....it'd be nice if they could add an option to the link to only keep the x,y,or z distance, then it would have worked that way. I decided to look how an actual locomotive was set-up. OK so here we go The blue circles are the wheels of the train Cylinder 1 in the linkage Cyl 2 is the transfer rod Cyl 3 is the piston rod Cyl 4 is the piston housing Spheres are null objects 1. Link the right wheel to the left wheel with only rotation set. 2. Cyl 1 is linked to left wheel with only distance and offset set. Origin is moved to where the mounting pin would be. 3. Sphere 2 is linked to Cyl 1. This is created because tracking is set to the center of an object not it's origin point. 4. Cyl 2 is tracked to sphere 2 and origin is moved to where Cyl 2 & Cyl 3 would pivot. Linked to sphere 1. 5. Cyl 3 is linked to sphere 1. 6. You may have to make sure sphere 1 is at the same Y coordinate as Cyl 2 & Cyl 3. Sphere 1 is at the x,z coordinates of Cyl 1 (not it's origin handle). Ok to animate we will be moving two objects, left wheel and sphere 1 working in object space. Set your time scrubber to where you want and rotate left wheel by a certain amount of degrees (we'll use 90 degree increments in my example). Now (depending on orientation of model) note the new x or z position of Cyl 1 and then set sphere 1's x or z postion to the same thing (this will give you your lateral movement). Continue doing this until the left wheel comes around full circle. Eureka! you have a working locomotive wheel. Have fun!