skills/lab-hardware-cad/references/fabrication-limits.md
Read this before finalising any geometry. Process determines what geometry is possible; material determines whether the part survives the lab.
Achievable tolerance and minimum feature size, as planning figures. Every number here depends on the specific machine, material, and operator. Use them to choose a process and to size a first article, then verify with a test coupon.
| Process | Typical tolerance | Min wall | Min feature | Notes |
|---|---|---|---|---|
| FDM | ±0.3 mm (often worse over 100 mm) | 1.2 mm (3 x 0.4 mm nozzle) | ~0.8 mm | Anisotropic: much weaker across layers. Porous. |
| SLA / DLP | ±0.1 mm | 0.8 mm | ~0.3 mm | Better surface and detail. Resin choice dominates properties. |
| SLS (nylon) | ±0.2 mm | 0.8 mm | ~0.5 mm | Isotropic, no supports, slightly porous surface. |
| CNC milling | ±0.05 mm or better | 0.8 mm in metal | Set by tool diameter | Internal corners carry the tool radius — you cannot mill a sharp internal corner. |
| Laser cutting | ±0.1 mm | n/a | Kerf ~0.1-0.3 mm | 2D only. Edge taper on thick stock. Kerf offset must be applied. |
Two consequences that catch people:
references/labware-adapters.md.)CUT, ENGRAVE). Shops key
power and speed to layer or colour; geometry on layer 0 forces them to guess.Nominal dimensions do not produce fits. Choose a clearance deliberately, per side:
| Fit | FDM | SLA | CNC |
|---|---|---|---|
| Free-sliding (a plate dropping into a pocket) | 0.40 mm | 0.20 mm | 0.10 mm |
| Located but removable by hand | 0.25 mm | 0.10 mm | 0.05 mm |
| Press / interference | -0.05 mm | -0.03 mm | -0.02 mm |
Then remember the other part has tolerance too. When mating to a standardised component,
design the receiving feature against the component's maximum material condition, not its
nominal — a pocket sized from nominal fits only the smaller half of conforming parts. This is what
intent: "envelope" enforces. Declare it in the model and check the manifest:
python scripts/check.py interfaces out/part.manifest.json
Or check a single number by hand:
python scripts/check.py fit --standard slas-microplate-footprint \
--intent envelope --clearance 0.8 --value footprint_length=128.81
Printed threads are usually a mistake. Layer resolution is comparable to the thread pitch, so printed threads are weak, dimensionally unreliable, and shed particles.
In descending order of preference:
references/optomechanics.md).For FDM especially, orientation is a design decision, not a printing detail:
references/microfluidics.md.| Material | Approximate service limit | Autoclave (121 °C)? |
|---|---|---|
| PLA | ~50-60 °C | No — distorts well below autoclave temperature |
| PETG | ~70-80 °C | No |
| ABS / ASA | ~90-100 °C | Marginal, generally no |
| Polypropylene | ~100 °C | Marginal |
| Nylon (SLS) | ~120-160 °C | Sometimes; verify per grade |
| PEEK | >250 °C | Yes |
| Stainless steel, aluminium, glass | High | Yes |
Assume a printed part is not autoclavable unless it is a verified high-temperature material. Offer chemical or gas sterilisation as the alternative, and check that against the solvent notes below.
Always ask what the part will be cleaned with, not just what it will contain. Cleaning agent compatibility is more often the failure than the sample.
Mention these when recommending a process: FDM is hours and pennies; SLA is hours and modest cost; SLS and CNC are typically outsourced with days of lead time and much higher cost. A design that needs ±0.05 mm has committed the user to CNC — flag that trade before they discover it at quoting.
Work through references/validation.md.