Hi, working with 2.55 here, and I’m trying to animate a mechanical linkage, which I’ve illustrated below.
The dark blue arm is freely hinged in the center of the red circle, with the light blue arm hinged to the end of it. What I want is for the end of the light blue arm to be attached to the orbiting dot in the small green circle.
In my project, the circles are controlled with IPOs (or FCurves now?) and the hinge locations are parented empties. I plan to have the green circle orbit the red one, but don’t -think- that should change the constraints.
I don’t know whether to use a bunch of constraints, or IK armatures (which I do not know how to use either). Any help would be appreciated.
Here’s how I would do it… Hope you are familiar with armatures!
In the attached file, I have an empty parented to a circle, and the circle’s rotation is keyframed via f-curves. I added an armature -> single bone at the location of the empty. Jump into pose mode and add a copy location constraint to it targeting the empty object. The position the cursor at the pivot point to the base of the arm, in armature’s edit mode add a bone, position the tip at the pivot point between the 2 arms. Extrude the tip of that bone out to the position of the 1st bone/empty. Add an IK constraint to the new bone, targeting the 1st bone created. Then select one of the mesh linkages, shift-select the armature, change to bone mode and select the bone for the linkage. Parent the linkage to the bone via ctrl-P -> to bone. Repeat for other linkage.
Might be tough if you don’t know how to use armatures, but IK constraints only work on bones, and it’s the best method I can think of.
Hi, thanks for your reply; I’ve got that part working now from looking at your file
I’ve just tried to orbit the small circle around the larger one and I’ve run into a problem with the armature flipping around, what can I do about that?
Solving the problem you are showing is simple, but I’m a bit confused, your first post showed a linkage with 2 arms, your last post didn’t show them. So do you still need 2 linkages?
Assuming you need two linkages, what I would do is select the first bone (the one on the outer wheel) and in edit mode duplicate it and move it above the pivot point of the linkage bones. Because you duplicated it, it will still have to copy rot constraint from the bone you duplplicated it from. Delete that constraint. Then in edit mode, make it’s parent the ik target bone (bones panel) and make sure connected is not checked. Then in pose mode, select the bone with the ik constraint on it, and fill in the pole target fields, armature as the object, new bone as the bone… BTW, you should always name bones. Call the new bone ‘pole_target’. Then you will have to adjust the pole angle as needed. If you bones flip around in the wrong direction, pointing away from the pole target instead of towards it, set the pole angle to 180 degrees.
It would be best to turn on ‘axis’ in the armature panel so you can observe the axis of the bones when working with them to see if they flip around when creating the new pole target. Sample .blend file is attached. Any help you need with this or other added elements that don’t work, I would need to see the .blend file to check it out. I really hate troubleshooting/helping with such vague topics, but since you got the first part right, here you go…
I’d be tempted to use drivers. Given your arm lengths dont change and you know the distance from the inner circle centre to the connect point on the outer small circle, you have three side lengths of a triangle, and using simple mathematics can calculate the local angle at the elbow… (as well as the other two). Given your arms are on a fixed plane there will be two solutions, “elbow up” and “elbow down” interestingly your example above seems to flip between them.
I had a look at revolt’s rig… Putting a track to constraint on the first arm bone to the empty seems to solve the elbow flip problem… I put the circle on a follow path to check and posted.
I included a scene with a way of using drivers to follow a path, change directions and speed. It seems to me that it could have some application to this.
I also noted that because of something in your scene drivers don’t seem to update, like using the frame number to get location for a path… i have no idea why… so i didn’t combine the two. In playing around with this rig i found that a circle path with a missing link at the top emulates a throwing arm nicely… be great for a chunky wooden catapult type thingy.