Fancy mechanical arm

I created a fancy mechanical arm like this:


This setup was achieved with simply cylinder with array and curve modifier. Curve can be deformed with two empties hooked to curve control points. The arm has ability to dynamically change its length like this:


Length change is carried out by modifying relative offset of array modifier - very straightforward solution.

Now my problem is: I want to add a hand at the right end of the arm which automatically follow the arm when I change arm shape (by moving empties) and when I change arm length (by changing relative offset). I want the arm to be placed in proper orientation all the time i.e. it should be placed on the extension of the arm line. Below I added the picture which depicts how it should look like (I added exemplary hand there):


I have been struggling for a quite long time how to achieve that but with no luck. Any ideas?

P.S. I will attach blend file in next post.

Blend file in attachment

Attachments

arm-problem.blend (581 KB)

See if this works:

Attachments

arm-problem_01.blend (470 KB)

Just in case, check setting up spline IK - tut by Olson - http://getblended.org/2013/03/385/
It’s rigging and bones a bit but might suit well here imho.

@DCBloodHound: I think the file you provided is partial solution. The hand is following the curve and it is placed in correct orientation, but the point is that I would like the hand to follow end of the arm, not the end of the curve. This requirement makes this issue very hard to solve I think. Anyway thanks for your proposal :slight_smile:

@eppo: that’s very interesting tutorial. It didn’t apply to my case directly but it gave me an idea how to achieve what I want with some modifications of technique shown there. Unfortunately the idea I have involves a lot of work with setup, for example it would require to apply array modifier on arm and maintain every arm segment as separate object assigning parent bone to every segment - not very handy way I think. I will try to create such thing and upload blend file when I am done, but I hope there is some easier way to do what I want…

Some other ideas?