My Grandfather used to make toys like these in his woodworking shop. It is a simple, but interesting linkage. I remember that the sliders would just barely miss each other as you spun it around making it interesting to play with. I wanted to do two things in creating a model of this toy: 1) create a model where the motion of all the parts is entirely controlled by a single parameter of the model, and 2) create a parametric model so the sliders where as long as possible to create the impression that they will collide like my Grandfather's did.
The positions of the sliders, the handle, the screws, and the knob are specified by these center points. By picking a fixed value for C and varying Theta from 0 to 360, the model is run through its full range of motion.
Here are some frames from the animation to illustrate:
Theta = 0 | Theta = 60 | Theta = 120 | Theta = 180 |
![]() |
![]() |
![]() |
![]() |
Next we look at the point where the tip of one slider would touch the
side of the other slider. First we calculate the value for
Theta at which this occurs. This is dependent on H, C,
and W as seen on the left. Finally, we use this value of
Theta to calculate O which is the offset distance used
to create the point of the slider.
A shape for the sliders is now determined (by C and W)
which will just avoid collision.
Now lets take a closer look at the animation and see if this works!
In the original model seen in the images and animations above, the values of C and Ware:
C = 2.25, W = 0.25(Original) | C = 2.25, W = 0.5 | C = 3.0, W = 0.5 |
![]() |
![]() |
![]() |
In addition to the obvious changes (the width of the slots, or the
length of the handle), the "character" of the model is preserved (the
"near collision" etc.) because this is explicitly represented in the
parametric model. To show this, here is an animation of the version on
the right of the above table.