Scissor Mechanism

Hi, I’m trying to rig a scissor mechanism, and I can’t seem to get it to work right. I’ve tried adding hinge constraints at the pin connections, but I couldn’t get it to work. I’ve also tried two IK chains criscrossing, which works for the upper and lower pins, but the middle pins don’t stay connected. Basically, I’d like to have the left end of the mechanism fixed and have a target on the right side that I can drag back and forth and have the mechanism expand and contract to follow the target. Any advice?
Thanks!
Mike

Attachments


that’s an intersting problem, the thing that occurs to me, at the moment, is perhaps, a combination, of manually animating it, frame, by frame, and then creating an ipo driver for it, which is a little on the tricky side. i am sure there are other ways to do it as well, probably none of them simple.

I’ve been thinking about this one since you post it, and the only thing I’ve come with is that: link. It uses mesh keys, mirror modifier and array modifier.
I don’t think it’s close enough to what you want to do, but maybe it will give you or someone else an idea (my knowledge of Blender isn’t accurate enough to go deeper in this problem :p)
Well I hope it will help you in a way or another…

Thanks for the suggestion. My first thought was to control it using an armature, but it has a lot of constraints (hinges) and it’s tough getting them all to work together. However, if I could set a number somewhere (maybe tied to an empty location/rotation ?) that the parts could “read” I could set the rotation of the individual parts referenced to the target. The pieces all move +/- the same angle at once, and they’re parented in such a way that applying simple rotation to each piece will expand the mechanism. Is there any way to say “set rotation of PartA = rotation of PartB” without using a Python script? Or, is that the best way? Would an IPO work?

Thanks,
Mike

I have been trying to do this with IK solvers, and I got pretty close. I think I may be onto something, but I have to fool with it a bit still to be certain.

ok, I have given up on the IK thing for the time being…I think a better way might have something to do with tracking to empties, which would have multiple copy loc constraints, to keep them evenly spaced. I am giving up for the moment though…

I used an empty and setup the bones to use copy rotation. It seems to work well. Would this setup work for you? See animation link below.

http://ahmad.wizardproductions.org/blender/test/scissor.jpg

http://ahmad.wizardproductions.org/blender/test/scissor.avi

Thanks for all the help on this, it really got me thinking and learning more about Blender. I finally figured it out, and it was much simpler than I first thought. I didn’t end up using armatures at all. First, I created an empty to control everything. Then, I used the middle cross piece as the base, and I used applied Constraint->Copy Rotation (inverted rotation angle for one of them). Then by rotating the control empty I could open/close the middle scissor mechanism. Next I parented the pieces end-to-end from the outside on in to the base. Last, I copied the Copy Rotation constraint from the middle pieces to all the pieces that needed to rotate the same direction. The parent/child relationships kept the ends connected, and the Copy Rotation constraint rotated them all the same amount at the same time. I would post a short blend, but so far I’ve only figured out how to post pictures.

Thanks again,
Mike

Attachments



yeah i finally started to figure it out as well, heheh this was a tricky question

The animation looks exacly like what I want. Unfortunately, when I tried a similar approach, I had problems with the bones deforming my mechanism mesh in ways I didn’t want (the metal bars changed thickness). When I turned off “deform” on the bones, some of the mechanism vertices didn’t move with the rest of it. So this approach should work (you obviously got it to work) but I had some problems with my armature, so I found a workaround without using armatures.

Thanks!
Mike

I don’t use a single mesh for all pieces and I simply parented each piece to a bone in the armature in pose mode (I didn’t use the modifier or parent the armature to any object).

Here’s the blend file if you are interested. Note that you can rotate the empty around a different axis to get a weird effect but rotation in the default view will work just fine.