# how to make piston with offset pivot point (angled damped track)

I want to make a piston with offset pivot point.

The idea is that the armature 1 should rotate following the armature 2 in the X and Y axes without bending between bones B1 and B2 using damped track constraint or something like that.

i've tried it with IK and copy rotation, but I didn't go well. Are there any other ways to achieve that?

EDIT: I attached the file

• Commented Nov 22, 2023 at 9:32
• @DuarteFarrajotaRamos thanks, but i couldn't find a solution there Commented Nov 22, 2023 at 12:21
• can u pls add a link to maybe yt video, where we can see the animation you wanna have? thx Commented Nov 22, 2023 at 17:31
• @Chris yeah, you're right that's a good idea. but unfortunately i don't have one. instead of a video i attached the blend file, if that's ok Commented Nov 23, 2023 at 5:02
• is this what you want to achieve? [1]: i.sstatic.net/ToIE7.gif Commented Nov 23, 2023 at 6:30

Here's how I understand the problem, starting with a picture of labeled points:

Given those points:

1. BC should not rotate relative to AB in any pose.

2. BC should point at E in all poses.

3. DE should point at B in all poses.

4. We control from the position of A and E (and F, but F doesn't really matter for anything here.)

5. All bones shown maintain their rest poses lengths, but the distance between C and D can change.

We can do that with IK.

Shown here at rest on left, pose on right:

Notice hierarchy on outliner. We've added an additional bone, "ik3", parented to BC. It targets EF with an IK constraint 3 bones long, with stretch enabled. On the bone's IK settings, it is locked in all axes but Y, with 1.0 stretch enabled for it:

(and really, it doesn't matter if its locked or not in Y in this case, that's just a general thing for other problems of this nature.)

Bone BC, meanwhile, has all axes locked for purposes of its IK, in order to maintain its relationship with AB. Neither AB not BC have stretch enabled.

We haven't yet met our third rule, that D points at B, but that's a simple matter:

A damped track constraint solves it nicely, although depending on your mesh, you may wish to use a combination of locked tracks instead.

Edit: BTW, I'm doing everything here with bones in a single armature, which is, believe me, a much more convenient way to rig than to have a bunch of single bone armatures. Sometimes, you can use objects, or single bone armatures, to do the same things as bones, even though it's much less convenient; but here, you just can't run IK except with bone constraints, and the chained bones need to all be part of the same armature. This isn't something inherent to IK, just a Blender limitation.

Ed2: Maybe worth noting that this rig can be streamlined--- since BC never changes relative to AB, these can be combined into a single bone AC. Doing so would, maybe, shave a few nanonseconds off calculation time, at the cost, maybe, of making it a little harder to understand what's happening.

• yes!!! that's exactly what i needed. who would have thought that such an easy goal has such a tricky solution. thanks a lot, Nathan, you're my savior! Commented Nov 23, 2023 at 19:05