9
$\begingroup$

I'm trying to rig a model of a Peaucellier-Lipkin mechanical linkage. While inverse kinematics for a chain of bones in the armature works well for some of the linkage, I don't see how to create the closed loop portion. There must be some way to constrain the tails of two bones to stay together, but I am having trouble finding it.

Here's what I have so far.

Screenshot of Blender 2.69 with armature for PLL

$\endgroup$
1
  • $\begingroup$ I wonder if non-rigging method is acceptable? If so, I can suggest a better one. $\endgroup$ Commented Mar 4, 2014 at 11:44

1 Answer 1

18
$\begingroup$

There are generally two ways here: bone constraints and rigidbody simulation.

Solution 1 - Bone Constraints:


  1. Create the linkages (meshes).
  2. Create armature with bones set as shown on the image below.
  3. Animate the key bone (the red one here).
  4. Rigging.

enter image description here enter image description here enter image description here

Result:

enter image description here

Example file:

Solution 2 - Rigidbody Simulation:


  1. Build the initial state of the linkage, make sure they don't intersect or too close to each other;
  2. Select them all, click Add Active button in Physics tab in Toolshelf;
  3. Select either two linkages, click Connect in that tab to create constraints, set type to Hinge, move them to expected hinge points. Note that Hinge rotates along the Z axis of constraints (empty objects), so you may need to correct the rotation.
  4. Create rotation action for BoneEB (the blue bone in the image below), toggle Animated in its Rigid Body setting panel.

enter image description here enter image description here enter image description here enter image description here

For better result, you need to set the Steps per Second and Solver Iterations relatively high in Scene tab.

Result:

enter image description here

Example file:

$\endgroup$
7
  • 1
    $\begingroup$ That's cool! Can you provide some details about how you did that? $\endgroup$
    – Matt
    Commented Mar 4, 2014 at 16:20
  • $\begingroup$ @Matt OK. See the updated answer. $\endgroup$ Commented Mar 4, 2014 at 17:09
  • $\begingroup$ Why are the Steps Per Second and Iterations so high? $\endgroup$
    – Vader
    Commented Mar 4, 2014 at 17:37
  • $\begingroup$ @Vader I think there are some loop constraints, which needs more accurate calculation in this case. I've tried not to do so, but the result is weird. $\endgroup$ Commented Mar 4, 2014 at 17:42
  • $\begingroup$ Great! I started looking at rigid body physics, too, but I didn't get very far. Building on what you've done, someday, I'd like to write some Python to output the coordinates of the empty at D as a function of the rotation of the blue arm. $\endgroup$
    – John636
    Commented Mar 4, 2014 at 18:34

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .