I'm trying to make something like a compass which is used to draw functions on paper. enter image description here

but I'm stuck and I have no idea how to rig it.
I want to make an animation to show how it works and I want to make an interactive bone so when the two legs move on their axis the parts in the middle move with them and become wider or thinner when the legs get separated or close to eachother.

Update: well I made an armature myself and it almost works. The only problem is I don't know how to pin those holes together.

the whole thing is I have rigged humans but I don't know how to rig mechanical parts.

enter image description here

Update 2: I tried to use a copy scale constraint to change the scale of both vertical and horizontal bones (middle ones) together but the problem is when I scale one of them up the other one will scale up as well (which is actually why its used for) but the other bone should be the smaller so the joints stay together.

How to inverse the copy scale constraint?

update 3: first of all sorry for the question itself its a bit confusing so I made a animation of what I'm trying to do (it uses a simple armature)

enter image description here

I want to make an armature that by moving each of those legs in their axis the rest of the object moves with it


2 Answers 2


The trick is to use IK constraints mostly. Here's my setup:

enter image description here

  • Main is the root bone
  • pointer is a child of tip 1
  • big 1 is a child of pointer
  • big 2 is a child of big 1

  • small 1 is a child of big 1, not connected

  • small 2 is a child of small 1
  • small target is a child of big 2, not connected, no inherited rotation

  • tip 1 is a child of Main, not connected

  • tip 2 is a child of small 1 but doesn't inherit rotation
  • tip 3 is a child of Main

tip 2 might need a copy rotation constraint to tip 1 or tip 3 if you rotate the whole rig other than around Z.

Main is there to move everything. A handle of sorts for the whole compass.

pointer has a locked track constraint pointing to tip 3. Since the IKs are parented to it, they act in local space and won't flip even if the compass turns upside down using Main.

  • big 2 has an IK Constraint pointing to tip 3, chain length 2, it's the classic and simplest arm or leg rig.
  • small 2 has an IK Constraint to small target, chain length 2. Same thing, just upside down and parented to the big IK bones.

Now the rig moves correctly whether you move tip 1 or tip 3.


If you're having trouble using a rig, you could always use shape keys! To add a shape key, go to the object data panel and click the + under shape keys. The first one will be the basis key and then add another one. With that one selected, go into edit mode and adjust the mesh how you want it to look. Then go to object mode and drag the slider bar under the shape key and you will see it work.

  • 2
    $\begingroup$ no shape keys don't do the trick $\endgroup$
    – Mohammad
    Commented Mar 6, 2016 at 9:37

You must log in to answer this question.

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