Which contact to make accurately
Assumes Held is not located and Where a stack-up stops working.
Every contact in this field has been where the drawing says. Move them, by the amounts a workshop actually achieves, and the first question is not how far off the part ends up. It is whether the part goes in.
Why a hold cannot absorb an error
Six bilateral constraints have a solution for any error, because is a square system and squares systems have answers. A part on six pads with contact errors goes somewhere; the seating essays compute where, and the answer is always a pose.
A hold has no such property. The condition is — an inequality — and a system of inequalities can be infeasible. When it is, there is no pose the part can take: not a badly located one, not a tilted one, none.
That is because a hold has already used up every direction. The whole content of form closure is that no motion is left; there is nothing for the part to give when a contact comes in.
Farkas answers it exactly
There is a clean condition and it comes from a theorem this rung is otherwise built to avoid quoting.
has no solution precisely when there is a with and . And with every positive is the definition of a hold. So:
A hold converts a set of contact tolerances into one linear inequality, and the weights in it are the coefficients of the combination that cancels — the same the closure program returns.
Every error being inward is the worst case and it is worth reading the condition at that point: all makes and the part never fits. Which is obvious once said — a hold with every obstacle moved inward is a hold that has shrunk around a part that has not — and it is why every real fixture has clearance built into it. What the condition adds is the trade: an outward error at one contact pays for an inward error at another, in proportion to the weights.
Checked against a program
Farkas is a theorem and the site’s habit is to have a second route, so the condition is checked against a linear program that knows nothing about it: given the errors, look for a pose satisfying every inequality, and report the program infeasible when there is none.
Four hundred random error vectors on each of the two holds. Zero disagreements. On the square, 202 of the 400 were refused; on the hexagon, 280.
That the two agree is worth more than it looks, because a wrong sign anywhere in the derivation gives the complement of the right answer and agrees with nothing. There is no near miss available: either the condition is right or it is inverted, and 400 draws separate those completely.
The last row of that table is the control. A pinwheel arrangement’s rows have no positive combination that cancels, so Farkas returns no condition, so no set of errors makes it infeasible — which is right, and it is right for a reason that reads as a consolation: a part that is not held can always get out of the way.
Which contact to make accurately
Which is the whole practical content, and it is one line.
Allocate the tolerance in inverse proportion to . A contact whose weight is twice another’s spends twice as much of the budget per micron of error, so it deserves half the tolerance if the two are to contribute equally.
On the square held by four, the weights are 0.25 each and the allocation is uniform — which is what everybody does, and here it happens to be right, because the arrangement is symmetric.
On the hexagon held by five, one of the two conditions has weights
a spread of 3.47 between the heaviest and the lightest non-zero. Uniform allocation across those five over-specifies three of them and under-specifies one, and the one it under-specifies is the one that decides whether the part goes in.
A spare contact is a second condition
The zero in that vector is the spare contact, and it is not exempt — it appears in the other condition.
A hold at the minimum has exactly one cancelling combination up to scale, so it imposes exactly one inequality. A hold with a spare contact has a cone of them, and every extreme ray of that cone is another inequality the errors have to satisfy. The hexagon’s two are
and
The first is a pair of directly opposed contacts whose rows are exact negatives, cancelling between themselves with nothing from the other three. It says: the two facing contacts may not both come in. Which is the obvious thing, and it is obvious for the same reason a hole and a shaft cannot both be at their maximum material condition.
So the fifth contact bought no restraint — the margin without it is unchanged at 0.0914 — and sold a second inequality. That is the cost of redundancy in this field, stated as a number: one more condition on the tolerances per spare contact, and the count of them is the count of extreme rays of the cancelling cone.
How the conditions are enumerated
The cone of cancelling combinations is a polyhedral cone in as many dimensions as there are contacts, cut by the equations and by non-negativity constraints, and its extreme rays are what the conditions are — so they are enumerated by the same argument the rest of the field uses.
An extreme ray lies on tight constraints, of which are the equations, so at most of its entries are non-zero. Take every subset of that size, take the null vector of its own block, and keep it when every entry has the same sign.
The first version of that required every entry to be strictly positive, which is the natural thing to write and loses any extreme ray with more zeros than the subset already fixes. It reported the hexagon’s five contacts as imposing one condition rather than two — a number that looks exactly like the four-contact answer, is wrong, and has nothing in the arrangement to indicate it. What the missing ray was is the pair of directly opposed contacts, which is the condition a machinist would have thought of first.
The repair is to accept non-negative rather than positive vectors and then test extremality directly: a ray of is extreme exactly when the rows it is supported on have a one-dimensional dependency and no more, which is a rank of one less than the support size.
That defect has the field’s standard shape: it produced a smaller number, with no symptom, on the one arrangement where the correct number is not the obvious one. What caught it was checking Farkas against the program on four hundred random error vectors, where the missing condition showed as 93 disagreements out of 400 — a rate too high to be rounding and too low to be a sign error.
Where this differs from a stack-up
A tolerance stack-up adds up the contributions of a chain of dimensions and asks whether the total is within a limit. This site has a rung about where that stops working, and the failure there is that a mechanism stops assembling while every dimension is inside its limits — which is exactly this rung’s failure, arrived at along a chain rather than around a part.
Two differences are worth naming.
A stack-up is a chain and this is a cycle. The weights come from a combination of rows that comes to nothing, which is a closed condition rather than an accumulation along a path. So there is no first contact and no last one, and no sense in which the error “builds up”.
And the weights are not ones. A worst-case stack-up adds tolerances with unit coefficients, which is right for a chain of collinear dimensions and is not right here. A micron at one contact is 0.424 of the budget and a micron at another is 0.144, and both are in millimetres.
The alternating sum, and the positive one
This site has one other essay in which a combination of contacts decides a tolerance question, and the two combinations differ in a way that is worth being precise about.
Under a four-legged table the combination that constrains nothing is the alternating sum of the four legs — a left null vector, with entries — and what it decides is which leg is left with a gap. Its entries have mixed signs because it is a dependency among equations, and a dependency among equations has no sign convention at all.
Here the combination has entries that are all positive, and it cannot be otherwise: it is the certificate that the rows positively span, and positivity is the whole of what makes it one. So the two objects are the same kind of thing — a combination of rows coming to nothing — sitting in the same matrix, and the sign structure is what separates a redundant location from a hold.
It also explains why the failures look so different. An alternating combination means one contact can be traded against another and something ends up with a gap; a positive one means every contact pushes the same way and there is nothing to trade, so the part does not fit at all. A rattle and a refusal, from the same arithmetic with a different sign pattern.
What the condition does not say
Three limits, and the second is the one a workshop will hit.
It is a worst case, not a distribution. The condition decides whether a particular error vector fits. Whether a population of parts fits is a question about how often exceeds zero, which needs a distribution on the errors and is the root-sum-square question rather than this one. The weights are what such a calculation would use, so the rung produces the input rather than the answer.
And the errors are along the normals. An here is a contact moved along its own normal. A contact moved sideways, along its own face, changes nothing at all — the boundary of a contact’s half-plane is its face’s line and sliding along the face leaves the line where it was. So the whole tolerance analysis for a flat contact is one-dimensional, and the position of a pad along its own face needs no tolerance whatever, which is a saving nobody takes.
And a real fixture has clearance. With a clearance on every contact the condition becomes , which with the weights normalised to sum to one is simply . So the clearance is the budget and the weighted sum of the errors is the spend, and the whole allocation problem is that one line.
What the region looks like
The condition is one inequality, so the region of admissible error vectors is a half-space in as many dimensions as there are contacts — for a hold at the minimum, and an intersection of half-spaces for one with spares.
Two of the errors swept and the rest held at nought gives the picture at the top of this essay: a straight boundary through the origin, with the part fitting on one side. Two things about it are worth pointing out.
The boundary passes through the origin. With every contact exactly where the drawing says, the weighted sum is nought and the part fits with nothing to spare — it touches every contact simultaneously and cannot move. So a hold with no clearance is on the boundary of not fitting, always, which is another way of saying what a hold is.
And the admissible region is exactly half. With errors drawn symmetrically about zero, half of them fit and half do not, which is what the 202 of 400 measures — the departure from 200 being the sample. On the hexagon it is 280 of 400 rather than 200, because two conditions have to be satisfied at once and their half-spaces overlap in less than half.
That last number is the cost of a spare contact expressed as a yield. Five contacts rather than four takes the fraction of random error vectors that fit from 50 per cent to 30 per cent, on an arrangement whose margin is worse and whose pose set is larger. It is difficult to construct a case for the fifth contact out of any of those three numbers.
Uniform weights are the efficient arrangement
The weights answer which contact to make accurately, and reading the whole vector rather than its largest entry answers a different question the field has not asked: which arrangement wastes the least tolerance.
A weight is how much a contact’s error counts against the fit budget. So an arrangement whose weights are equal spends its budget evenly: every contact needs the same accuracy, and none of them is being made better than it has to be. An arrangement with a spread wastes the difference — the lightly-weighted contacts are being made to a tolerance they do not need, because a workshop holds one standard across a part, and the heavily-weighted one has to be better than that standard or the fit fails.
The square held by four has weights of a quarter each, and is therefore perfectly efficient in this sense: one tolerance, applied everywhere, and every contact contributing exactly its share. The hexagon held by five has a spread of 3.47 between its heaviest non-zero weight and its lightest, so its worst contact is asking for three and a half times the accuracy of its easiest — and a fixture made to one standard is over-making four contacts to afford one.
That gives a design objective the field did not previously have, and it is not the margin. Weight uniformity is a property of the arrangement, computable from the same Farkas vector the fit condition uses, and it says how much of a uniform tolerance is doing useful work. Two arrangements that both hold, with the same margin, can differ substantially in it.
The two objectives are also not aligned, which is what makes the choice a choice. The margin measures how far the origin is from the hull’s boundary, and it is improved by spreading the contact normals. The weights measure how the cancelling combination distributes across the contacts, and they are made uniform by something else — roughly, by making no contact more nearly parallel to the cancelled direction than its neighbours. Nothing forces an arrangement good at one to be good at the other.
So the honest comparison between two fixtures has three numbers rather than one: the margin, which says how robustly it holds; the weight spread, which says how efficiently it spends tolerance; and the pose ratios, which say how tightly it locates. Three quantities, all from the same matrix, none derivable from the others — which is the ordinary situation whenever a design has more than one thing wanted of it.
The two numbers a fixture has
Putting this rung and the previous one together gives a fixture two numbers that are not the same and are usually conflated.
The fit budget, , which is what the weighted error sum may not exceed. Exceeding it means the part does not go in.
The pose ratio, per coordinate, which is how much of a pose set the same clearance buys. The square’s are 8.56, 4.11 and 4.11; the hexagon’s are 17.70, 5.26 and 2.36.
Those pull in opposite directions and that is the design tension the whole field arrives at. A large clearance buys a comfortable fit budget and a large pose set. A small one buys a tight pose set and refuses parts. And the arrangement decides the exchange rate between them, independently of what either number is set to.
A designer choosing between two arrangements that both hold should compare three things — the margin, the pose ratios, and the fit weights — and no two of them agree about which arrangement is better. The square has the better margin, the tighter pose set and the more even weights; the hexagon has more contacts. That is not a general result and it is a good example of why the numbers have to be computed rather than reasoned about from the count.
About the same objects
Not linked from either essay — found by the objects both name.
- A clearance inside a tolerance box clearance · sensitivity · stack-up · tolerance · worst case
- A length error is undone by its own size clearance · redundant constraint · sensitivity · tolerance
- The ratio that has a tolerance sensitivity · stack-up · tolerance · worst case
- What a drop cannot be smaller than clearance · sensitivity · tolerance · worst case
- Where an error at the shoulder ends up sensitivity · stack-up · tolerance · worst case
- A band with a direction in it sensitivity · tolerance · worst case
What links here
Essays that link to this one from their own argument.
- The contact that is free not to touch Contacts that only push
- The hold is in the corners Contacts that only push
- The test is a program, not a rank Contacts that only push
- Six hold nothing Contacts that only push
The objects this essay names
Each one links to every other essay that touches it.
ClearanceFixtureForm closureLinear programPositive spanRedundant constraintSensitivityStack-upToleranceWorst case