how to rig this object (function compass)? I'm trying to make something like a compass which is used to draw functions on paper.


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.



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)



I want to make an armature that by moving each of those legs in their axis
the rest of the object moves with it
The trick is to use IK constraints mostly. Here's my setup:




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.