Example of a four-bar linkages which has four linked bars which are free to rotate. For any given value of the bar lengths only some positions are possible. The machine can move through these positions in a continuous motion with one degree of freedom.

Click and drag the white boxes to change lengths of bars.

Pre-defined configurations:

Several types of motion are possible which depend on the lengths of the bars.
If *a*, *b*, *c*, *d* are the lengths of the bars and the fixed bar (the frame) has length *d* the signs of
*T1*=*b+d-a-c*,
*T2*=*c+d-a-b*,
*T3*=*b+c-a-d* determine the type of configuration.
The Grashof condition compares *s+l* to *g+h* where *s* is the shortest length,
*l* is the longest and *g*, *h* are the other two lengths.
If *s+l*<*g+h* then at least one of the bars will rotate through 360°.
If *s+l*>*g+h* then no bars will rotate through 360°.

The two bars attached to the crank can take one of four different types:

**Crank:**can rotate through a full 360°**Rocker:**can rotate through a limited range of angles which does not include 0° or 180°**0-Rocker:**can rotate through a limited range of angles which includes 0° but not 180°**π-Rocker:**can rotate through a limited range of angles which include 180° but not 0°

T1 | T2 | T3 | Grashof condition | Type | |
---|---|---|---|---|---|

- | - | + | Grashof | Crank, Crank | |

+ | + | + | Grashof | Crank, Rocker | |

+ | - | - | Grashof | Rocker, Crank | |

- | + | - | Grashof | Grashof Double Rocker | |

- | - | - | Non-Grashof | 00 Double Rocker | |

- | + | + | Non-Grashof | ππ Double Rocker | |

+ | - | + | Non-Grashof | π0 Double Rocker | |

+ | + | - | Non-Grashof | 0π Double Rocker |

Built using Processing.js and using handles example.