still cant lock to path

ok this should be the LAST time i ask this question.

how the heck do i make it so an object will follow a certain axis (in this case y) when it moves. Im trying still to animate an engine and need the piston head to stay on the y axis. Right now it has the correct orientation but always moves left to right (kinda like it has piston slap). Ive tried using an Empty but that just makes it so that it points in odd directions.

Select your object and press the n key. A little box will pop up with lots of numbers. Find where it says LocX: LocY: LocZ:. Next to these fields there is a little icon that looks like a lock. Press that button and you can no longer move your object on that axis.

ok this animation is driving me insane. It must be due to the IK Solver constraint or something but i cannot get the stupid piston to stay on one path. Here’s the list of bones, objects, and constraints.

Objects:
Piston
Rod
Crank

Armatures:
Piston -
Copy Rotation from an empty

Connecting Rod -
IK Solver - targeted at same empty USE tip enabled, RotW at max, PosW at Min, tolerance and iterations at max.

CrankShaft - None

i am really confused. If someone has made an animation of a running 4-cycle please tell me how you did it.