Problem with track to constraint and hydraulics

I need a hydraulic pump to operate something.
I recently looked at this tutorial:

When it got to the track to constraint part i could not figure it out at all. Very frustrating.
I want a hydraulic pump to operate correctly, but when i add the constraints, nothing happens, and if i change the x,y,z settings then my model gets construed out of its original position.

I don’t care how i do it, i just need a way to make my pump work accurately.
I’ve included some pictures. The first and second pictures show how i’ve rigged my model.
The third and fourth pictures are the actual pump one in wireframe and one in solid just to get a better idea of the parts. The pump needs to push the model up as you can see in the first to second pictures. It doesn’t need to physically push it up, just appear to.
The green circles indicate pivot points. The orange piece grips around the pipe.

Tell me if i’m not being clear enough.
I appreciate any help with this.


I rigged up an example of what you’re trying to do. Just move the selected Target bone to see the effect.

Just set the track to constraint on the main rotating part and make an action constraint drive the piston as the target of the track to moves down.

There are probably many other ways to achieve this effect.


Piston.blend (147 KB)

Okay, thanks, but i’m still a little confused. I pretty much don’t know what i’m doing when it comes to constraints. What does the action constraint do? How do i make the rig function? i watched the animation and the piston detaches, which shouldn’t happen, so maybe i’m doing something wrong. Also, i should’ve said this before, but the pole that the pump is attached to has the bone i have set up to move everything the way it needs to. Is there a way that i could make the hydraulic piston move how it needs to just by rotating the bone? In pictures one and two that i attached, I rotated this bone from down to up. i just want the pump to automatically go in and out by moving the pipe bone. Therefore the orange grip on the pole and the blue base are fixed. The positioning of the hydraulic pump in my model isn’t correct, but you get the idea.

Piston rigs can get a little tricky, but this one is actually very simple, since you know in advance the position of both ends. You don’t need an action constraint; nor do you need my currently preferred trick for pistons, which is IK with stretching. All you need is two TrackTo constraints: the piston has to track to the far end of the cylinder, and the cylinder to the attachment point of the piston.

It is important that the latter is to the tail of the piston’s parent bone, not to the head of the piston bone itself, to avoid a circular dependency.
If you now rotate or move the bone for the pole the piston and cylinder should follow as required:

Best wishes,

hey hellot,

This thread has a nice example of a working hydraulic piston. However it uses empties and is object based. So I have also attached an example of how I would handle this problem with an armature (using 3 pistons). **I see MCollett has posted while I was writing this, so you have lots of examples to work with now :wink:

I wouldn’t use an action constraint for this scenario, since it uses pre-keyed animation (in the action editor). Personally I avoid using the action constraint as much as possible, since it muddies up the animation area when I would rather keep it clear for the animator.


hydraulicPiston_armature.blend (164 KB)

Thanks, MCollet and feelgoodcomics. These are both really simple solutions that help me out a lot. I kept trying to set constraints to the actual objects rather than making an armature. i don’t know what i was doing wrong, but it was extremely frustrating, so thank you.