Grashof, predicted and then swept
Of the four bars in a four-bar linkage, can any of them turn all the way round?
The answer is a sentence. Let s be the shortest link and l the longest, and p and q the other two. If
then at least one link can rotate continuously relative to another. If not, none can, and every link merely rocks between limits.
That is Grashof’s condition, and it is remarkable for what it does not need. It never asks which link is driven, which is fixed, or how the mechanism is arranged. Four numbers go in and the answer comes out.
Predicting is not enough
A classification that is never checked is a label. This site’s habit is that a claim about a mechanism is granted only when the mechanism has been asked, and Grashof’s condition is the oldest classification in the subject and therefore the most tempting to take on trust.
So every linkage here is also swept: the input is set to each of 180 or 360 angles in turn, the solver attempts each, and the number that assemble is counted. A crank that turns fully assembles at every angle. One that rocks assembles at some and refuses the rest.
For the crank-rocker used throughout this site — ground 4, crank 1, coupler 3.5, rocker 3 — the condition predicts full rotation and the sweep finds 360 of 360. For a non-Grashof set — 4, 3.2, 3.4, 3.3 — it predicts rocking and the sweep finds 273 of 360.
The 87 refusals are dead centres. Nothing about the four lengths had to be inspected to locate them: the solver was asked for those positions and declined, because at them the bars would have to change length.
The four classifications
The condition says whether something can rotate fully. Which link it is depends on where the shortest one sits, and that gives four cases.
Crank-rocker. The shortest link is adjacent to the frame. It rotates continuously; the link opposite rocks. This is the workhorse arrangement — continuous rotation in, oscillation out — and it is what a windscreen wiper, a beam engine and an oscillating fan all are.
Double crank, or drag-link. The shortest link is the frame. Both attached links rotate continuously, at speeds that vary through the turn. Used where a shaft must drive another shaft at a deliberately uneven rate.
Double rocker. The shortest link is the coupler. Neither attached link turns fully; both rock. Less obviously useful, and it is what many suspension linkages are.
Triple rocker. The condition fails. Nothing turns fully and every link rocks between limits.
There is a fifth case that is not a case: when exactly, the linkage is at a change point, where all four bars can become collinear and the mechanism can switch branch. A parallelogram is the familiar example, and what happens there is worth an essay of its own.
The classification is about the chain, not the machine
Grashof’s condition is a statement about the four lengths, and the machine also depends on which bar is bolted to the bench.
The same chain of four bars gives four different mechanisms depending on the choice of frame — the inversions — and the condition does not change between them, because it never mentioned the frame. What changes is which link is the crank and which is the rocker.
So a set of lengths that satisfies the condition guarantees that some link turns fully relative to some other. Turning that into “my input shaft can rotate continuously” needs one more step: the shortest link must be the input, or the frame.
This is where the condition is most often misapplied. A designer checks , gets a yes, fixes the wrong link, and finds the mechanism rocking.
Why the inequality is what it is
The condition is not arbitrary and the reasoning is worth following, because it explains why shortest plus longest and not some other pairing.
For a link to rotate fully, it must be able to pass through the two positions where it is collinear with the frame link — pointing directly towards and directly away from the other ground pivot. At those positions the remaining two links have to bridge a specific gap.
Work through the two cases and both give the same inequality, with the shortest and longest links appearing together because they are the pair that makes the bridging hardest. The condition is the statement that the triangle inequality can be satisfied at both extreme positions at once.
That is also why the failure is total rather than gradual. A linkage that misses the condition does not turn nearly all the way round: it stops at a definite angle where the geometry runs out, and the arc it cannot reach can be large.
The margin, and what it is worth
The condition is an inequality, so it has a margin: .
For the crank-rocker above the margin is 1.5 on links of order 3, which is comfortable. A linkage with a margin of 0.01 satisfies the condition and would fail to turn if any bar were made a hundredth long.
That is a manufacturing statement rather than a kinematic one, and it is where the honest limits of this site’s model start to bite. Nothing here has tolerances, clearances or wear; the margin is computed from nominal lengths, and a real linkage’s margin is the nominal one plus or minus whatever the machine shop achieved. A design close to the boundary is a design that will work for some of the units built.
What the condition leaves out
Three things, and all three matter more in practice than the classification does.
Whether the mechanism is any good. A crank-rocker that satisfies Grashof comfortably can still have a transmission angle that collapses somewhere in its cycle, at which point it is a poor machine that happens to turn.
What the output does. The condition says the rocker rocks; it says nothing about how fast, how far, or how evenly. That ratio varies through the turn and quoting a single number for it is quoting an average.
Where the useful part of the stroke is. The straight-line linkages are four-bars chosen for the shape of a traced curve, and the classification has nothing to say about the curve.
Why check a theorem
Grashof’s condition is proved. Sweeping it 180 times does not make it more true.
What the sweep tests is everything between the theorem and the figure: whether the lengths in the code are the lengths in the caption, whether the solver’s branch handling is right, whether the classification function has the cases in the right order. A wrong sign in the classification would produce a site full of confidently mislabelled mechanisms, and no amount of confidence in Grashof would catch it.
That is what checking a theorem against a measurement is for. The theorem is not on trial; the machinery is, and it is framed as a check on mathematics because that is the form in which it is cheap to write.
The change point, and the case the inequality treats as a boundary
Grashof’s condition is an inequality, and inequalities have a boundary. When s + l equals p + q the chain is a change-point mechanism, and it behaves unlike anything on either side.
The parallelogram linkage is the familiar case: two equal cranks joined by a coupler equal to the ground. Both cranks rotate fully, which is the Grashof-satisfied behaviour, and at two configurations per revolution the whole thing goes flat and the mechanism can continue as a parallelogram or flip into an antiparallelogram — the crossed configuration, in which the cranks counter-rotate.
Both continuations satisfy the constraints exactly. Nothing in the geometry chooses between them, which is why a real parallelogram linkage needs something outside the geometry to choose: a third bar, an out-of-phase duplicate, or inertia and a bit of luck.
The change point is where the constraint Jacobian loses rank, which is the same event described in the language this site uses everywhere. Sweeping the mechanism through it, the solver either refuses to converge or converges to whichever branch the previous configuration was nearest — and that dependence on where it started is the signature of a genuine bifurcation rather than a numerical difficulty.
It is also why the three-bar parallelogram sweeps 59 of 60 angles and fails exactly one, at every sampling density. The failure is not a tolerance being missed; it is a configuration where the mechanism’s future is genuinely undetermined.
What the classification is used for
Given four lengths, the classification says which link can rotate fully, and design runs the other way: given the motion wanted, choose lengths.
The three common targets map onto the classification directly.
Continuous rotation in, oscillation out — a crank-rocker. Shortest link adjacent to ground, Grashof satisfied. This is the workhorse: windscreen wipers, oscillating fans, beam pumps.
Oscillation in, oscillation out with a different range — a double-rocker, which means either a Grashof chain with the shortest link as the coupler or a non-Grashof chain. Used where the input is a lever rather than a motor.
Continuous rotation in and out at a varying rate — a drag-link, shortest link grounded. Both cranks turn fully but not uniformly, which makes this the basis of quick-return mechanisms.
The choice of which link to ground is therefore a design decision made after the proportions, and it changes the machine without changing the chain. Four different machines come out of one set of four numbers, which is the observation the inversions of the slider-crank make in a narrower setting.
What the classification does not give is any of the quality of the motion. Two crank-rockers with the same classification can differ by a factor of three in worst transmission angle, and one of them will be unusable. Grashof first, then the transmission angle; the first is a yes or no and the second is the design.
What a sweep costs and what it settles
Checking a theorem by sweeping is not free, and it is worth stating the cost honestly alongside what it buys.
Sixty configurations per mechanism, each a Newton–Raphson solve with an analytic Jacobian, is a few milliseconds. The expense is not computational; it is that the sweep has to be set up correctly, and a badly set up sweep produces a confident wrong answer more easily than no sweep at all.
Three ways it goes wrong, all of which happened here.
Starting from a fixed guess. Solving each configuration from the same initial guess lets the mechanism jump between assembly branches mid-sweep, which produces a plot with a discontinuity that no mechanism has. Continuation from the previous solved configuration is what a real mechanism does.
Inheriting a failed state. A helper that leaves the mechanism in a non-converged configuration poisons the next sweep, which then assembles nowhere and appears to disprove a correct classification.
Sampling too coarsely. A sweep at 10 points can miss a narrow range where the mechanism cannot assemble, and report full rotation for a chain that does not have it. The defence is to check that the answer is stable under refinement, which is also how the three-bar parallelogram’s single refusal was shown to be real rather than a sampling artefact.
What the sweep settles, once it is right, is the gap between a classification and a behaviour. Grashof’s condition is a theorem about four numbers and it is correct; the sweep is a statement about a mechanism, and the two agreeing is what makes it reasonable to apply the theorem to the next mechanism without sweeping it. Verification is not distrust of the theorem — it is what makes trusting the theorem defensible.
The condition in its natural form
The inequality is usually stated as s + l ≤ p + q, with the four lengths sorted. There is a way of putting it that makes the content clearer.
For the shortest link to rotate fully, it must be able to pass through every angle, including the two extreme configurations where it lies along the line to its neighbour. At those configurations the remaining three links must be able to close the loop, and closing requires that the longest of them not exceed the sum of the other two — the triangle inequality, applied to the three-bar chain left over when the shortest link is folded out or in.
Working that through gives exactly Grashof’s condition. So the criterion is the triangle inequality evaluated at the two hardest configurations, and it inherits the triangle inequality’s character: it is a statement about whether a closure is possible, not about whether it is comfortable.
That explains the condition’s most-noticed feature, which is how little it promises. A chain satisfying it by a thousandth of a unit rotates fully and does so through configurations where the three remaining links are almost collinear — which is where the transmission angle is worst and where the linkage is closest to being a mechanism with an extra freedom. The rotation is real and it is useless.
It also explains why the boundary case is a change point rather than a smooth transition. At s + l = p + q the triangle inequality is met with equality, the three-bar chain is exactly collinear, and a collinear chain can fold either way — which is the bifurcation, arrived at from geometry rather than from the Jacobian.
Two derivations of the same event, agreeing, is the pattern this site prefers. It is also why the sweep is worth running on a theorem nobody doubts: the agreement is what makes the theorem usable without sweeping the next one.