A customer sent us a five-part audio chassis for quoting, and the drawing looked fine. Front panel 12 mm thick. PCB 1.6 mm. Four standoffs at 18 mm. A rear panel with a 3 mm pocket. An extruded aluminum body cut to 186 mm. Every dimension carried a tolerance somebody could defend, and the gap between the PCB edge and the rear pocket was called out at 0.20 mm nominal. The assembly did not close. Not sometimes, not at the tail of the distribution. It failed twice in the first fifty units, and always in the same place, which is the signature of arithmetic rather than of a machine. (Composite example; details changed.)
The arithmetic is not hard. Add the plus and minus on those five links and you get 0.40 mm of possible movement against a 0.20 mm gap. Before a single chip was cut, that assembly had a negative clearance of 0.20 mm at worst case. The customer's engineer had done a stack-up, but he had done it on his own three machined parts and left the PCB and the extrusion out, because those came from other suppliers and, in his words, were somebody else's tolerance.
They are nobody else's tolerance. They are in the same chain, so they are in the same sum. That is the whole discipline, and it is where most of the arguments we have about drawings actually start.
We machine in Dongguan. The floor runs more than 200 CNC machines, the shop has been at this for more than 23 years, IATF 16949 and ISO 9001 and ISO 13485 are in the quality system, and quotations come back inside 24 hours with a free DFM review. We run stack-ups on customer assemblies every week, because a stack-up is the only document that tells you whether "±0.01 mm" on your print buys anything. Below is how we do it, with the numbers from that chassis, including the part of the story where the correct engineering answer was not a tighter tolerance at all.
What a Stack-Up Answers, and What It Does Not
A tolerance stack-up is a calculation of how the tolerances on individual dimensions combine at one feature that matters. That feature has a name in the analysis: the gap, the clearance, the flush condition, the critical dimension. You pick it before you do any arithmetic, and if you cannot name it in one sentence, you are not ready to calculate anything.
There are two questions a stack-up can answer and one it cannot. The first is whether the parts assemble at all: is the minimum gap positive, is the maximum interference acceptable, does the connector line up with the cutout. The second is whether the assembly functions: does the seal still compress, does the optical axis stay within its budget, does the bearing preload land in the range the bearing maker asked for. What a stack-up cannot tell you is whether the design is good. A part can assemble perfectly and still be a bad design.
Most of the stack-ups we see from customers are one-dimensional and hand-written on a printout, and most of them are correct as far as they go. The failures are almost never in the addition. They are in the link list: a missing supplier part, a position tolerance entered as a linear one, an angular callout treated as if it had no lever arm, or a thermal term that never made it onto the page.
It is also worth separating a stack-up from a tolerance specification, because the two get confused. A specification says what one feature may measure, and our CNC machining tolerance guide is about that question. A stack-up says what happens when several specified features meet, which is a different and usually more expensive question.
The Five Links That Broke the Chassis
Here is the chain as it should have been written. The critical dimension is the clearance between the PCB edge and the inside face of the rear pocket. Everything between the front panel's outer face and that pocket is a link.
| Link | Nominal | Tolerance | Supplier of that tolerance |
|---|---|---|---|
| Front panel thickness | 12.00 mm | ±0.02 mm | Us, machined |
| PCB thickness | 1.60 mm | ±0.15 mm | Board house, IPC class 2 |
| Standoff height, four off | 18.00 mm | ±0.05 mm | Us, turned |
| Rear panel pocket depth | 3.00 mm | ±0.03 mm | Us, machined |
| Extrusion length, cut to size | 186.00 mm | ±0.15 mm | Extruder, cut off saw |
| Gap, the critical dimension | 0.20 mm | result | nobody, it is the output |
Sum the absolute tolerances and you get 0.40 mm. That is the worst-case total variation, and it is symmetric around nominal, so the gap can run from minus 0.20 mm to plus 0.60 mm. Negative clearance means the parts interfere. There is no assembly in which the PCB is 0.20 mm inside the rear pocket and everything else is nominal.
Look at who owns what. Of that 0.40 mm, the three machined parts contribute 0.10 mm between them. The PCB contributes 0.15 and the extrusion 0.15. We could hold our three parts to ±0.005 mm, at roughly three times the machining cost and with a grinder in the route, and the gap would still be negative at worst case. This is the single most common misallocation in precision hardware: the buyer negotiates hardest with the supplier who is already the smallest contributor.
The three machined bands sit near ISO 286 grades, and the same arithmetic that makes IT7 21 micrometers at Ø30 makes it 46 micrometers at 186 mm, which is why nobody writes grades on saw-cut stock. The PCB and the extrusion bands come from their own processes, not from the standard. If the grade system is unfamiliar, our ISO tolerance grades guide works it out from the standard tolerance unit.
The PCB number surprises people, so it is worth stating plainly. A 1.6 mm FR4 board is commonly toleranced at about ten percent of finished thickness, which is 0.16 mm, and IPC class 2 work sits in that neighborhood. Add press-fit connectors, a stiffener or a heavy copper layer and the finished thickness moves further. That tolerance is a real physical property of laminated glass fabric and resin, not a lack of care by the board house. It belongs in the chain exactly as written.
Worst Case: Add Them Up
Worst case is the arithmetic you can do on paper, and it is the only method that needs no data about the processes.
For a simple chain where each link contributes directly to the gap, the total variation is the sum of the individual half-bands:
WC = ± (a1 + a2 + a3 + ... + an)
where each a is the half-band of that link, so ±0.02 mm for a 0.04 mm band, and so on. The gap's minimum value is the nominal gap minus that sum. With our five links, WC = ±0.40 mm against a 0.20 mm nominal gap, so the minimum gap is minus 0.20 mm and the assembly is not buildable to print.
Worst case is the correct tool in three situations, and we use it in all three. Safety-critical features, where a single non-conforming assembly is unacceptable and no statistical argument will be accepted by the customer or the auditor. Small production quantities, where the distribution never gets a chance to average out and the first unit may well be the bad one. And any chain that contains a link you cannot characterize, which in practice means a supplier part with no capability data, because you cannot assume a distribution you have never measured.
It is also the only defensible answer when the customer has no process capability data, and that is most of the time. If a stack-up says the assembly cannot close at worst case, the honest reply is not "it will probably be fine". It is to change the design, the chain, or the gap.
RSS: Square Them, Take the Root
Root sum square assumes the links vary independently and each sits near the middle of its band, and then the combined variation is:
RSS = ± sqrt(a1² + a2² + a3² + ... + an²)
Same five links: the square root of 0.0004 + 0.0225 + 0.0025 + 0.0009 + 0.0225, which is the square root of 0.0488, which is 0.221 mm. Against the same 0.20 mm gap, the minimum gap is minus 0.021 mm. Still negative, still not buildable, but roughly ten times closer to zero than the worst-case answer.
That is the seduction of RSS and also its danger. It gives you a number you like, and the number is only valid under conditions nobody verified: independent links, centered processes, known distributions, no single link parked at its limit. In our chassis, the extrusion is cut on a saw that drifts as the blade wears, so its length distribution is not centered on nominal; it is offset by whatever the operator last set. That single fact invalidates the RSS result for the whole chain, no matter how good the other four links are.
Two practical guards. First, apply a statistical inflation factor when the process capability is not excellent. Bender's rule of thumb, an empirical correction rather than a standard, multiplies the RSS result by about 1.5 when processes run at a Cpk near 1 and by less as capability improves. Our 0.221 becomes 0.33, which is close enough to the worst-case 0.40 to make the point: with ordinary capability, RSS buys you much less than the formula promises.
Second, never mix methods inside one chain. We see worksheets where three links are added linearly and two are root-sum-squared, usually because the author had capability data for two suppliers. That hybrid has no theoretical basis and produces a number that is neither an upper bound nor a statistical estimate.
Why Neither Number Saved the Part
Both calculations agreed the assembly could not close, so the next question was what to change. The reflex answer is to tighten tolerances, and on this chassis it would have cost real money for no result, because the two largest links were not ours to tighten. The board house would have quoted a sorted lot at a premium and a four-week lead time. The extruder would have smiled.
The actual fix was to stop treating the interface as a fit. We deepened the rear pocket by 1.40 mm, so the gap now runs from 1.20 mm to 2.00 mm across the full 0.80 mm spread of the chain, and dropped in a 2.4 mm closed-cell polyethylene pad that compresses to whatever it finds. At the tight end the pad is compressed 50 percent, at the loose end about 17 percent, and both still hold the board against its standoffs. The gap stopped being a precision dimension and became a compression range, and a compression range is satisfied by every combination the five links can produce. The pad costs 0.04 dollars die cut. The extra pocket depth costs one more roughing pass, a few cents on a feature that was already being machined.
The number that justified it was not the tolerance, it was the rework. Before the change, 4.1 percent of units came back from final assembly with the PCB sitting proud of the rear pocket, which meant disassembling the unit, re-machining or scrapping a 12 mm front panel, and rebuilding. At 11.50 dollars per event including labor and the scrapped panel, that is 0.47 dollars per unit shipped. The compliant pad is 0.04. No tolerance tightening we could have bought came within a factor of ten of that trade.
This is the part of stack-up work that does not get written down often enough. The output of the analysis is not a tighter drawing. It is a decision about where variation is allowed to live, and the cheapest place is usually a compliant element, an oversized pocket, a slotted hole, a shim, a spring, or a fastener with a washer face. Precision is expensive. Compliance is cheap. Use precision where the function demands it and compliance everywhere else.
Sensitivity: Not Every Link Moves the Gap Equally
In a simple series chain every link has a sensitivity of 1, which is why the five links above could simply be added. Real assemblies are rarely that tidy. Sensitivity is the partial derivative of the gap with respect to the link, and it can be less than one, more than one, or negative.
Three cases we meet constantly:
- An angular link with a lever arm. A face held square to within 0.1 mm per meter, measured over a 150 mm span, contributes 0.015 mm to the gap at the far end. Doubling the span doubles the contribution, which is why the same angular callout is trivial on a small bracket and serious on a long rail.
- A link that appears twice with opposite signs. A bracket that locates a sensor between two bosses can have one boss position adding to the gap and the other subtracting, so their tolerances partially cancel. A naive chain that adds both overestimates by up to a factor of two.
- A link inside a rotational chain, where a small angular error at a radius becomes a linear displacement. A 0.2 degree tilt on a 60 mm radius moves the feature 0.21 mm, which will swamp every machined tolerance in the assembly and is almost never on the drawing as a number.
Sensitivity is also the answer to "which tolerance should I tighten". Rank the links by their contribution to the total, not by how tight they look. In our chassis the front panel at ±0.02 mm looked like the precision part and contributed 5 percent of the chain. The PCB at ±0.15 mm was the loose part and contributed 37 percent. If you have budget for exactly one change, spend it on the link with the largest sensitivity times tolerance, and if that link belongs to another supplier, treat the interface rather than the part.
When the Link Is a Position Tolerance
This is where most hand-written stack-ups go wrong, and it goes wrong in a predictable direction: the number gets entered at twice its real value.
A position tolerance of Ø0.2 mm describes a cylindrical zone 0.2 mm in diameter. Its contribution to a linear gap in any one direction is the radius, 0.1 mm, not 0.2. Enter it as 0.2 and you have doubled that link. Enter it as 0.1 mm and you have correctly treated a diameter as a bilateral band, but only if the zone is centered on the true position, which is the assumption the whole analysis rests on.
The second error is forgetting bonus tolerance. If the position callout carries a maximum material condition modifier and the feature departs from MMC, the allowable position error grows by exactly the amount of that departure. A Ø6.6 mm hole toleranced plus 0.2 over zero has 0.2 mm of bonus available at its largest size, which is often more than the position tolerance itself. Ignoring bonus makes the analysis conservative, which is safe but expensive: it can push a buyer into a tighter hole tolerance than the joint actually needs.
A worked joint, because this is easier with numbers. A cover plate bolts to a housing with four M6 screws. The housing has tapped holes, the cover has clearance holes Ø6.6 +0.2 over 0, the screw shank is Ø6.0 maximum.
For a fixed fastener joint, where one side is threaded, the standard relationship in ASME Y14.5 is:
T1 + T2 = H_min − F_max
With H_min 6.6 and F_max 6.0, the right side is 0.60 mm. Split evenly, each part gets Ø0.30 mm of position tolerance. That is generous, and it means a shop can hold the pattern on a machining center without a special fixture. A floating joint, where both parts carry clearance holes, is allowed twice that total, 1.20 mm or Ø0.60 mm per part, because the fastener is free to move in both holes rather than being anchored by one of them. That factor of two is the whole reason threaded joints need tighter patterns than bolted-through joints.
The practical use of that formula in a quoting conversation is the reverse direction. When a drawing asks for Ø0.05 mm position on a clearance-hole pattern, we compute the available clearance and often find the requirement is five times tighter than the joint needs. We say so in the DFM note, the customer usually relaxes it, and the price drops. That is free money and it comes directly out of doing the stack-up.
Our true position inspection guide covers how those zones are actually verified on a CMM, including the difference between a position result and a concentricity result, which is another place where a factor of two appears without warning.
Angular and Two-Dimensional Stacks
One-dimensional stacks assume every link acts along the same line. That is true for a stack of plates and false for almost everything else: a bracket with two bends, a housing with a bore at an angle, a mechanism with a linkage. In two dimensions the links combine as vectors, and the gap is the resultant rather than the sum. A bent bracket brings its own arithmetic as well, because the flat pattern, the bend deduction and the tolerance on each leg all enter the chain, which is the subject of our sheet metal tolerance guide.
We handle this in three levels of effort, chosen by what the decision is worth.
- Vector sum by hand for a two-link or three-link chain with one or two angles. Draw the chain, resolve each link into X and Y, add, and take the resultant. Fifteen minutes with a calculator and a sketch.
- A spreadsheet with explicit X and Y columns when the chain has five to ten links. Each link gets a nominal, a half-band and an angle. The spreadsheet computes worst-case corners by trying all combinations of extremes, which for ten links is 1,024 combinations and takes a computer no time at all.
- Monte Carlo sampling when the geometry is non-linear, when there are rotational joints, or when the number of links makes the corner enumeration explode. More on that below.
The failure mode in 2D is dropping the angle. A link that is 40 mm long at 30 degrees contributes 34.6 mm in X and 20 mm in Y, and its tolerance ellipse is not the same as its tolerance band. Engineers who copy a 1D worksheet into a 2D problem usually keep the band and lose the projection, and the result is wrong by the cosine of an angle nobody wrote down.
Monte Carlo, in Plain Language
Monte Carlo simulation replaces arithmetic with sampling. You give each link a distribution instead of a tolerance band, then draw one random value from each link, add them up, and record the result. Do that ten thousand times and you have a distribution of the gap, from which you can read the fraction of assemblies that fall outside the requirement.
It earns its keep in four situations. Non-linear geometry, where a rotation turns into a displacement and no closed-form sum exists. Chains long enough that worst case is absurdly pessimistic, which is the normal state of a 30-part assembly. Mixed distributions, where one link is normal because it comes off a controlled machine and another is uniform because it is a saw cut. And any case where the customer asks a probability question, such as what percentage of units will need a shim.
It is also easy to misuse. Feeding it tolerances disguised as distributions, treating a rectangular band as a normal curve, or assuming independence between two features machined in the same set-up, will all produce a confident number that means nothing. Two bores machined in one operation share their location error; they are correlated, and a Monte Carlo run that samples them independently will understate the risk.
For most of the parts we quote, the honest hierarchy is: worst case by default, RSS when the customer supplies capability data and the chain is simple, Monte Carlo when the geometry is not linear or the question is explicitly probabilistic. A Monte Carlo result on a chain of unknown distributions is a more precise guess, not a better answer.
The Tolerance You Lose Before You Measure
Every stack-up ends in a measurement, and the measurement has its own uncertainty. ISO 14253-1 handles this with a guard band: conformance to an upper limit is only established when the measured value plus the expanded uncertainty still sits inside the limit. In plain terms, you lose part of your tolerance band to the act of proving you met it.
Take a ±0.02 mm callout, which is a 0.04 mm band, measured with an expanded uncertainty of 0.006 mm at 95 percent confidence. The guard band eats 0.006 mm at each end, so the acceptance zone is 0.028 mm, which is 70 percent of the band the designer specified. Thirty percent of that tolerance is spent on measurement, not on manufacturing. On a ±0.10 mm callout the same uncertainty costs 6 percent, which is why loose tolerances are cheap to verify and tight ones are not.
The old rule of thumb is ten to one, the gauge ten times finer than the tolerance. Modern practice accepts four to one, applied to the expanded uncertainty of the whole measurement rather than to the resolution of the instrument. The CMMs we inspect on are typically specified at 2.5 micrometers plus 1 micrometer per 300 mm of measured length, which on a 186 mm extrusion is 3.1 micrometers. Against the extrusion's ±0.15 mm that is trivial. Against the front panel's 0.04 mm band it is 8 percent, which is why we measure those panels in a temperature-controlled room rather than on the bench next to the machine.
If your stack-up leaves less than 10 percent margin between the calculated worst case and the requirement, the measurement system is part of the chain whether you put it there or not. We treat that margin as a link with its own tolerance, and the gage R&R study is how we prove the link is small enough to ignore. Where the measurement is a CMM program rather than a hand tool, probe strategy and point count enter the uncertainty budget too, which our CNC inspection methods guide covers in detail.
Temperature: A Link Nobody Puts in the Chain
The chassis in the opening example is 6063 aluminum, 186 mm long, with a coefficient of thermal expansion around 23 micrometers per meter per degree Celsius. Between a 20 degree inspection room and a 25 degree assembly line, that body grows 0.021 mm. Between a 20 degree inspection room and a 30 degree August afternoon on a loading dock in Dongguan, it grows 0.043 mm.
That is a single link, larger than the front panel's entire tolerance band, and it appears on no drawing. Steel at 11.5 micrometers per meter per degree gives about half the movement for the same length, which is why a mixed aluminum and steel assembly drifts in one direction as it warms rather than growing symmetrically. On a shaft in a housing the same coefficient difference changes the fit itself, and our shaft and hole fits guide works through an aluminum housing with a steel shaft for exactly that reason.
Three rules we apply. Measure at 20 degrees Celsius, or record the temperature and correct for it, because a part measured at 28 degrees is not the part you will ship. Design stacks with a thermal term whenever the assembly spans more than about 100 mm or mixes materials with coefficients that differ by more than a factor of two. And when a customer reports that a part "fits in the morning and not in the afternoon", ask about temperature before asking about the machine, because the machine is usually innocent.
The 20 degree reference is not arbitrary: it is the temperature at which the standard is realized and at which gauge blocks are calibrated, and the BIPM publishes the definitions that national labs work from. For the shop-floor side of the same subject, NIST's metrology portal is a better starting point than most textbooks.
How This Shows Up in a Quote
A stack-up reaches us in one of three states, and each gets a different reply.
The first is a complete worksheet with a named critical dimension, all links listed including supplier parts, and a stated method. We check the arithmetic, check the tolerance ownership, and quote. Sometimes we find one link entered at twice its value, we say so, and the quote comes down.
The second is a drawing with tight tolerances and no analysis. We pick the three or four features that dominate the cost, run the chain ourselves from the drawing's own dimensions, and send back a short note: these two features drive 70 percent of the price, this one appears to be tighter than the joint requires, and here is what the part would cost with that one relaxed. This is the free DFM review, and it is the most valuable thing we send before an order. Where the feature is a milled pocket or a bore pattern, the milling capability page lists the envelope and the accuracy we can hold on it, so the note stays anchored to machines rather than to adjectives.
The first production run is where the analysis meets the machine, and the first article inspection guide is how we confirm on real parts that the chain behaves the way the worksheet predicted, before the batch is released.
The third is a complaint that an assembly does not close, with a photo of a gap and a drawing that looks fine. In that case we ask for the four numbers that settle it: the actual measured values of the links on the failing units, the assembly sequence, the temperature at assembly, and the name of the critical dimension. Nine times out of ten the answer is in the link nobody listed.
Our position on tightening is simple and sometimes unpopular. We will not sell you a tighter tolerance that does not change the function, because you will pay for it on every unit and it will not fix anything. If the chain says the problem is a PCB thickness, the answer is a compliant interface or a selective assembly step, not a grinder.
A Worksheet You Can Copy
Seven steps, in the order that avoids rework.
- Name the critical dimension in one sentence. If you cannot, stop and find it.
- List every link between the two references, including purchased parts, finishes, adhesives and thermal expansion. The finish is a link: anodizing adds 0.005 to 0.015 mm per surface on aluminum, and hard anodizing adds more.
- Write the nominal and the half-band for each link, and write down who supplies that tolerance. Ownership is what makes the next conversation possible.
- Set the sensitivity of each link: 1 for a series linear chain, the projection for an angled one, the radius for a position tolerance, the lever arm for an angular one.
- Compute worst case. If the minimum gap is positive and the maximum is acceptable, you are done and you should stop analyzing.
- If worst case fails, compute RSS only if you have centered, capable processes and independent links. Apply a statistical factor and see whether the answer survives.
- If both fail, change the design before you change a tolerance: a compliant element, a slot, a shim, a deeper pocket, or a selective assembly step. Then re-run the two calculations to confirm the change worked.
The one thing not to do is tighten every link by the same percentage, which is what happens when a project is late and somebody applies a blanket note. A blanket note does not allocate anything; it just makes all five suppliers unhappy and moves the cost without moving the risk.
What Buyers Actually Ask Us
Can you tell me if my drawing will assemble, without me sending the whole assembly? Often, yes, if you send the critical dimension and the links around it. We will not guess the parts we cannot see. Send the section view that contains the gap and the purchased components in that chain, and we can do useful work in an hour.
Is RSS acceptable to use in a PPAP submission? Only if the customer approves the method and you have capability data to support it. Most automotive customers accept statistical tolerance analysis when it is documented, but the default expectation in a PFMEA-driven quality plan is worst case, and our control plan and capability study guide covers the evidence you need before the argument is worth having.
Why does my stack-up pass on paper and fail on the line? Usually one of four things: a link that was left out, a position tolerance entered as a linear band, a process that is not centered so the distribution is offset, or an assembly that is forced rather than located. The fourth is the most common in our experience, and it is a fixture problem rather than a tolerance problem.
Does a tighter tolerance always cost more? Not per feature, but almost always per part. One tight feature on an otherwise ordinary part can often be held in the same set-up for no extra money. Five tight features usually means a second operation, a controlled environment, or a grinder, and that is where the price step appears.
How do you handle a stack-up on a part you only machine, not assemble? We work to the interface you define and we tell you what we can hold. If the assembly's critical dimension depends on a purchased component, that component's tolerance belongs in the chain, and it is your chain, not ours. We will still run the numbers with you because it costs us an hour and saves a rework.
FAQ: tolerance stack-up
What is the difference between worst case and RSS in a tolerance stack-up?
Worst case adds every tolerance in the chain, so it is an absolute upper bound on variation and needs no process data. RSS takes the square root of the sum of squares, which is smaller because it assumes the links vary independently and sit near the middle of their bands. Worst case answers "can this ever fail", RSS answers "how often will it fail", and only the second question needs capability data to be meaningful.
When is RSS not allowed?
When a link has no known distribution, when the process is not centered, when two links are correlated because they were machined in the same set-up, or when the customer or the standard governing the part requires worst case. In safety-critical work, worst case is normally mandatory regardless of capability, and no statistical argument substitutes for it.
How do I convert a position tolerance into a linear tolerance for a stack?
Divide the diameter of the position zone by two. A Ø0.2 mm position tolerance contributes 0.1 mm in any single direction, assuming the zone is centered on true position. Do not add the full diameter to a chain of bilateral tolerances, and do not forget the bonus tolerance available when the feature departs from maximum material condition.
Does the surface finish count as a link?
Yes. Anodizing, plating and coating all change the dimension of the surface they are applied to, and the change is not always symmetric. Anodizing on aluminum typically adds 0.005 to 0.015 mm per surface depending on the process, and hard anodizing adds more. On a stack that has 0.05 mm of margin, a coating on two faces can consume half of it.
What is Bender's factor and should I use it?
Bender's factor is a statistical inflation applied to RSS results, commonly around 1.5 when processes run at a capability index near 1.0 and lower as capability improves. It exists because RSS assumes perfect centering and independence, which real processes rarely deliver. We apply it whenever a customer wants to use RSS on production parts, and it usually brings the answer back close to worst case.
Can you do the stack-up for us?
For the features we machine, yes, and we do it as part of the free DFM review before quoting. For a full assembly we need the links we do not make, including their tolerances and their suppliers. We will run the arithmetic and tell you which link dominates. What we will not do is sign off on a stack-up that depends on a supplier part we have never measured and a process we have never seen.
Let's Talk About Your Assembly
If you have a drawing with a gap that keeps closing in the wrong direction, send it over. We will run the chain, tell you which link is actually driving it, and say plainly whether the answer is a tighter tolerance, a different interface, or a design change that costs three cents. Sometimes the answer is that your print is fine and your assembly fixture is not, and we will tell you that too.
Free DFM on the drawing, a quotation inside 24 hours, ±0.01 mm on the features we commit to, and a shop in Dongguan with more than 200 CNC machines behind it. Send us the drawing and the critical dimension, or reach us on WhatsApp at +86 17620300785 and by email at gongtianbao@xhlmarketing.com.
