This is a rigged desk-lamp which I made to teach myself about constraints and rigging mechanics. I’m posting it here in case it is useful to someone to help learn about this kind of rigging. It was made with the SVN version of blender and doesn’t seem to work quite right with 2.45 - sorry about that. It’s just that the coordinate spaces are different, and should be fixable if all the constraints are changed to use local coordinates I think.
To use it: The only controls you really need are the bones in armature layer 1 (see picture below): a “Root” bone for moving the whole thing, a “TopHandle” which can be moved to control the position of the lamp head via IK, and a “Head” bone which should be rotated to control the direction of the head. Rotation of the lamp relative to the base, stretching of the springs, pivoting of the various struts and flexing of the wires should all happen automatically by moving the TopHandle bone.
The other bone layers are:
layer 2: the main bones which move the struts and springs.
layer 3: IK targets for the wires.
layer 4: bones to deform the wires.
Beware that when you pose the armature the meshes sometimes don’t catch up and it all gets messy. If that happens just select one of the objects that hasn’t moved, change to edit mode and back.
Everything needed for the lamp (unless I missed something) is in a group called “lamp” which can be appended/linked to other files. There’s quite a lot of objects because I used a separate object for each strut etc…
Finally - I know the modelling is in need of some improvement (could do with rounded corners on the struts instead of just boxes for example, and it’s missing a switch), but this was really an exercise in rigging, not modelling
EDIT: apprently my pictures have gone awry… I’ll try to upload them again later.