Numbers that were measured

Which feature to hold tight

A budget divided between four lengths in inverse proportion to their sensitivities gives one answer. The same budget divided between the features those lengths are derived from gives the same answer exactly — unless the parts are made differently, in which case the tightest tolerance moves from the rocker to the crank and the frame's loosens by a factor of two.

Assumes The same part, dimensioned twice.

The tolerance field allocates a budget by giving each length a share in inverse proportion to its worst sensitivity over the turn: the length the output cares most about gets the tightest tolerance, and the arithmetic is a division.

Redo it on the features and one of two things happens.

Which feature to hold tight. A budget of 0.020 divided between the four lengths in inverse proportion to their sensitivities, and the same budget divided between the features those lengths are derived from — a frame jig-bored in one setup at 0.90 shared, a crank drilled twice at 0.10, a coupler at 0.60 and a rocker at 0.30. The tightest tolerance moves from b to a. And the null result matters as much: with one process for the whole machine the two allocations are identical to the last digit, because the transmission factor is then common and divides out. Feature-based tolerancing changes the answer when the parts are made differently and not merely when they are made.
Fig. 1 A budget divided between the four lengths and between the features they are derived from, for a machine whose four parts are made four different ways.

The null result first

If every part is made the same way, nothing changes at all.

The transmission factor from a hole’s error to a length’s band is √2 · √(1 − f), and if f is the same for all four parts then that factor is the same for all four. It multiplies every weight in the allocation equally, and a common factor divides out of a division.

Measured rather than argued: at f = 0.6 for every part, the lengths-only allocation and the feature allocation are

g 0.005405    a 0.004115    b 0.003861    c 0.006619

and

g 0.005405    a 0.004115    b 0.003861    c 0.006619

identical to the last digit printed, and identical in the routine’s own comparison to 10⁻¹⁵.

Feature-based tolerancing does not automatically change the allocation. That is worth having as a result rather than as a caveat, because it says exactly when the extra work is worth doing.

When it changes

It changes when the four parts have four different shared fractions, and a machine’s parts routinely do.

Take a frame jig-bored in one setup at f = 0.9; a crank drilled twice on a drill press at f = 0.1; a coupler at 0.6 and a rocker at 0.3. The transmission factors are then 0.447, 1.342, 0.894 and 1.183 — a spread of three.

length     naive        feature      shared
g          0.005405     0.009644     0.90
a          0.004115     0.002448     0.10
b          0.003861     0.003445     0.60
c          0.006619     0.004464     0.30

The tightest tolerance moves from b, the coupler, to a, the crank, and the frame’s loosens by a factor of 1.78.

Both allocations spend the same total budget. What has changed is the recognition that a hole tolerance on the frame buys much less band than a hole tolerance on the crank, because the frame’s holes are made together and most of their error cancels.

What the allocation is actually about

It is worth restating what a budget allocation does, because the feature version makes it clearer than the lengths version did.

A budget is a quantity of effort, expressed as a total tolerance to be divided. The division should give the tightest tolerance where a unit of tolerance buys the most band reduction — which is where the sensitivity is highest.

The feature version adds a second factor to “buys the most”. A unit of tolerance on the frame’s holes buys 0.447 units of length band; on the crank’s it buys 1.342. So the effective weight is sensitivity times transmission, and the allocation follows the product rather than the sensitivity alone.

The lengths-only version is the special case where the transmissions are equal. That is not a bad approximation, it is an exact answer to a question about a machine whose parts are made alike, and machines whose parts are made alike exist.

Which feature to hold tight. A budget of 0.010 divided between the four lengths in inverse proportion to their sensitivities, and the same budget divided between the features those lengths are derived from — a frame jig-bored in one setup at 0.90 shared, a crank drilled twice at 0.10, a coupler at 0.60 and a rocker at 0.30. The tightest tolerance moves from b to a. And the null result matters as much: with one process for the whole machine the two allocations are identical to the last digit, because the transmission factor is then common and divides out. Feature-based tolerancing changes the answer when the parts are made differently and not merely when they are made.
Fig. 2 The same comparison at half the budget: the split is the same and the numbers halve, because an allocation is a division and a division is scale-free.
Where the two analyses cross. The band on the output angle at a crank angle of 57°, with every hole on every part given a position error of 0.010, against how much of that error each pair of holes shares. The flat line is what an analysis on the four lengths gives, which is the same number whatever the answer to that question. They cross at 0.53 and nowhere else: below it the lengths-only answer is optimistic, reaching 1.414× at holes located independently, and above it pessimistic, reaching zero when the error is entirely common and the distance between two holes is perfect however badly the pair is placed. The crossing is at one half because two holes contribute √2 and the surviving fraction is √(1 − shared).
Fig. 3 And the quantity being allocated, as a function of the process that everything above depends on.

The arithmetic, in one place

The whole calculation is short enough to write out, and writing it out makes clear how little of it is new.

For each length ℓ, take sᵢ, the largest magnitude of ∂ψ/∂ℓᵢ over the turn, computed by the implicit route at forty-eight configurations. Take tᵢ = √2 · √(1 − fᵢ), the transmission from a hole’s error on that part to the length’s band. The weight is wᵢ = sᵢ tᵢ, and the allocation is the budget divided in proportion to 1/wᵢ.

Set every fᵢ equal and the tᵢ are all equal, so they cancel in the ratio and the allocation is the lengths-only one. Let them differ and they do not.

That is four multiplications more than the tolerance field’s version, and the four numbers they use are read off a process sheet. The cost of doing this properly is four multiplications and one conversation with a manufacturing engineer, and the conversation is the expensive half.

What is allocated is a hole tolerance

A subtlety in the output that changes what the numbers mean.

The lengths-only allocation returns four length tolerances: hold g to ±0.0054, and so on. The feature allocation returns four hole tolerances — hold each of the frame’s two holes to ±0.0096, each of the crank’s to ±0.0024 — and those are not comparable numbers to the first set even though they are printed in the same units.

A hole tolerance of ±0.0096 on a part with f = 0.9 gives a length band of 0.447 × 0.0096 = ±0.0043. A hole tolerance of ±0.0024 on a part with f = 0.1 gives 1.342 × 0.0024 = ±0.0032. Those are the length bands the two allocations deliver, and they are what should be compared.

A budget allocated on features is spent in a different currency, and a reader comparing the two tables column by column without converting will conclude that the frame has been loosened enormously and the crank tightened enormously. It has, in hole tolerances; in length bands the change is much smaller and is in the same direction.

The frame is where it lands

The largest single move in the table is the frame’s, and it is not a coincidence of the numbers chosen.

The frame is the part most likely to have an extreme shared fraction, in either direction. Bored in one setup on a machining centre it is near 0.9 and its holes’ errors barely reach the mechanism; assembled from two pedestals on a base it is near 0 and they reach it fully. There is not much in between, because a frame is either machined as one piece or it is not.

And the ground length is often among the more sensitive: the output angle is read at O₄, so moving that pivot rotates the reading directly as well as through the mechanism.

So the frame combines the most extreme transmission with a high sensitivity, and the product swings the furthest. A machine’s frame is the part where knowing the process changes the answer most, and it is the part whose process is least often stated on the drawing.

Why the null result is the useful half

It is worth dwelling on the identical columns, because a result that says nothing changes is easy to skip past and this one earns its place.

Feature-based tolerancing sounds like it must always matter, and a reader who accepted that would redo every allocation on the site. The measurement says most of that work would produce the same numbers, and knowing which work is wasted is worth as much as knowing which is not.

It also protects the tolerance field’s existing results. Everything that field allocated remains correct for a machine made by one process, which is most of what it drew. Those figures did not need revising and this field has not revised them.

And it makes the positive result sharp. The allocation changes exactly when the transmission factors differ, so the question to ask about a machine is not is a feature analysis worth doing but are its parts made differently. That is a question a manufacturing engineer answers in one sentence, and the answer decides whether any of this matters.

What a machinist is handed

The output of a feature allocation is a different document from the output of a lengths allocation, and that is most of its practical value.

A lengths allocation says: hold the coupler to ±0.0039. A shop cannot act on that directly. It has to decide how to bore two holes such that their distance is within ±0.0039, which means deciding the setup, which means making exactly the choice this field is about — and making it without being told what it is worth.

A feature allocation says: hold each of the coupler’s two holes to ±0.0034, in one setup with at least sixty per cent common error. That is an instruction about an operation. It can be planned, it can be verified, and it can be argued with — a shop that cannot do the setup can say so and ask for a different budget, which is a conversation the first document cannot have.

The allocation and the process specification are one document, and separating them is what makes a tolerance a demand rather than a plan.

The sensitivities come from somewhere

Worth noting where half the arithmetic comes from, because it is not new.

The worst sensitivity of the output angle to each length over the turn — 0.293, 0.385, 0.410, 0.239 for g, a, b, c — is computed by the tolerance field’s implicit route, one linear solve per length per configuration, against the same analytic Jacobian everything else on this site uses. Nothing about it changes here.

What is new is only the second factor, and it is one line: √2 · √(1 − f) per part.

That is the whole extension, and its cheapness is worth remarking on. The boundary essay that named this as the next thing to do said it was “a straightforward extension of exactly the machinery in this field — the same implicit differentiation, one layer further out”, and it was right about the arithmetic. What it did not anticipate is that the extension is inert unless the parts differ, which is the finding rather than the formula.

Where a length comes from. A coupler 3.5 units long is a part with two holes in it, and neither hole's position is the length. Each carries an error of 0.005, of which 90% is common to both because they were bored in one setup — the whole pattern shifts by that much and the distance between the holes does not change. What survives is the independent part, 0.0016 at each hole, combining to 0.0022 on the length. A drawing that tolerances the length at ±0.005 is describing a part nobody makes, and it is out by a factor of 0.447 — optimistic below a shared fraction of one half and pessimistic above it.
Fig. 4 The frame’s holes at ninety per cent shared: most of each error cancels out of the distance, so a tight tolerance there buys less than it looks.
Where a length comes from. A coupler 3.5 units long is a part with two holes in it, and neither hole's position is the length. Each carries an error of 0.005, of which 10% is common to both because they were bored in one setup — the whole pattern shifts by that much and the distance between the holes does not change. What survives is the independent part, 0.0047 at each hole, combining to 0.0067 on the length. A drawing that tolerances the length at ±0.005 is describing a part nobody makes, and it is out by a factor of 1.342 — optimistic below a shared fraction of one half and pessimistic above it.
Fig. 5 And the crank’s at ten per cent, where nothing cancels and the same tolerance buys three times as much.

Three parts of one decision

Standing back, the feature half of this field has produced three numbers that a tolerance study needs and a lengths-only one has no place for, and it is worth seeing them as one set.

A shared fraction per part, which scales the band and, when it differs between parts, moves the allocation. Measured by making twenty parts and comparing the spread of a distance against the spread of a position.

A datum scheme per part with three or more features, which decides which distance is derived and therefore which one is √2 worse. Chosen, by whoever draws the part.

And the sensitivities, which the tolerance field already computes and which nothing here changes.

The first two are facts about how a part is made and drawn; the third is a fact about the mechanism. A study that has all three produces an allocation a shop can act on. A study that has only the third produces one it must reinterpret, and the reinterpretation is where the accuracy goes.

What is still not modelled

Naming the remaining gaps, since the essay reads as though the feature model were complete and it is not.

Orientation and form. A hole is treated as a point with a two-dimensional positioning error. Its roundness, its cylindricity and its perpendicularity to the face are real and are outside this model — the first two because a mechanism’s kinematics does not see them, the third because it enters through the pin’s length rather than through a distance.

Assembly. The model tolerances holes on parts and then assumes the parts go together at their holes. A bolted joint, a dowel, a press fit each add their own error between the part’s feature and the mechanism’s joint, and none of them is here.

And the distribution. Everything is stated in standard deviations and combined in quadrature, with a worst case computed as a sum. Whether a shop’s errors are Gaussian and what happens in the tails is a question this site hands elsewhere and does not answer.

Each of those is a layer further out in the same direction, and each would make the model more like a part and less like a mechanism. The line is drawn where the inputs stop being geometry, which is the same line the whole site draws.

Two allocations that are both defensible

A complication worth naming rather than resolving, since the field cannot resolve it.

The allocation above minimises the output band for a fixed total tolerance, treating a unit of tolerance as equally expensive everywhere. It is not. Holding a jig-bored pair to ±0.005 may be free and holding a press-drilled pair to ±0.005 may be impossible, and a budget expressed as a sum of tolerances does not know that.

An allocation that minimised cost rather than a sum would need a cost-per-tolerance curve for each operation, which is a fact about a shop with a price attached — and prices are exactly the kind of input this site’s boundary excludes. Not because they are unimportant but because a figure resting on one could not be checked by anybody who builds the mechanism.

So this field allocates a sum of tolerances and says so. The geometric half of the problem is here and complete; the economic half is real and is outside. Anyone doing it properly needs both, and the two multiply rather than compete.

The same question asked of a calibration

The two halves of this field mirror each other and this is the clearest place to see it.

An allocation asks: given a budget, where should the effort go so the output band is smallest? A pose selection asks: given a number of measurements, where should they go so the recovered parameters are best determined?

Both are optimisations over a division of a fixed resource. Both weight by a sensitivity that comes out of the same identification Jacobian. Both have a null result in the same place — allocating on features changes nothing when the parts are made alike, and choosing poses changes little once the pool is saturated — and both have their effect in the middle of the range.

The difference is the direction of the arrow. An allocation runs from parameters to output and asks how tightly the parameters must be held. A calibration runs from output to parameters and asks how well they can be recovered. They are the forward and inverse readings of one matrix, which is the same statement the field’s first essay makes about the tolerance field and this one, arriving from the practical end.

That symmetry has a use. Whichever of the two is easier to compute for a given machine can be used to reason about the other, and the quantity that matters in both is the sensitivity — which this site has computed for every mechanism it carries since its ninth phase.

An allocation nobody can act on

A last observation about the shape of the output, which is really a complaint about the whole practice.

An allocation returns four numbers. It does not return an ordering of confidence, a statement of how much the answer would change if one input were wrong, or any indication of which of the four is the load-bearing one. Four numbers, printed, and downstream they are treated as a specification.

Every input to those four numbers has an uncertainty. The sensitivities are computed from the nominal geometry, which is not the machine’s. The shared fractions are estimates from a process that varies. The budget itself is chosen rather than derived. None of that uncertainty propagates into the output, because an allocation is a division and a division of uncertain things returns a number with no uncertainty attached.

A tolerance allocation is the least examined number in a design, and this field’s contribution is to have added one more input to it rather than to have improved its epistemics. That is worth saying plainly at the end of an essay arguing for a refinement: the refinement is real, it moves the answer by up to a factor of two, and the answer it moves was never presented with an error bar.

What to take away

Three sentences.

Under one process for the whole machine, allocate on the lengths — the answer is identical and the extra work buys nothing.

Under mixed processes, allocate on the features, because the transmission factors differ by up to threefold and they multiply the sensitivities.

And write the process into the allocation. A tolerance without a setup is an instruction a shop must reinterpret, and the reinterpretation is the decision this whole half of the field is about.

About the same objects

Not linked from either essay — found by the objects both name.

What links here

Essays that link to this one from their own argument.

The objects this essay names

Each one links to every other essay that touches it.

CalibrationDatum schemeDerived lengthFeature toleranceSensitivitySetup errorToleranceWorst case