{"$schema":"nativecad-dfm-pack/1","id":"standards-testing","title":"Standards & testing — tolerances, fits, surface finish, environmental and compliance tests","sector":"standards-testing","version":"2026-09-03","summary":"Cross-sector reference for what a part is measured and tested against: ISO 2768 general tolerances, ISO 286 fits, surface finish by process, and the drop/vibration/IP/salt-spray/UL flammability tests that come back as geometry requirements.","aliases":["tolerance","tolerances","gd&t","gdt","iso 2768","surface finish","fit","test","testing","drop test","ip rating","ip67","vibration","salt spray","ul 94","rohs","inspection"],"crossSector":true,"size":"core","sources":[{"id":"iso-2768","title":"ISO 2768-1/-2:1989 General tolerances — linear/angular and geometrical","url":"https://www.iso.org/standard/7748.html","accessed":"2026-09-03"},{"id":"iso-286","title":"ISO 286-1/-2:2010 ISO code system for tolerances on linear sizes","url":"https://www.iso.org/standard/45975.html","accessed":"2026-09-03"},{"id":"asme-y14.5","title":"ASME Y14.5-2018 Dimensioning and Tolerancing (GD&T)","url":"https://www.asme.org/codes-standards/find-codes-standards/y14-5-dimensioning-tolerancing","accessed":"2026-09-03"},{"id":"iso-4287","title":"ISO 4287:1997 Surface texture, profile method (Ra, Rz)","url":"https://www.iso.org/standard/10132.html","accessed":"2026-09-03"},{"id":"protolabs-tol","title":"Protolabs design tips — standard tolerances by process","url":"https://www.protolabs.com/resources/design-tips/","accessed":"2026-09-03"},{"id":"xometry-tol","title":"Xometry manufacturing tolerance and surface finish guides","url":"https://www.xometry.com/resources/","accessed":"2026-09-03"},{"id":"iec-60068-2-31","title":"IEC 60068-2-31:2008 Test Ec: Rough handling shocks (free fall)","url":"https://webstore.iec.ch/publication/972","accessed":"2026-09-03"},{"id":"mil-std-810","title":"MIL-STD-810H Method 516.8 Shock (transit drop)","url":"https://www.atec.army.mil/","accessed":"2026-09-03"},{"id":"iec-60529","title":"IEC 60529:1989+A2:2013 Degrees of protection (IP Code)","url":"https://webstore.iec.ch/publication/2452","accessed":"2026-09-03"},{"id":"ul-94","title":"UL 94 Tests for flammability of plastic materials","url":"https://www.ul.com/services/ul-94-flammability-standard","accessed":"2026-09-03"}],"entries":[{"id":"iso2768-linear-tolerances","kind":"tolerance","tier":1,"title":"ISO 2768-1 linear tolerance classes f/m/c/v (mm by size range)","summary":"± mm by nominal size and class (f=fine, m=medium, c=coarse, v=very coarse): 3-6: 0.05/0.1/0.3/0.5; 6-30: 0.1/0.2/0.5/1.0; 30-120: 0.15/0.3/0.8/1.5; 120-400: 0.2/0.5/1.2/2.5; 400-1000: 0.3/0.8/2.0/4.0 mm. 'm' is the drawing default when unstated.","applies":["cnc machining","sheet metal","casting"],"value":{"table":[{"range":"0.5-3","f":0.05,"m":0.1,"c":0.2,"v":null},{"range":"3-6","f":0.05,"m":0.1,"c":0.3,"v":0.5},{"range":"6-30","f":0.1,"m":0.2,"c":0.5,"v":1},{"range":"30-120","f":0.15,"m":0.3,"c":0.8,"v":1.5},{"range":"120-400","f":0.2,"m":0.5,"c":1.2,"v":2.5},{"range":"400-1000","f":0.3,"m":0.8,"c":2,"v":4},{"range":"1000-2000","f":0.5,"m":1.2,"c":3,"v":6}],"unit":"mm"},"basis":"ISO 2768-1 table 1, classes f/m/c/v","sources":["iso-2768"],"tags":["iso 2768","linear","tolerance"]},{"id":"iso2768-angular","kind":"tolerance","tier":1,"title":"ISO 2768-1 angular tolerance by shorter side length","summary":"± degrees by the shorter leg, class f/m then c then v: ≤10mm 1.0/1.5/3.0; 10-50mm 0.5/1.0/2.0; 50-120mm 0.33/0.5/1.0; 120-400mm 0.17/0.25/0.5; >400mm 0.08/0.17/0.33 deg.","applies":[],"value":{"table":[{"range":"0-10","f_m":1,"c":1.5,"v":3},{"range":"10-50","f_m":0.5,"c":1,"v":2},{"range":"50-120","f_m":0.333,"c":0.5,"v":1},{"range":"120-400","f_m":0.167,"c":0.25,"v":0.5},{"range":"400-plus","f_m":0.083,"c":0.167,"v":0.333}],"unit":"deg"},"basis":"ISO 2768-1 table 2","sources":["iso-2768"],"tags":["iso 2768","angular","tolerance"]},{"id":"iso2768-radii-chamfers-m","kind":"tolerance","tier":1,"title":"ISO 2768-1 permissible deviation for radii and chamfer heights","summary":"External radii/chamfer heights, class f/m: ≤3mm ±0.2, 3-6mm ±0.5, >6mm ±1.0 mm; class c/v doubles this. Applies to an untoleranced fillet/chamfer, not a functional fit radius.","applies":[],"value":{"table":[{"range":"0-3","f_m":0.2,"c_v":0.4},{"range":"3-6","f_m":0.5,"c_v":1},{"range":"6-plus","f_m":1,"c_v":2}],"unit":"mm"},"basis":"ISO 2768-1 table 3","sources":["iso-2768"],"tags":["iso 2768","radius","chamfer"]},{"id":"general-tolerance-by-process","kind":"tolerance","tier":1,"title":"Achievable general tolerance by manufacturing process","summary":"±mm standard shop tolerance: CNC 0.05-0.13, injection molding 0.1-0.3 (+0.2%/mm beyond 50mm), sheet metal 0.2-0.5, laser cutting 0.1, FDM 0.3 (or 0.2% of dim), SLA 0.1, SLS/MJF 0.3, DMLS 0.1-0.2, die casting 0.1/25mm (+0.02mm/mm beyond).","applies":[],"value":{"table":[{"process":"cnc","min":0.05,"max":0.13},{"process":"injection_molding","min":0.1,"max":0.3},{"process":"sheet_metal","min":0.2,"max":0.5},{"process":"laser_cutting","typical":0.1},{"process":"fdm","typical":0.3},{"process":"sla","typical":0.1},{"process":"sls_mjf","typical":0.3},{"process":"dmls","min":0.1,"max":0.2},{"process":"die_casting","typical":0.1}],"unit":"mm"},"basis":"Protolabs/Xometry published standard-tolerance tables per process","sources":["protolabs-tol","xometry-tol"],"tags":["tolerance","process","cnc","injection molding","sheet metal","fdm","sla","sls","dmls","die casting"]},{"id":"iso286-common-fits","kind":"tolerance","tier":1,"title":"ISO 286 common fits H7/g6, H7/k6, H7/p6 at ⌀10 and ⌀20","summary":"H7/g6 sliding: ⌀10 hole 10.000-10.015/shaft 9.995-10.000 (gap 0-0.02); ⌀20 hole 20.000-20.021/shaft 19.980-19.993 (gap 0.007-0.041). H7/k6 transition: ⌀10 shaft 10.001-10.010; ⌀20 shaft 20.002-20.015. H7/p6 press: ⌀10 shaft 10.024-10.033; ⌀20 shaft 20.035-20.048 mm.","applies":["shaft","bushing","dowel","bearing"],"value":{"table":[{"fit":"H7/g6","size":10,"holeMin":10,"holeMax":10.015,"shaftMin":9.995,"shaftMax":10},{"fit":"H7/g6","size":20,"holeMin":20,"holeMax":20.021,"shaftMin":19.98,"shaftMax":19.993},{"fit":"H7/k6","size":10,"holeMin":10,"holeMax":10.015,"shaftMin":10.001,"shaftMax":10.01},{"fit":"H7/k6","size":20,"holeMin":20,"holeMax":20.021,"shaftMin":20.002,"shaftMax":20.015},{"fit":"H7/p6","size":10,"holeMin":10,"holeMax":10.015,"shaftMin":10.024,"shaftMax":10.033},{"fit":"H7/p6","size":20,"holeMin":20,"holeMax":20.021,"shaftMin":20.035,"shaftMax":20.048}],"unit":"mm"},"basis":"ISO 286-2 hole H7 and shaft g6/k6/p6 deviation tables","sources":["iso-286"],"tags":["iso 286","fit","h7g6","h7k6","h7p6","sliding","transition","press"]},{"id":"surface-finish-by-process","kind":"tolerance","tier":1,"title":"Achievable surface roughness Ra (μm) by process","summary":"Ra μm: turning 0.8-3.2, milling 1.6-3.2, grinding 0.2-0.8, injection molding 0.4-1.6 (as-moulded; texture VDI 3400 for matte grain), FDM 10-20, SLA 1-3, SLS/MJF 5-15, DMLS 5-15. Layer/tool-mark direction is not captured by Ra alone.","applies":[],"value":{"table":[{"process":"turning","min":0.8,"max":3.2},{"process":"milling","min":1.6,"max":3.2},{"process":"grinding","min":0.2,"max":0.8},{"process":"injection_molding","min":0.4,"max":1.6},{"process":"fdm","min":10,"max":20},{"process":"sla","min":1,"max":3},{"process":"sls_mjf","min":5,"max":15},{"process":"dmls","min":5,"max":15}],"unit":"um"},"basis":"ISO 4287 Ra convention; Protolabs/Xometry finish tables by process","sources":["iso-4287","protolabs-tol","xometry-tol"],"tags":["surface finish","ra","turning","milling","grinding","injection molding","fdm","sla","sls","dmls"]},{"id":"standard-iso-2768","kind":"standard","tier":1,"title":"ISO 2768 — general tolerances for linear and angular dimensions","summary":"Two parts: -1 (linear/angular size, classes f/m/c/v) and -2 (form/position, classes H/K/L). One title-block callout ('ISO 2768-mK') sets every un-toleranced dimension on the sheet.","applies":[],"basis":"Reduces drawing clutter by giving default tolerances a single callout","sources":["iso-2768"],"tags":["iso 2768","standard","general tolerance"]},{"id":"standard-iso-286","kind":"standard","tier":1,"title":"ISO 286 — ISO code system for tolerances on linear sizes (fits)","summary":"Defines the letter+number fit code (H7, g6, k6, p6...), written 'hole/shaft' e.g. ⌀20H7/g6. Part -1 is the tolerance classes, part -2 the tables of limits and fits.","applies":[],"basis":"Standardises fit callouts across CAD/drawing systems worldwide","sources":["iso-286"],"tags":["iso 286","standard","fit"]},{"id":"standard-asme-y145","kind":"standard","tier":1,"title":"ASME Y14.5 — dimensioning and tolerancing (GD&T)","summary":"The US GD&T standard: datum reference frames, feature control frames, MMC/LMC modifiers, position/profile/runout. A drawing needs ≥3 mutually perpendicular datums (3-2-1 scheme) to fully constrain a part for inspection.","applies":[],"basis":"Datum scheme and feature-control-frame syntax an inspector reads against","sources":["asme-y14.5"],"tags":["gd&t","asme y14.5","datum","standard"]},{"id":"test-drop-iec-60068-2-31","kind":"test","tier":1,"title":"Free-fall drop test, IEC 60068-2-31 / MIL-STD-810 Method 516","summary":"Handheld devices: 1000/1200/1500 mm drop onto concrete, one face/edge/corner per orientation. Geometry response: corner radii ≥ 2 mm at impact corners, internal ribs behind the impact zone, no unsupported span > 40 mm near a corner.","applies":["handheld device","enclosure","consumer electronics"],"value":{"options":[1000,1200,1500],"unit":"mm"},"basis":"IEC 60068-2-31 Test Ec free-fall / MIL-STD-810H Method 516.8 transit drop","sources":["iec-60068-2-31","mil-std-810"],"tags":["drop test","corner radius","impact","rugged"]},{"id":"test-ip-ratings-iec-60529","kind":"test","tier":1,"title":"IP ingress protection rating, IEC 60529","summary":"IP54 dust-protected/splash; IP65 dust-tight/jets; IP67 immersion 1m/30min; IP68 beyond 1m per spec. Geometry response: continuous gasket groove at every seam, a gland or vent membrane boss at cable/vent ports, no through-hole from a sealed screw boss.","applies":["enclosure","outdoor equipment","wearable"],"value":{"options":["IP54","IP65","IP67","IP68"]},"basis":"IEC 60529 IP code, first digit dust / second digit water","sources":["iec-60529"],"tags":["ip rating","ip67","ip68","gasket","sealing","vent"]},{"id":"test-ul94-flammability","kind":"test","tier":1,"title":"UL 94 plastics flammability rating (HB, V-2, V-0)","summary":"HB: horizontal slow-burn, min 1.5mm. V-2/V-1: vertical, self-extinguishes, drips allowed(V-2)/not(V-1). V-0: extinguishes <=10s, no flaming drips, down to 0.8-1.5mm. Geometry response: the rating only holds at or above the resin's UL-tested min thickness.","applies":["injection moulded housing","electrical enclosure"],"value":{"options":["HB","V-2","V-1","V-0"]},"basis":"UL 94 vertical/horizontal burn test, rating tied to tested minimum thickness","sources":["ul-94"],"tags":["ul 94","flammability","v-0","minimum wall","plastic"]},{"id":"rule-datum-scheme-321","kind":"rule","tier":1,"title":"3-2-1 datum scheme for fixturing and inspection","summary":"Primary datum: 3 points on the largest stable face (removes 3 DOF). Secondary: 2 points on a perpendicular face (2 DOF). Tertiary: 1 point on a third perpendicular face (last DOF). Pick datums matching how the part is fixtured and measured.","applies":[],"basis":"ASME Y14.5 datum reference frame construction","sources":["asme-y14.5"],"tags":["datum","3-2-1","fixturing","gd&t"]},{"id":"rule-when-gdt-vs-plusminus","kind":"rule","tier":1,"title":"When to call out GD&T vs. plain ± dimensions","summary":"Use plain +/- for non-functional, non-mating sizes (default ISO 2768). Switch to GD&T (position/profile/runout with a datum frame) when a feature mates, rotates, or must pass a functional gauge — GD&T defines a usable zone that coordinates cannot.","applies":[],"basis":"GD&T defines a functional tolerance zone; coordinate tolerancing often over-constrains at the corners","sources":["asme-y14.5"],"tags":["gd&t","tolerancing","mating","position"]},{"id":"note-stating-tolerance-on-drawing","kind":"note","tier":1,"title":"How to state a tolerance on a drawing or in PMI","summary":"Title block default: 'UNLESS OTHERWISE SPECIFIED, TOLERANCES PER ISO 2768-mK'. Per-feature override: an explicit +/- or feature control frame. In NativeCAD use cad_pmi_author to attach PMI to a face/edge so it round-trips in the STEP AP242 export.","applies":[],"basis":"PMI (product manufacturing information) authoring practice for model-based definition","sources":["asme-y14.5"],"tags":["pmi","drawing","title block","cad_pmi_author"]},{"id":"gasket-groove-for-ip-sealing","kind":"feature","tier":1,"title":"Gasket groove for IP-rated enclosure seams","summary":"Rectangular groove: width = gasket cord dia x 1.3-1.5, depth = cord dia x 0.75-0.8 for 20-25% compression, continuous with rounded corners (r >= 2x groove width) so the gasket doesn't kink. Undersized compression is the top cause of an IP67 fail.","applies":["enclosure","outdoor equipment","sealed housing"],"value":{"min":0.2,"max":0.25,"unit":"ratio","note":"compression fraction of gasket cord diameter"},"basis":"Standard elastomer gasket groove design for a continuous seam seal","sources":["iec-60529"],"tags":["gasket","groove","ip rating","sealing"]}]}