Tolerancing the holes
Assumes Seven lengths and a hundred corners.
Every calculation in this field so far has treated a four-bar as four numbers with tolerances on them. The very first essay called that “the honest model”, and it is not.
No drawing tolerances a link length. A drawing tolerances features — holes, faces, datums — and the lengths are consequences.
The ground length is not a part
The clearest case, and the one that makes the point on its own.
A four-bar’s “ground link” is the distance between two fixed pivots. There is no such component. There is a frame, or a casting, or a plate, with two holes in it, and the ground length is the distance between their centres.
That distance is not toleranced. What is toleranced is where each hole is, relative to some datum, and the distance between them is a derived quantity — the difference of two toleranced positions.
Which means the interesting question is not how accurately each hole is placed. It is whether the two errors are the same error.
Two holes, three answers
Suppose each hole’s position carries an error of up to ±δ.
Bored in one setup, on one machine, without moving the workpiece. Whatever the machine’s positioning error is, both holes get it — the table moves, the spindle moves, and the relative position of the two holes is set by the machine’s incremental accuracy rather than its absolute accuracy, which is typically far better. In the limiting case the common error cancels out of the distance between them entirely, and the ground length is better than either hole’s position.
Located from separate datums, on separate parts. Two brackets bolted to a frame, each carrying one pivot. Each bracket’s position carries the frame’s error plus its own, and the two are independent. The distance between them is then the difference of two independent errors, which combines to √2 times one of them — the ground length is worse than either hole’s position.
Somewhere in between, which is where every real part is.
The figure computes all three, and the measured effect is not small:
- holes located separately: the band is 11% larger than a lengths-only stack-up says,
- half the error shared: 7% smaller,
- both bored in one setup: 25% smaller.
So a lengths-only analysis is not wrong in one direction that could be padded against. It straddles, and which side it is on is a fact about the machine shop.
The arithmetic is one chain rule further out
Nothing new is needed to compute this, which is the pleasing part.
The output’s sensitivity to a hole position is its sensitivity to the length, times the length’s sensitivity to the hole:
The first factor is what the derivative route already produces. The second is pure bookkeeping about which features a length is between — for the ground length it is +1 at one hole and −1 at the other, and the sign is exactly why a common error cancels and an independent one does not.
So the whole extension is: take the features as the variables, write down which lengths each one moves, and let the chain rule do the rest. It is the same implicit differentiation, one layer out, and it is what a serious tolerance analysis has always done under the name of a datum scheme.
The correlation is not always favourable
The examples so far make shared error sound like a gift, and it is worth showing that it is not.
The frame holes case is favourable because the ground length is a difference — the common part subtracts out. Not every derived quantity is a difference.
Consider a coupler point, which is located from the coupler’s two pivots. Its position depends on both, and a common error in the two moves the coupler point by that whole amount rather than cancelling it. There, shared error is neither better nor worse than independent error; it passes straight through.
And a quantity that is a sum of two feature positions would be made worse by sharing, by the same √2-versus-2 arithmetic run backwards.
So the rule is not “shared error is good”. The rule is that a derived quantity’s sensitivity to a common error is the sum of its sensitivities to the individual features, and to an independent error it is the root-sum-square — and whether that helps depends on the signs. For a difference the sum is zero and sharing is a gift; for an average it is one and sharing is neutral; for a sum it is two and sharing is a penalty.
That is one line of algebra and it is the whole content of feature-based tolerancing, which is otherwise a large subject mostly concerned with notation.
What this site can and cannot supply
The sensitivity is geometry, and it is exact. Given a datum scheme — this hole located from that face, these two bored together, that one on a separate part — the band follows, by the same machinery that produced everything else in this field.
The datum scheme is not geometry. It is a decision about how the part will be made, taken by somebody who knows what machines are available and what they cost to set up, and it can be changed without changing the mechanism at all.
That distinction is the reason this essay comes last in the tolerance ladder rather than first. The computation is trivial once the sensitivities exist; the input to it is a manufacturing decision, and pretending otherwise would be the same error as computing a friction coefficient — a number that looks like it came out of the geometry and did not.
The shared parameter in the figure is the honest form of that: a single number from 0 to 1 saying how much of the two holes’ error is common. It is a parameter rather than a computation because nothing on this site can know it.
The same argument for the other three lengths
The ground length is the clearest case because its two features are on one part. The others are worth working through because the answers differ.
The crank is a distance between two holes in one small component, almost always made in one operation. Its two errors are as shared as errors get, so the crank’s length is typically better than its holes’ positions — and the lengths-only model, which tolerances the length directly, is close to right for it.
The coupler is the same, and the same conclusion.
The rocker is usually the same again, but it carries a complication the others do not: on a mechanism where the rocker is the output, its far end is not just a pivot but an interface — the point where the mechanism meets whatever it drives. That interface has its own datum and its own tolerance, and it may not be located from the same features the rocker’s pivot is.
So the pattern across a four-bar is that three of the four lengths are single-component dimensions and are well described by tolerancing the length, and the ground link is the one that is not — precisely because it is the one that is not a component. It is also the second-largest contributor to the output band, which is an unlucky combination and the reason this essay is about it.
What a feature-based analysis needs that this site does not have
Being precise about the gap, since the essay claims the extension is easy.
The chain rule is easy. What is not present here is a model of the part: which features exist, which datum each is located from, and which are produced together. That is a data structure — a datum scheme — and it is a description of a manufacturing plan rather than of a mechanism.
Adding it would mean every figure in this field taking a second argument that has nothing to do with kinematics, and producing answers that vary with it. That is a defensible thing to build and it is not what this site is. The boundary drawn in what is still outside is about inputs that cannot be read off a drawing; a datum scheme can be read off a drawing, but it is a different drawing from the one the mechanism is on.
So the honest filing is: the geometry is here and complete, the shared parameter is the one-number stand-in for the missing structure, and a full treatment belongs to a tolerance-analysis tool rather than to a kinematics one.
A worked case: the frame that was two brackets
Concretely, since the whole argument is about a distinction that is easy to nod at and hard to act on.
A four-bar’s two ground pivots are carried on brackets bolted to a chassis. Each bracket is located by two dowels, and each dowel hole is toleranced ±0.05 from a datum edge.
A lengths-only stack-up asks: what is the tolerance on the ground length? Somebody writes ±0.1, doubling the bracket tolerance because there are two of them, and the analysis proceeds.
The feature-based version asks a different question and gets a different answer. The two brackets’ errors are independent, so the distance between the pivots carries √2 × 0.05 = 0.071 rather than 0.1 — the stack-up was pessimistic by 40%. But the chassis’s own datum error is common to both and cancels, and the brackets’ angular location error does not appear in the lengths-only model at all, and it moves each pivot perpendicular to the ground line where a length tolerance moves it along.
So one term was over-stated, one was correctly ignored, and one was missed entirely. That is the usual shape: a lengths-only analysis is not uniformly optimistic or pessimistic, it is a different calculation whose relationship to the real one depends on the part.
The remedy is not to distrust it. It is to write the datum scheme down first, and then to notice that the sensitivities the mechanism supplies are the same either way — which is why this essay comes at the end of a field rather than replacing it.
Why it took a whole field to get here
Worth saying plainly, because the first essay of this field claimed to have found the honest model and this one says it did not.
Treating the lengths as independent was the right first move. It is what makes the sensitivity calculable at all, it is what the corner enumeration enumerates, and every number in the preceding essays is correct as a statement about lengths. What it is not is a complete statement about a part.
The pattern is the same one this site keeps running into. Grübler’s count is right about a generic mechanism and the interesting ones are not generic. Bézout’s number is right about complex projective space and the useful solutions are real and finite. The lengths-only tolerance band is right about four independent lengths, and a real linkage’s lengths are not independent.
In every case the first model is not a mistake to be regretted. It is the thing that has to exist before the correction can be stated, and the correction is a named departure from it rather than a replacement.
What the shared number really stands for
One parameter carrying a whole subject deserves an honest description of what it is standing in for.
shared runs from 0 to 1 and multiplies the part of each hole’s error that is common to both. That is a scalar model of something that is properly a covariance: two features’ position errors are random variables, and what matters is not one number but the correlation between them, which can differ in x and y and can be negative.
A negative correlation is not exotic. A boring bar that deflects under cutting load produces holes displaced in opposite directions depending on which side of the part they are on, and two features located from opposite faces of a fixture inherit the fixture’s thickness error with opposite signs. In those cases the distance between them is worse than the independent case, which the scalar model cannot express at all.
So shared = 1 is not the best case and shared = 0 is not the worst. The real range is wider in both directions, and the honest statement of what the figure shows is: three points on a line whose ends are further out than either.
The full treatment needs a covariance matrix over the features and a Monte Carlo over it, which is a standard technique and is a tolerance-analysis tool rather than a kinematics one. What this site contributes to it is the sensitivity — exactly, from the constraint equations — and that is the input such a tool needs and cannot compute for itself.
The one place this changes a mechanism rather than a drawing
Everything above changes how a mechanism is analysed. There is one case where it changes the mechanism itself, and it is worth ending on because it is the only free accuracy in this whole field.
If the ground length’s error can be made to cancel by boring both frame holes together, then a design that makes that possible is more accurate than one that does not — for no extra tolerance, no better bearing and no preload. What makes it possible is that both pivots are on one part, reachable in one setup.
So there is a design decision, taken long before any tolerance is written, that decides whether the largest single term in this mechanism’s error budget can be made to vanish: put both ground pivots on the same component. A four-bar whose two pivots are on one machined plate has a ground length limited by a machine’s incremental accuracy; one whose pivots are on two brackets has a ground length limited by an assembly.
That is not a tolerance analysis result. It is a layout result, produced by a tolerance analysis, and it is the kind of thing that is obvious in retrospect and invisible without having asked which features share a setup.
The general form is worth carrying: a derived dimension that is a difference of two features wants those features made together. Every closed chain is full of such dimensions, and the ones that matter are the ones with the large sensitivities — which the rest of this field computes.
What a designer should take away
Three things, in the order they are useful.
Ask how the part is made before tolerancing it. The same drawing sent to two shops gives mechanisms with output bands differing by a third, and nothing on the drawing records which one arrived. If a design depends on the ground length being good, say bored in one setup on the drawing, which is a note rather than a tighter tolerance and is therefore free.
The features that share a setup are the ones to exploit. A common error that cancels is the only free accuracy in this field — every other improvement costs money — and it is available exactly where two features that appear in one length can be made together.
And a lengths-only stack-up is a first estimate, not a bound. It is the number this field spent five essays computing, it is correct about what it describes, and it can be out by a third in either direction on a real part. Quoting it as a worst case is the one use it will not support.
The rung’s argument has a form worth stating for anybody doing a tolerance analysis on anything. The quantities a stack-up is written in are not the quantities a drawing controls. A stack-up is written in lengths because lengths are what the mechanism’s equations contain; a drawing tolerances features, because features are what a machine tool produces. Between the two sits a derivation — a length is a distance between two holes — and every correlation, every shared setup, every common datum lives in that derivation and nowhere else. So a stack-up computed on lengths has assumed something about the derivation, usually independence, usually without saying so. The remedy is not more careful arithmetic on the lengths; it is to do the analysis in the variables the drawing tolerances and let the lengths come out. That is more work, it needs information the geometry does not contain, and it is the difference between an analysis that is optimistic by eleven per cent and one that is right.
About the same objects
Not linked from either essay — found by the objects both name.
- Which pin to buy allocation · derivative · four-bar · jacobian · sensitivity · tolerance
- A clearance is a link constraint · four-bar · jacobian · tolerance
- Counting and measuring mobility constraint · jacobian · tolerance
- Four bars and four pins constraint · four-bar · tolerance
- Locked on purpose constraint · derivative · four-bar
- Taking up the play four-bar · sensitivity · tolerance
What links here
Essays that link to this one from their own argument.
- Seven lengths and a hundred corners As built
- Where an error at the shoulder ends up One path to the tool
- Eleven assortments and four that are empty The chain before the lengths
The objects this essay names
Each one links to every other essay that touches it.
AllocationAverageConstraintDatumDerivativeFour-barIndependenceJacobianSensitivityThresholdTolerance