From 0908191ef3c4df28184a3439ca057b426cfc122d Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Mon, 23 Mar 2026 12:20:53 +0100 Subject: [PATCH] add tolleranze-iso skill: ISO 286-1 tolerance and fit selection consultant MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Complete ISO 286-1 skill for mechanical designers covering: - Fit selection (clearance/transition/interference) with intake protocol - IT grades 1–16 with required machining processes for bores and shafts - Full functional elements reference: rolling bearings, gears, keys (DIN 6885), Seeger rings, cylindrical pins, plain bushings, lip seals, splined profiles, couplings, linear guides (14 sections total) - Fundamental deviations table (bores A–ZC, shafts a–zc, Ø1–500 mm) - Surface roughness Ra correlation by IT grade - Python calculator (scripts/calculate_fit.py) with JSON data files for exact clearance/interference computation and formatted fit data sheet output - Visual input support: analyses attached drawings, sketches, photos - Description ≤ 1024 chars, written in English for optimal trigger accuracy Co-Authored-By: Claude Sonnet 4.6 --- tolleranze-iso/SKILL.md | 99 +++ tolleranze-iso/references/fits.md | 85 ++ .../references/functional-elements.md | 431 ++++++++++ .../references/fundamental-deviations.md | 99 +++ tolleranze-iso/references/intake.md | 60 ++ tolleranze-iso/references/it-grades.md | 127 +++ tolleranze-iso/references/keys-keyways.md | 147 ++++ .../references/surface-roughness.md | 75 ++ tolleranze-iso/scripts/calculate_fit.py | 275 +++++++ tolleranze-iso/scripts/deviations.json | 744 ++++++++++++++++++ tolleranze-iso/scripts/it_values.json | 22 + 11 files changed, 2164 insertions(+) create mode 100644 tolleranze-iso/SKILL.md create mode 100644 tolleranze-iso/references/fits.md create mode 100644 tolleranze-iso/references/functional-elements.md create mode 100644 tolleranze-iso/references/fundamental-deviations.md create mode 100644 tolleranze-iso/references/intake.md create mode 100644 tolleranze-iso/references/it-grades.md create mode 100644 tolleranze-iso/references/keys-keyways.md create mode 100644 tolleranze-iso/references/surface-roughness.md create mode 100644 tolleranze-iso/scripts/calculate_fit.py create mode 100644 tolleranze-iso/scripts/deviations.json create mode 100644 tolleranze-iso/scripts/it_values.json diff --git a/tolleranze-iso/SKILL.md b/tolleranze-iso/SKILL.md new file mode 100644 index 0000000..922d2e0 --- /dev/null +++ b/tolleranze-iso/SKILL.md @@ -0,0 +1,99 @@ +--- +name: tolleranze-iso +description: > + ISO 286-1 expert for dimensional tolerances and shaft-hole fits in mechanical design. Use this + skill ALWAYS when a mechanical engineer needs to select tolerances, fits, IT grades, surface + roughness Ra, or functional dimensioning — even without explicit tolerance terminology. Trigger + for: shaft design with bearings, gears or bushings; clearance/interference/transition fit + selection; mounting components on shafts (pulleys, hubs, keys DIN 6885, Seeger rings, lip + seals, locating pins, splined profiles); any functional dimensioning on technical drawings. + Trigger ALWAYS on images of technical drawings, sketches or photos of mechanical components — + even without text. Typical triggers: "designing a gearbox, need to fit a gear on the shaft", + "what fit for this bearing seat?", "is H7/p6 correct for this hub?", "tolerance a bronze + bushing", "roughness for seal seat?", "keyway for Ø30 shaft?", "clearance or interference + here?". Also: "che tolleranza metto", "quale accoppiamento", "allego il disegno". +--- + +# ISO Tolerances — Design Consultant + +You are a senior mechanical engineer with 20+ years on ISO 286-1, manufacturing, and quality. +Your value lies in understanding the problem *before* giving numbers: function always drives +the tolerance, not the other way around. You work like an experienced colleague: ask the right +questions, justify your choices, flag practical risks. + +--- + +## Workflow + +### 1. Gather information + +**If an image arrives** (drawing, photo, sketch): analyse it immediately — visible dimensions, +component type, existing annotations, assembly context. Summarise your interpretation and ask +only what the image does not clarify. + +**Critical information** (without these, nothing reliable can be recommended): +- Nominal diameter (IT values in µm depend on the diameter range) +- Function (slides? transmits torque? locates? seals? rotates?) +- Removability (routine maintenance / rarely / never — changes the choice radically) + +**Important** (improve the recommendation): available manufacturing process, load type +(static/impact/vibration), operating temperature, materials. + +When something critical is missing: explain why it is blocking, propose a hypothesis to +confirm, suggest how to obtain the data. Never list coldly — reason out loud. +→ Full intake protocol: `references/intake.md` + +### 2. Classify and select + +- Function → fit type → `references/fits.md` +- IT grade and manufacturing process → `references/it-grades.md` +- Special elements (bearings, gears, keys, Seeger rings, pins, bushings, lip seals, + couplings, splined profiles) → `references/functional-elements.md` + `references/keys-keyways.md` +- Consistent Ra roughness with IT grade → `references/surface-roughness.md` +- Exact deviation values → `references/fundamental-deviations.md` + +### 3. Calculate exact values + +For precise clearance/interference numbers, run the script: +```bash +python3 scripts/calculate_fit.py +# e.g.: python3 scripts/calculate_fit.py 50 H7/k6 +``` +The script reads complete ISO 286-1 data (1–500 mm) from the JSON files and prints a +formatted engineering data sheet. + +### 4. Present the report + +Always use this format: + +``` +RECOMMENDED FIT: Ø__ __/__ +Type: clearance / transition / interference +Clearance or interference: min __ µm — max __ µm +Drawing dimensions: bore Ø__ +__/0 | shaft Ø__ +__/−__ +Manufacturing: bore: __ | shaft: __ +Surface roughness Ra: bore ≤ __ µm | shaft ≤ __ µm +Assembly method: __ +Assumptions made: __ (if you filled gaps with assumptions) +Risks: __ +Alternatives: __ — trade-off: __ +``` + +--- + +## Quick Reference — Preferred Fits (H-base system) + +| Function | Fit | Type | +|---|---|---| +| Precision sliding, lubricated | H7/g6, H6/g5 | Clearance | +| Standard sliding | H7/f7, H8/f7 | Clearance | +| Loose / long shafts | H8/e8, H9/d9 | Clearance | +| Positioning / removable centering | H7/h6 | Nominal zero clearance | +| Removable pin / key | H7/js6, H7/k6 | Transition | +| Hot-removable sleeve | H7/m6 | Transition | +| Fixed bushing / ring | H7/n6 | Light interference | +| Gear / fixed pulley | H7/p6 | Interference (press or thermal) | +| High-torque transmission | H7/r6, H7/s6 | Strong interference (thermal) | +| Maximum interference (bronze/cast iron) | H7/u6 | Interference (thermal ≥ 250°C) | +| Bearing — rotating shaft | k5, m5 (shaft) / H7 (housing) | — | +| Bearing — idler pulley | h6 (shaft) / N7, M7 (housing) | — | diff --git a/tolleranze-iso/references/fits.md b/tolleranze-iso/references/fits.md new file mode 100644 index 0000000..812ed57 --- /dev/null +++ b/tolleranze-iso/references/fits.md @@ -0,0 +1,85 @@ +# Fit Selection Matrix — Function to Coupling + +## Clearance Fits + +### Loose clearance — free movement +| Fit | Typical application | Indicative clearance (Ø50) | +|---|---|---| +| H11/c11 | Articulated joints, cranks, very loose couplings | 0.12 – 0.45 mm | +| H9/d9 | Connecting rods, flanges with generous clearance | 0.06 – 0.20 mm | +| H8/e8 | Long shafts, joints with misalignment | 0.04 – 0.11 mm | + +### Functional clearance — sliding with lubrication +| Fit | Typical application | Indicative clearance (Ø50) | +|---|---|---| +| H8/f7 | Sliding bushings, guides, pins | 0.025 – 0.09 mm | +| H7/f7 | Standard sliding fits | 0.020 – 0.07 mm | +| H7/g6 | Precision fits, rotating pins | 0.010 – 0.05 mm | +| H6/g5 | Spindles, high-precision shafts | 0.004 – 0.025 mm | + +### Small clearance — centering +| Fit | Typical application | Indicative clearance (Ø50) | +|---|---|---| +| H7/h6 | Positioning, removable centering | 0 – 0.025 mm | +| H6/h5 | High-precision positioning | 0 – 0.013 mm | + +--- + +## Transition Fits + +May result in slight clearance or slight interference — the statistical distribution of +manufacturing determines the actual type on each individual part. + +| Fit | Typical application | Clearance/Interference (Ø50) | +|---|---|---| +| H7/js6 | Removable pins, loose pulleys | ±0.008 mm | +| H7/k6 | Bushings, rings, removable keys | −0.002 … +0.018 mm | +| H7/m6 | Sleeves, hot-removable gears | −0.009 … +0.011 mm | +| H6/k5 | High precision, precision gears | −0.002 … +0.009 mm | + +**Practical rule**: k6 is press-fit and removed with a puller. m6 requires a heavier press +or heating. Both are "removable" but require tooling. + +--- + +## Interference Fits + +⚠️ Before specifying an interference, **always calculate**: +1. Contact pressure at the joint +2. Hoop stress in the hub +3. Radial stress in the shaft (if hollow) +4. Transmissible torque by friction (verify sufficiency) +5. Assembly temperature if thermal + +→ Use `fundamental-deviations.md` for exact values, then apply Lamé equations. + +| Fit | Typical application | Indicative interference (Ø50) | Assembly | +|---|---|---|---| +| H7/n6 | Fixed bushings, sealing rings, bronze bearings | 0 … 0.033 mm | Press (up to 10 kN on Ø50) | +| H7/p6 | Gears on shaft, fixed pulleys, hubs | 0.009 … 0.042 mm | Press or thermal | +| H7/r6 | Medium-torque transmission hubs | 0.020 … 0.055 mm | Thermal (Δt = 80–150°C) | +| H7/s6 | High-torque transmission | 0.031 … 0.066 mm | Thermal (Δt = 150–250°C) | +| H7/u6 | Bronze/cast-iron bushings, maximum interference | 0.053 … 0.094 mm | Thermal (Δt ≥ 250°C) | +| H6/p5 | Inner rings of P5/P4 precision bearings | — | Thermal | + +### Interference verification formulas +``` +Contact pressure: p = δ / [d × (C_o/E_o + C_i/E_i)] + where δ = actual interference (mm) + d = nominal diameter (mm) + C_o, C_i = shape coefficients (from Lamé) + E_o, E_i = elastic moduli of materials + +Transmissible torque: Mt = p × π × d² × L × μ / 2 + where L = contact length + μ = friction coefficient (0.08–0.12 thermal, 0.12–0.15 press) + +Assembly temperature: ΔT = δ_max / (α × d) [°C] + where α = thermal expansion coefficient (steel: 11.5×10⁻⁶ /°C) + + add 30–50°C for assembly clearance +``` + +--- + +> For bearings, gears, valves, keys, Seeger rings, pins, bushings, seals, and all other +> functional elements → see `functional-elements.md` (includes decision flowchart). diff --git a/tolleranze-iso/references/functional-elements.md b/tolleranze-iso/references/functional-elements.md new file mode 100644 index 0000000..0122018 --- /dev/null +++ b/tolleranze-iso/references/functional-elements.md @@ -0,0 +1,431 @@ +# Functional Elements — Tolerances and Fits + +--- + +## 1. Rolling Bearings (ISO 286-1 + ISO 15 / ISO 76) + +### Fundamental principle +The ring that **rotates relative to the load direction** must have **interference** with its seat. +If the load-carrying ring can slip in its seat, "creep" begins: progressive erosion, vibration +and premature failure. + +### Fixed end / free end scheme (thermal expansion) + +``` + Fixed end (FE) Free end (FL) +Shaft: k5 / m5 (interference) h6 (deliberate clearance) +Housing: H7 (clearance) G7 / H7 (clearance) + + ┌────────────────────────────────────────────────────┐ + │ [Bearing FE] ═══ shaft ═══ [Bearing FL] │ + │ k5 / H7 h6 / H7 or G7 │ + └────────────────────────────────────────────────────┘ + FE: locked axially FL: free to slide + (outer ring retained (outer ring free to move + by shoulder/Seeger ring) in bore for thermal growth) +``` + +> The free end exists because the shaft grows thermally: without it, parasitic axial loads +> build up and destroy bearings and structure. + +### Tolerance table — Ball and roller bearings (class P0/P6) + +#### SHAFT seat (inner ring) + +| Condition | d ≤ 18 mm | 18 < d ≤ 100 mm | 100 < d ≤ 200 mm | Notes | +|---|---|---|---|---| +| Light / variable load | h5, js5 | h6, js6 | h6 | Easy to disassemble | +| **Normal load** (motors, gearboxes) | **k5** | **k5, m5** | **m6, n6** | Industrial standard | +| Heavy load / impact | m5, n5 | m5, n5, p5 | n6, p6 | Thermal assembly | +| Pure axial thrust | js5, h5 | js6, h6 | h6 | No load rotation | +| Free end | h6 | h6 | h6 | Deliberate clearance for thermal growth | + +#### HOUSING seat (outer ring) + +| Condition | Bore tolerance | Notes | +|---|---|---| +| Fixed outer ring, rotating load on shaft | **H7** | Standard — removable | +| Impact loads / vibrations | **JS7, K7** | Slight interference | +| Rotating outer ring (wheels, idler pulleys) | **N7, M7** | Interference — non-removable | +| Heavy loads with rotating outer ring | **P7** | Strong interference | +| Adjustable or frequently removable support | **G7** | Deliberate clearance | + +### Precision bearings (class P5, P4, P2) + +| Class | Shaft | Housing | Application | +|---|---|---|---| +| P5 | j5, k5 | H6, JS6 | Simple spindles, precision pumps | +| P4 | j5, k4 | H5, JS5 | Machine tool spindles | +| P2 | j4, k4 | H4 | High-precision grinders, measuring machines | + +### Angular contact bearings (matched pair) + +For O (back-to-back) or X (face-to-face) mounting with preload: +- Shaft: js5 or k5 (maintains axial preload) +- Housing: JS6 (for controlled preload) or H7 standard +- ⚠️ Avoid heavy interference: it reduces the bearing's internal preload + +### Bearing seat roughness + +| Element | Ra | Rz | Notes | +|---|---|---|---| +| Shaft (P0/P6) | ≤ 0.8 µm | ≤ 4 µm | Cylindrical grinding required | +| Housing (P0/P6) | ≤ 1.6 µm | ≤ 8 µm | Fine boring or internal grinding | +| Shaft (P5/P4) | ≤ 0.4 µm | ≤ 2 µm | Precision grinding | +| Shoulder / axial abutment | ≤ 1.6 µm | — | Flatness important (± 0.005 mm) | + +### Practical rules for common machines + +| Machine | Shaft (inner ring) | Housing (outer ring) | +|---|---|---| +| Electric motor (drive side) | m5 | H7 | +| Electric motor (free end) | k5 | H7 | +| Industrial gearbox | k5 or m5 | H7 or JS7 | +| Centrifugal pump | k5 or m5 | H7 | +| Fan (vibrations) | m5 | JS7 | +| Wheel / idler pulley | h6 | N7 or M7 | +| Machine tool spindle | j5 or k5 | H6 or JS6 | + +--- + +## 2. Gears + +### Gear bore – shaft fit + +| Requirement | Fit | Torque path | Notes | +|---|---|---|---| +| Removable, frequent maintenance | H7/h6 + key | Key only | Small clearance, cold-removable | +| Removable, infrequent maintenance | H7/k6 + key | Key + slight interference | **Industrial standard** | +| Hot-removable, high precision | H7/m6 + key | Key + medium interference | Heat to 80–120°C | +| Fixed, moderate torque | H7/p6 | Interference only | No key → no stress concentration | +| Fixed, high torque | H7/r6 or s6 | Interference only | Thermal assembly mandatory | +| High angular precision | H6/k5 + key | Key | Minimises run-out | + +### Tooth profile quality (ISO 1328-1) + +| Quality | Application | Indicative tooth IT | Finishing process | +|---|---|---|---| +| 3–5 | Measurement, instruments | IT5–IT6 | Profile grinding | +| 6–7 | Machine tools, precision gearboxes | IT6–IT7 | Grinding or shaving | +| 8–9 | Industrial gearboxes | IT7–IT8 | Shaving / hobbing | +| 10–11 | General mechanics | IT9–IT10 | Hobbing only | +| 12 | Toys, low speed | IT11–IT12 | Rough hobbing | + +### Centre distance tolerance (ISO 1328) + +| Application | Tolerance | IT grade (indicative) | +|---|---|---| +| Precision gearboxes | ±0.01 – 0.02 mm | IT6–IT7 | +| Industrial gearboxes | ±0.03 – 0.05 mm | IT8–IT9 | +| General mechanics | ±0.1 mm | IT10–IT11 | + +--- + +## 3. Valve Seats + +### Internal combustion engine valves + +| Component | Typical material | Fit | Notes | +|---|---|---|---| +| Exhaust valve seat insert | Sintered steel | H7/s6 – H7/u6 | High interference: retains at operating Δt (up to 300°C) | +| Intake valve seat insert | Cast iron or sintered | H7/r6 – H7/s6 | Medium interference | +| Valve guide | Bronze or sintered | H7/p6 or H7/r6 (OD) + D9/f7 (ID) | External fix + stem clearance | +| Valve stem in guide | Nitrided steel | D9/f7 or G8/f7 | Clearance 0.03–0.08 mm (intake) 0.05–0.10 mm (exhaust) | + +### Pneumatic / hydraulic valves + +| Type | Fit | Required Ra | Notes | +|---|---|---|---| +| Fixed seat (press in) | H7/r6 – H7/s6 | Ra ≤ 0.8 µm (seat) | Seal by interference + optional sealant | +| Spool / slide valve | H7/f7 – H7/g6 | **Ra ≤ 0.4 µm** | Gap 0.01–0.05 mm critical for leakage | +| Piston rod / stem | H8/f7 | Ra ≤ 0.8 µm | Combined with O-ring or lip seal | +| High-pressure piston (no seal) | H6/g5 | Ra ≤ 0.2 µm | Metal-to-metal seal — gap 3–8 µm | + +--- + +## 4. Transmission Shafts — Complete Layout + +### Functional zone map + +``` + ┌────┬──────────┬──────┬──────────┬──────┬──────────┬────┐ + │ FE │ bearing │ non │ gear │ non │ bearing │ FL │ + │ │ (k5/m5) │ func │ (k6/p6) │ func │ (h6) │ │ + └────┴──────────┴──────┴──────────┴──────┴──────────┴────┘ + ↑ ↑ + fixed end free end + (axial load locked) (free to slide axially) +``` + +### Tolerance table by shaft zone + +| Functional zone | Shaft tolerance | Ra | Element | +|---|---|---|---| +| Bearing seat — fixed end | k5 or m5 | ≤ 0.8 µm | Bearing inner ring | +| Bearing seat — free end | h6 | ≤ 0.8 µm | Bearing inner ring (slides) | +| Removable gear seat | k6 | ≤ 1.6 µm | Gear + key N9 | +| Fixed gear seat | p6 | ≤ 0.8 µm | Gear (interference) | +| Lip seal seat (simmering) | h11 or h8 | **0.2–0.4 µm** | Rubber/PTFE lip | +| Seeger ring groove on shaft | h11 (groove diameter) | ≤ 3.2 µm | Snap ring | +| Keyway width | N9 | ≤ 3.2 µm | DIN 6885 key | +| Non-functional zones / fillets | h9 – h11 | ≤ 6.3 µm | — | +| Threaded end | 6g (thread) | — | Locking nut | + +--- + +## 5. Keys (DIN 6885-1 / ISO 773) + +→ For dimension tables, fit types, clearance calculation and torque check: see `keys-keyways.md` + +### Fit summary + +| Fit type | Shaft keyway | Hub keyway | Key | Use | +|---|---|---|---|---| +| Normal | N9 | JS9 | h9 | **Industrial standard** | +| Sliding | H9 | D10 | h9 | Hub slides axially | +| Tight | P9 | P9 | h9 | No clearance, high precision | + +> ⚠️ The keyway is a stress concentration feature that reduces shaft fatigue strength +> by 25–40%. Do not position at zones of maximum bending. + +--- + +## 6. Snap Rings — Seeger (DIN 471 / DIN 472) + +### Types +- **DIN 471**: ring for **shaft** (opens to mount in external groove) +- **DIN 472**: ring for **bore** (closes to mount in internal groove) + +### Groove tolerances + +#### DIN 471 — Groove on SHAFT + +| Shaft diameter d (mm) | Groove width b | Tolerance b | Groove diameter d1 | Tolerance d1 | +|---|---|---|---|---| +| 6 – 9 | 0.9 | h13 | d − 1.0 | h11 | +| 9 – 19 | 1.0 | h13 | d − 1.1 | h11 | +| 19 – 28 | 1.2 | h13 | d − 1.3 | h11 | +| 28 – 46 | 1.5 | h13 | d − 1.65 | h11 | +| 46 – 80 | 1.75 | h13 | d − 1.95 | h11 | +| 80 – 100 | 2.0 | h13 | d − 2.25 | h11 | + +#### DIN 472 — Groove in BORE (housing) + +| Bore diameter D (mm) | Groove width b | Tolerance b | Groove diameter D1 | Tolerance D1 | +|---|---|---|---|---| +| 8 – 14 | 1.0 | H13 | D + 1.0 | H11 | +| 14 – 22 | 1.1 | H13 | D + 1.2 | H11 | +| 22 – 38 | 1.2 | H13 | D + 1.3 | H11 | +| 38 – 65 | 1.5 | H13 | D + 1.6 | H11 | +| 65 – 100 | 1.8 | H13 | D + 2.0 | H11 | +| 100 – 120 | 2.0 | H13 | D + 2.2 | H11 | + +### Practical rules +- The H11/h11 groove is intentionally wide to allow ring installation with pliers +- Groove diameter controls axial load capacity: always verify against ring load rating (SKF/Seeger tables) +- Groove root radius: r ≤ 0.2 mm to prevent ring jamming +- Do not use Seeger rings for alternating or impact axial loads: use a shoulder or nut + +--- + +## 7. Cylindrical and Tapered Pins (ISO 8734 / ISO 8735 / ISO 2339) + +### Cylindrical pins (ISO 8734 — hardened steel, ISO 8735 — with extraction thread) + +| Function | Pin–bore fit | Notes | +|---|---|---| +| Fixed locating / torque pin | **H7/n6** | Interference — press fit, non-removable | +| Fixed pin with extraction (ISO 8735) | **H7/n6** | Same, but removable with extractor | +| Removable locating pin | **H7/g6** | Controlled clearance — hand-removable | +| Hinge / pivot pin | **H7/f7** | Clearance for rotation — lubrication recommended | + +### Tapered pins (ISO 2339 — taper 1:50) +- Self-locking: retained by elastic deformation — no special tolerance needed +- Bore produced by **reaming with tapered reamer** after assembly (recommended) +- Disadvantage: bore is not interchangeable — each pin is matched to its bore + +### Locating hole position (GD&T) + +``` +TP_bore ≤ 0.5 × min_clearance (for locating pins) +TP_bore ≤ 0.3 × min_interference (for fixed pins) +``` + +--- + +## 8. Plain Bearings / Bushings + +### Types and materials + +| Type | Material | Characteristic | Outer fit (in housing) | +|---|---|---|---| +| Bronze bushing | CuSn8, CuZn24Al | High load capacity, lubrication required | **H7/s6 or H7/u6** | +| Sintered self-lubricating | Fe or Cu sintered | Impregnated lubrication, low speed | **H7/r6 or H7/s6** | +| PTFE / graphite bushing | PTFE composite | Dry, low speed, high temperature | **H7/p6 or H7/r6** | +| Bimetal (steel + bronze) | St + CuSn | High load capacity | **H7/s6** | +| Nylon / POM bushing | Polyamide, POM | Lightweight, low torque, quiet | **H7/p6** (check thermal Δt) | + +### Inner fit: bushing bore – shaft + +| Condition | Fit | Indicative clearance | Notes | +|---|---|---|---| +| Continuous rotation, lubricated | H7/f7 or H8/f7 | 0.02–0.07 mm (Ø50) | Standard — clearance for oil film | +| High speed, forced lubrication | H7/g6 | 0.01–0.05 mm (Ø50) | More stable hydrodynamic film | +| Oscillating (no full rotation) | H9/f9 or H9/e9 | 0.04–0.12 mm (Ø50) | More clearance to avoid stick-slip | +| Very light load, low speed | H8/h8 | 0–0.054 mm (Ø50) | Near zero clearance, marginal lubrication | + +### Note on plastic bushings (POM/PA) +Plastics have 5–10× higher thermal expansion than steel. +- At ambient temperature: use recommended fit +- At operating temperature: verify interference does not generate excessive pressure (hub cracking + risk) and that internal clearance does not become negative (seizure) +- Rule of thumb: for POM with Δt = +50°C on Ø30, allow 0.06 mm additional clearance + +--- + +## 9. Radial Shaft Seals / Lip Seals (DIN 3760 / ISO 6194) + +### Seat tolerances + +| Element | Tolerance | Ra | Notes | +|---|---|---|---| +| **Shaft** (lip contact surface) | **h11** or **h8** | **Ra 0.2–0.4 µm** | Circumferential texture — NOT helical | +| Housing bore (seal press-in) | **H8** | Ra 1.6–3.2 µm | Lead-in chamfer at entry (15°, r=0.3 mm) | + +### Lip material and speed limits + +| Lip material | Max speed (m/s) | Temperature range | Notes | +|---|---|---|---| +| NBR (nitrile) | ≤ 6 m/s | −40 / +100°C | Standard — mineral oil | +| FKM (Viton) | ≤ 9 m/s | −20 / +180°C | Synthetic oil, high temperature | +| PTFE | ≤ 15 m/s | −60 / +200°C | Low friction, marginal lubrication | +| PTFE with stainless lip | ≤ 20 m/s | −60 / +200°C | High speed | + +### Critical requirements + +1. **Shaft hardness**: min 55 HRC (or surface treatment: nitriding, chrome plating) + — Soft shaft → lip cuts surface within hours → seal failure +2. **Circumferential finish**: texture must be perpendicular to axis + — Axial grinding direction: lip pumps fluid outward (screw effect → leaks) +3. **Shaft eccentricity (TIR)**: max 0.1–0.2 mm depending on diameter and speed +4. **Internal pressure**: standard seals up to 0.3 bar; above → reinforced spring seal or double lip + +--- + +## 10. Locating and Positioning Pins + +### Self-locking taper pins +- Taper 1:50 (ISO 2339 standard): self-locking, suitable for moderate torque +- Taper 1:30 (DIN 1): used on tooling, easier to remove +- Extraction slot in head is always recommended + +### Spring pins (ISO 8752) + +| Application | Notes | +|---|---| +| Light positioning, low torque | Economical, bore tolerance H12 — easy assembly | +| Replaces solid pin in vibrating environments | Spring elasticity absorbs vibrations | + +### Locating pins for flanges and plates +- Standard: 2 pins diametrically opposed (no more — redundancy creates GD&T issues) +- Diameter: 6–12 mm for most industrial cases +- Fit: H7/n6 on both bores (matched plates) or H7/g6 if frequently removed + +--- + +## 11. Involute Splines (ISO 4156 / DIN 5480) + +For applications requiring: +- High torque (> 500 Nm on shafts Ø < 50 mm) +- Frequent reversals (no angular backlash) +- High-precision angular connections that must be removable + +### Fit classes (ISO 4156) + +| Class | Application | Notes | +|---|---|---| +| **H/h** (clearance) | Removable, axially sliding | Standard for couplings | +| **H/js** (transition) | Precise positioning, fixed | Light press | +| **H/k, H/m** (interference) | Fixed, high torque | Same as solid hub fits | + +> Do not dimension individual teeth: use the full ISO 4156 designation +> (e.g. "DIN 5480 W30×2×14×9H/9h") and reference the standard. + +--- + +## 12. Couplings + +### Rigid couplings (sleeves, discs) + +| Condition | Shaft–coupling fit | Notes | +|---|---|---| +| Fixed, removable | H7/k6 + key | Light press, hot-removable | +| Fixed, non-removable | H7/p6 or r6 | Interference — thermal assembly | +| Precision (no angular play) | H6/k5 | High precision | + +### Flexible couplings (spider, elastomer) +- Shaft–hub fit: H7/k6 or H7/m6 +- Clearance compensated by elastic element — heavy interference not needed +- Misalignment tolerance: see manufacturer's data sheet (typical: 0.1–0.5 mm radial, 0.5–2° angular) + +### Oldham and universal (cardan) joints +- Shaft–hub: H7/g6 or H7/h6 + pin or key +- Centre element must slide: female side of joint H7/f7 – H8/f8 + +--- + +## 13. Linear Guides and Sliding Surfaces + +| Guide type | Fit | Ra | Application | +|---|---|---|---| +| Sliding guide, lubricated | H7/f7 | ≤ 0.8 µm | Machine tools, cylinders | +| Sliding guide, high precision | H6/g5 | ≤ 0.4 µm | Measuring machines | +| Guide pin / die column | H7/g6 | ≤ 0.8 µm | Dies, fixtures | +| Zero-clearance guide (preloaded) | H6/h5 + preload | ≤ 0.4 µm | Precision tables | +| Taper centering (self-locating) | — | ≤ 0.8 µm | Taper 1:50–1:100, no ISO tolerance needed | + +--- + +## 14. General Tolerances (ISO 2768) + +For non-critical dimensions, use general tolerances rather than tolerancing every dimension. + +| Class | Symbol | Approx. grade | Application | +|---|---|---|---| +| Fine | f | IT9–IT10 | Precision mechanics | +| **Medium** | **m** | **IT11** | **Industrial standard (default)** | +| Coarse | c | IT12–IT13 | Structures, fabrications | +| Very coarse | v | IT14–IT15 | Raw castings, forgings | + +**Drawing note**: `ISO 2768-mK` (medium linear + medium geometric tolerances) + +--- + +## Appendix: Quick Decision Flowchart + +``` +What is the function of the fit? +│ +├─ Must SLIDE / ROTATE? ─────────────────────────→ Clearance +│ ├─ High precision, lubricated → H7/g6 or H6/g5 +│ ├─ Standard, lubricated → H7/f7 or H8/f7 +│ └─ Loose, misalignment → H8/e8 or H9/d9 +│ +├─ Must LOCATE (removable)? ─────────────────────→ Transition / zero clearance +│ ├─ High precision → H6/h5 or H7/js6 +│ └─ Standard → H7/h6 or H7/k6 +│ +├─ Must TRANSMIT TORQUE (fixed)? ────────────────→ Interference +│ ├─ Removable with tools → H7/k6 + key +│ ├─ Moderate torque → H7/p6 +│ ├─ High torque → H7/r6 or H7/s6 +│ └─ Maximum (bronze/cast iron) → H7/u6 +│ +├─ Is it a BEARING? ──────────────────────────────→ see §1 +├─ Is it a KEY / KEYWAY? ─────────────────────────→ see §5 / keys-keyways.md +├─ Is it a SEEGER / SNAP RING? ───────────────────→ see §6 +├─ Is it a PIN? ──────────────────────────────────→ see §7 +├─ Is it a BUSHING? ──────────────────────────────→ see §8 +├─ Is it a LIP SEAL / SIMMERING? ─────────────────→ see §9 +└─ Is it a SPLINED PROFILE? ──────────────────────→ see §11 +``` diff --git a/tolleranze-iso/references/fundamental-deviations.md b/tolleranze-iso/references/fundamental-deviations.md new file mode 100644 index 0000000..de7818f --- /dev/null +++ b/tolleranze-iso/references/fundamental-deviations.md @@ -0,0 +1,99 @@ +# Fundamental Deviations — Numerical Values (ISO 286-1) + +## How to Read This File + +Example: **Ø50 H7/k6** +1. Diameter range: 50 mm → rows "30–50" and "50–80" +2. Bore H7: lower deviation EI = 0, upper deviation ES = +25 µm (IT7 for Ø50) +3. Shaft k6: lower deviation ei = +2 µm, upper deviation es = ei + IT6 = +2 + 16 = +18 µm +4. Max clearance = ES − ei = 25 − 2 = +23 µm → clearance +5. Min clearance = EI − es = 0 − 18 = −18 µm → interference +→ **Transition fit**, in practice predominantly with slight interference + +--- + +## Bore Fundamental Deviations (uppercase) — Lower Deviation EI (µm) + +| Bore | 1–3 | 3–6 | 6–10 | 10–18 | 18–30 | 30–50 | 50–80 | 80–120 | 120–180 | 180–250 | +|---|---|---|---|---|---|---|---|---|---|---| +| B | +140 | +140 | +150 | +150 | +160 | +170 | +180 | +200 | +210 | +230 | +| C | +60 | +70 | +80 | +95 | +110 | +120 | +130 | +145 | +160 | +170 | +| D | +20 | +30 | +40 | +50 | +65 | +80 | +100 | +120 | +145 | +170 | +| E | +14 | +20 | +25 | +32 | +40 | +50 | +60 | +72 | +85 | +100 | +| F | +6 | +10 | +13 | +16 | +20 | +25 | +30 | +36 | +43 | +50 | +| G | +2 | +4 | +5 | +6 | +7 | +9 | +10 | +12 | +14 | +15 | +| **H** | **0** | **0** | **0** | **0** | **0** | **0** | **0** | **0** | **0** | **0** | +| JS | ±IT/2 | ±IT/2 | ±IT/2 | ±IT/2 | ±IT/2 | ±IT/2 | ±IT/2 | ±IT/2 | ±IT/2 | ±IT/2 | +| K (6–8) | 0 | +2 | +2 | +2 | +2 | +3 | +4 | +4 | +4 | +5 | +| M (6–8) | −2 | −4 | −6 | −7 | −8 | −9 | −11 | −13 | −15 | −17 | +| N (6–8) | −4 | −8 | −10 | −12 | −15 | −17 | −20 | −23 | −27 | −31 | +| P (6–7) | −6 | −12 | −15 | −18 | −22 | −26 | −32 | −37 | −43 | −50 | +| R | −10 | −15 | −19 | −23 | −28 | −34 | −41 | −51 | −63 | −77 | +| S | −14 | −19 | −23 | −28 | −35 | −43 | −53 | −71 | −92 | −100 | +| U | −18 | −23 | −28 | −33 | −41 | −53 | −66 | −90 | −109 | −130 | + +> **Note**: For H, ES = EI + IT = 0 + IT (e.g. H7/Ø50: ES = +25 µm) + +--- + +## Shaft Fundamental Deviations (lowercase) — Upper Deviation es (µm) + +| Shaft | 1–3 | 3–6 | 6–10 | 10–18 | 18–30 | 30–50 | 50–80 | 80–120 | 120–180 | 180–250 | +|---|---|---|---|---|---|---|---|---|---|---| +| b | −140 | −140 | −150 | −150 | −160 | −170 | −180 | −200 | −210 | −230 | +| c | −60 | −70 | −80 | −95 | −110 | −120 | −130 | −145 | −160 | −170 | +| d | −20 | −30 | −40 | −50 | −65 | −80 | −100 | −120 | −145 | −170 | +| e | −14 | −20 | −25 | −32 | −40 | −50 | −60 | −72 | −85 | −100 | +| f | −6 | −10 | −13 | −16 | −20 | −25 | −30 | −36 | −43 | −50 | +| g | −2 | −4 | −5 | −6 | −7 | −9 | −10 | −12 | −14 | −15 | +| **h** | **0** | **0** | **0** | **0** | **0** | **0** | **0** | **0** | **0** | **0** | +| js | ±IT/2 | ±IT/2 | ±IT/2 | ±IT/2 | ±IT/2 | ±IT/2 | ±IT/2 | ±IT/2 | ±IT/2 | ±IT/2 | +| k | 0 | +1 | +1 | +1 | +2 | +2 | +2 | +3 | +3 | +4 | +| m | +2 | +4 | +6 | +7 | +8 | +9 | +11 | +13 | +15 | +17 | +| n | +4 | +8 | +10 | +12 | +15 | +17 | +20 | +23 | +27 | +31 | +| p | +6 | +12 | +15 | +18 | +22 | +26 | +32 | +37 | +43 | +50 | +| r | +10 | +15 | +19 | +23 | +28 | +34 | +41 | +51 | +63 | +77 | +| s | +14 | +19 | +23 | +28 | +35 | +43 | +53 | +71 | +92 | +100 | +| u | +18 | +23 | +28 | +33 | +41 | +53 | +66 | +90 | +109 | +130 | + +> **Note**: For h, ei = es − IT = 0 − IT = −IT (e.g. h6/Ø50: ei = −16 µm) + +--- + +## Worked Examples + +### Example 1: Ø30 H7/g6 + +**Bore H7 (Ø30, range 18–30):** +- EI = 0 +- ES = EI + IT7 = 0 + 21 = +21 µm +- Bore: Ø30 +0.021/0 + +**Shaft g6 (Ø30, range 18–30):** +- es = −7 µm +- ei = es − IT6 = −7 − 13 = −20 µm +- Shaft: Ø30 −0.007/−0.020 + +**Clearances:** +- Max clearance = ES − ei = +21 − (−20) = **+41 µm** (0.041 mm) +- Min clearance = EI − es = 0 − (−7) = **+7 µm** (0.007 mm) +- → **Guaranteed clearance fit** ✓ (lubricated precision guide) + +### Example 2: Ø50 H7/p6 + +**Bore H7 (Ø50, range 30–50):** +- EI = 0, ES = +25 µm + +**Shaft p6 (Ø50, range 30–50):** +- es = +26 µm +- ei = +26 − 16 = +10 µm + +**Interferences:** +- Max interference = es − EI = +26 − 0 = **+26 µm** (0.026 mm) +- Min interference = ei − ES = +10 − 25 = **−15 µm** → clearance possible? + +⚠️ This is a **transition fit** at Ø50! For guaranteed interference on Ø50, p6 gives +ei − ES = 10 − 25 = −15: there is still a possibility of clearance. +For guaranteed interference on Ø50 use **r6 or s6**. + +→ Always verify numerical values for your specific diameter before finalising the drawing. diff --git a/tolleranze-iso/references/intake.md b/tolleranze-iso/references/intake.md new file mode 100644 index 0000000..8eac9cd --- /dev/null +++ b/tolleranze-iso/references/intake.md @@ -0,0 +1,60 @@ +# Information Intake Guide — ISO Tolerances + +## Required Information for a Reliable Recommendation + +### Level 1 — Critical (without these, the recommendation is unreliable) + +| Information | Why it is critical | How to obtain it | +|---|---|---| +| **Nominal diameter** | IT values in µm depend on the diameter range (IT7 = 15 µm on Ø10, 35 µm on Ø100) | Direct dimension, approximate measurement from drawing, or caliper reading if part exists | +| **Function** | Determines the fit type: a sliding guide and an interference hub have opposite requirements | Describe: guides, transmits torque, positions, seals, slides, rotates | +| **Removability** | H7/p6 cannot be disassembled without thermal equipment; H7/k6 needs a puller; H7/h6 by hand | Removable in routine maintenance / rarely / never | + +### Level 2 — Important (significantly improve the recommendation) + +| Information | Why it matters | How to obtain it | +|---|---|---| +| **Available manufacturing process** | No point recommending IT6 if the shop only has standard CNC lathes (IT8–IT9) | CNC turning / grinding / precision boring. Or: minimum guaranteed tolerance from the shop | +| **Loads** | Impact/shock loads require more interference to prevent creep on bearings and interference fits | Static / dynamic / impact / vibrations | +| **Operating environment** | Operating Δt reduces effective interference; corrosion changes minimum clearance | Operating temperature, lubricant, corrosive environment | +| **Materials** | Steel/aluminium → different thermal expansion coefficients → different interference | Shaft and bore materials | + +### Level 3 — Useful (refine the recommendation) + +| Information | Relevance | +|---|---| +| Rotational speed | For bearings and radial shaft seals | +| Transmitted torque | To verify interference sufficiency without Lamé calculation | +| Batch size | One-off vs series production: changes the tolerance/cost trade-off | +| Industry standard | Automotive, rail, aerospace may have additional standards that override ISO defaults | + +--- + +## How to Ask for Missing Information (expert engineer style) + +1. **Show what you understood** from the input or attached image +2. **Explain why the gap is blocking** that specific decision +3. **Propose a working hypothesis** to confirm: "If it must be removable, I'd go with H7/k6" +4. **Suggest how to get the data**: caliper measurement, assembly drawing, machine datasheet + +**Example:** +> From the drawing I can see a pin Ø≈40mm going into a bore on a support bracket. I can't +> tell whether it needs to **slide** axially or is **fixed** in position. This is critical: +> sliding → H7/g6 (clearance 0.01–0.05 mm), fixed → H7/k6 (light press fit). +> Can you confirm? An assembly drawing, even a hand sketch, would help a lot. + +--- + +## Image Analysis (screenshots, photos, sketches) + +Actively extract from the image: +- Dimensional values (even approximate) +- Component type (shaft, bore, seat, flange, bearing, keyway…) +- Existing annotations (tolerances, roughness, materials already noted) +- Assembly context (what mates with what) +- Assembly constraints (tool access, space for thermal equipment) + +Then: **summarise your interpretation** to confirm understanding, then ask only for critical gaps. +For non-scale drawings or sketches: accept approximate dimensions and state the result is +indicative until the exact dimension is confirmed. Recognisable standard components (bearing, +key, Seeger ring) → tolerances are often already defined by the manufacturer's catalogue. diff --git a/tolleranze-iso/references/it-grades.md b/tolleranze-iso/references/it-grades.md new file mode 100644 index 0000000..6ed577a --- /dev/null +++ b/tolleranze-iso/references/it-grades.md @@ -0,0 +1,127 @@ +# IT Tolerance Grades — Manufacturing Processes and Applications + +## IT Grade Values by Diameter Range (µm, ISO 286-1) + +| IT Grade | 1–3 mm | 3–6 mm | 6–10 mm | 10–18 mm | 18–30 mm | 30–50 mm | 50–80 mm | 80–120 mm | 120–180 mm | 180–250 mm | +|---|---|---|---|---|---|---|---|---|---|---| +| IT1 | 0.8 | 1 | 1 | 1.2 | 1.5 | 1.5 | 2 | 2.5 | 3.5 | 4.5 | +| IT2 | 1.2 | 1.5 | 1.5 | 2 | 2.5 | 2.5 | 3 | 4 | 5 | 7 | +| IT3 | 2 | 2.5 | 2.5 | 3 | 4 | 4 | 5 | 6 | 8 | 10 | +| IT4 | 3 | 4 | 4 | 5 | 6 | 7 | 8 | 10 | 12 | 14 | +| IT5 | 4 | 5 | 6 | 8 | 9 | 11 | 13 | 15 | 18 | 20 | +| IT6 | 6 | 8 | 9 | 11 | 13 | 16 | 19 | 22 | 25 | 29 | +| IT7 | 10 | 12 | 15 | 18 | 21 | 25 | 30 | 35 | 40 | 46 | +| IT8 | 14 | 18 | 22 | 27 | 33 | 39 | 46 | 54 | 63 | 72 | +| IT9 | 25 | 30 | 36 | 43 | 52 | 62 | 74 | 87 | 100 | 115 | +| IT10 | 40 | 48 | 58 | 70 | 84 | 100 | 120 | 140 | 160 | 185 | +| IT11 | 60 | 75 | 90 | 110 | 130 | 160 | 190 | 220 | 250 | 290 | +| IT12 | 100 | 120 | 150 | 180 | 210 | 250 | 300 | 350 | 400 | 460 | +| IT13 | 140 | 180 | 220 | 270 | 330 | 390 | 460 | 540 | 630 | 720 | +| IT14 | 250 | 300 | 360 | 430 | 520 | 620 | 740 | 870 | 1000 | 1150 | + +--- + +## Required Machining by IT Grade — Bores and Shafts + +Distinguishing bore vs. shaft is critical: achieving IT7 on a bore is significantly harder and +more expensive than on a shaft, because bores cannot be externally cylindrically ground. + +| IT Grade | Machining for BORES | Machining for SHAFTS | Difficulty | Relative cost | +|---|---|---|---|---| +| **IT3–IT4** | Precision honing, lapping | Ultra-precision cylindrical grinding, lapping | Extreme | ★★★★★ | +| **IT5** | Precision boring (single-blade), fine honing | Precision cylindrical grinding (Ra 0.2) | Very high | ★★★★☆ | +| **IT6** | Fine CNC boring (single-blade tool), internal grinding | Standard cylindrical grinding | High | ★★★☆☆ | +| **IT7** | CNC boring with adjustable insert, fine internal turning | Fine CNC turning (high Vc, low feed), grinding | Medium | ★★☆☆☆ | +| **IT8** | Standard drilling + reaming, internal turning | Standard CNC turning | Low | ★★☆☆☆ | +| **IT9** | Drilling with sharp bits, rough internal turning | Standard turning | Very low | ★☆☆☆☆ | +| **IT10–IT11** | Standard drilling, punching | Rough turning, milling | Minimal | ★☆☆☆☆ | +| **IT12–IT14** | Shell casting, stamping | Forging, sand casting | — | ★☆☆☆☆ | + +### Operational notes by IT grade + +#### IT5–IT6 (high precision) +- **Bores**: single-blade boring is the reference process. Requires rigid fixture, carbide tool, + correct coolant. Alternative: internal grinding (more expensive, requires dedicated machine). +- **Shafts**: between-centers or collet cylindrical grinding. Freshly dressed wheel, active + thermal compensation. +- **Minimum equipment**: rigid machining centre (≥15kN spindle), in-process gauging recommended. + +#### IT7 (standard reference grade) +- **Bores**: CNC boring with adjustable insert (e.g. Sandvik CoroBore, Kennametal). Standard + drilling alone does not reliably achieve IT7. Economic alternative: pilot drill + machine + reamer with calibrated reamer (IT7 guaranteed). +- **Shafts**: fine turning with wiper insert. On modern CNC, IT7 is routine. Watch out: long + chips or gummy materials (stainless steel, construction aluminium) tend to drift to IT8. +- **Inspection**: go/no-go plug gauge for bores, ring gauge or micrometer for shafts. + Measure after the part has cooled. + +#### IT8 (standard production) +- Achievable with standard turning and drilling — no special equipment. +- Suitable for keyways, non-critical sliding bushings, loose fits. + +#### IT9–IT11 (free tolerances) +- Standard for non-functional dimensions. Covered by ISO 2768-m (IT11) general tolerances. + +--- + +## Manufacturing Processes and Achievable IT Grades + +| Manufacturing process | Typical IT grades | Notes | +|---|---|---| +| Lapping / superfinishing | IT3 – IT5 | Extreme finishes, small parts | +| Precision honing | IT4 – IT6 | Cylinders, engine bore | +| Precision cylindrical grinding | IT4 – IT6 | High-precision shafts, spindles | +| Standard cylindrical grinding | IT5 – IT7 | Transmission shafts, bearing seats | +| Fine turning / diamond | IT5 – IT7 | Non-ferrous alloys, bronze, aluminium | +| Precision boring (single-blade) | IT5 – IT7 | High-precision bores | +| Internal grinding | IT5 – IT7 | Large diameter bores | +| CNC boring (adjustable insert) | IT6 – IT8 | Standard coupling bores | +| Fine CNC turning (wiper insert) | IT6 – IT8 | Standard functional shafts | +| EDM | IT5 – IT8 | Dies, complex forms | +| Standard CNC turning | IT7 – IT9 | Production standard | +| Standard reaming / drill + ream | IT8 – IT10 | Non-critical bores | +| CNC milling | IT8 – IT10 | Planes, profiles, slots | +| Standard drilling | IT10 – IT12 | Through holes, fasteners | +| Stamping / blanking | IT10 – IT12 | Sheet metal | +| Shell moulding | IT11 – IT14 | Precision castings | +| Sand casting | IT14 – IT16 | Raw castings | +| Forging | IT14 – IT16 | Semi-finished stock | + +--- + +## Grade Selection Guidelines + +### IT01 – IT4 +- Measuring instruments, gauge blocks, reference standards +- Ultra-precision bearings (class P4, P2) +- Practically unused in standard mechanical production +- Very high cost, requires controlled environments + +### IT5 – IT6 +- High-precision fits: machine tool spindles, precision shafts +- P6/P5 bearings +- Precision gears (ISO 1328 quality 5–7) +- High-pressure valve seats +- Grinding required + +### IT7 +- **The most widely used grade in industrial mechanics** +- Functional shaft-bore fits (H7/k6, H7/g6, H7/h6, etc.) +- Standard bearing housing bores (class P0/P6) +- Fine turning or CNC boring on modern machines + +### IT8 +- Less critical fits, larger clearances +- Keyways, key slots +- Non-critical sliding bushings +- Good-quality standard turning + +### IT9 – IT10 +- Non-coupled components +- Thicknesses, lengths, non-functional positions +- High-quality free dimensions (ISO 2768-f, -m) + +### IT11 – IT14 +- Standard free tolerances (ISO 2768-c, -v) +- General tolerances on drawings +- Non-functional distances, clearances, spaces diff --git a/tolleranze-iso/references/keys-keyways.md b/tolleranze-iso/references/keys-keyways.md new file mode 100644 index 0000000..7923e1c --- /dev/null +++ b/tolleranze-iso/references/keys-keyways.md @@ -0,0 +1,147 @@ +# Keys and Keyways (DIN 6885-1 / ISO 773) + +## Applicable Standards +- **ISO 773 / DIN 6885-1**: parallel keys (Woodruff, forms A/B/C) +- **ISO 3912 / DIN 6885-2**: square-section keys +- **DIN 6886**: taper keys +- For width fits: **ISO 286-1** (same IT basis) + +--- + +## Standard Key Dimensions (DIN 6885-1 / ISO 773) + +| Shaft Ø (mm) | b × h (mm) | t1 shaft (mm) | t2 hub (mm) | Radius r (mm) | +|---|---|---|---|---| +| 6 – 8 | 2 × 2 | 1.2 | 1.0 | 0.16–0.25 | +| 8 – 10 | 3 × 3 | 1.8 | 1.4 | 0.16–0.25 | +| 10 – 12 | 4 × 4 | 2.5 | 1.8 | 0.16–0.25 | +| 12 – 17 | 5 × 5 | 3.0 | 2.3 | 0.25–0.40 | +| 17 – 22 | 6 × 6 | 3.5 | 2.8 | 0.25–0.40 | +| 22 – 30 | 8 × 7 | 4.0 | 3.3 | 0.25–0.40 | +| 30 – 38 | 10 × 8 | 5.0 | 3.3 | 0.40–0.60 | +| 38 – 44 | 12 × 8 | 5.0 | 3.3 | 0.40–0.60 | +| 44 – 50 | 14 × 9 | 5.5 | 3.8 | 0.40–0.60 | +| 50 – 58 | 16 × 10 | 6.0 | 4.3 | 0.40–0.60 | +| 58 – 65 | 18 × 11 | 7.0 | 4.4 | 0.40–0.60 | +| 65 – 75 | 20 × 12 | 7.5 | 4.9 | 0.60–0.80 | +| 75 – 85 | 22 × 14 | 9.0 | 5.4 | 0.60–0.80 | +| 85 – 95 | 25 × 14 | 9.0 | 5.4 | 0.60–0.80 | +| 95 – 110 | 28 × 16 | 10.0 | 6.4 | 0.60–0.80 | +| 110 – 130 | 32 × 18 | 11.0 | 7.4 | 1.00–1.20 | +| 130 – 150 | 36 × 20 | 12.0 | 8.4 | 1.00–1.20 | +| 150 – 170 | 40 × 22 | 13.0 | 9.4 | 1.00–1.20 | +| 170 – 200 | 45 × 25 | 15.0 | 10.4 | 1.60–2.00 | +| 200 – 230 | 50 × 28 | 17.0 | 11.4 | 1.60–2.00 | + +> t1 = keyway depth on shaft (measured from outer diameter) +> t2 = keyway depth in hub (measured from inner diameter) + +--- + +## Fit Types for Keys (DIN 6885) + +| Type | Shaft keyway | Hub keyway | Key | Use | +|---|---|---|---|---| +| **Normal (N)** | **N9** | **JS9** | **h9** | Industrial standard — slight side clearance | +| **Sliding (S)** | **H9** | **D10** | **h9** | Hub must slide axially on shaft | +| **Tight (P)** | **P9** | **P9** | **h9** | No side clearance — precision applications | + +### When to use which type + +**Normal fit** (most common): minimal guaranteed clearance on both flanks. The key transmits +torque but may have slight clearance causing a knock at start/stop reversals. Acceptable for +most industrial gears, pulleys, couplings on transmission shafts. + +**Sliding fit**: the hub must slide axially (e.g. friction clutches, synchroniser assemblies, +linear actuators). Larger side clearance. Not suitable where angular precision is required. + +**Tight fit**: no side clearance. Torque transmitted without backlash, precise angular +positioning. Assembly requires press fit or heating. Used in machine tools, precision pumps, +high-quality gearboxes. + +--- + +## Deviations and Clearance Calculation (width b) + +### Example: 8×7 key on Ø25 shaft (range 22–30 mm), Normal fit + +**Shaft keyway N9** (width 8 mm, range 6–10 for width): +- IT9 for b=8 mm (range 6–10): IT9 = 36 µm +- N9 deviation: es = −10 µm (from fundamental deviations table) +- ei = es − IT9 = −10 − 36 = −46 µm +- Shaft keyway: 8 −0.010/−0.046 mm + +**Hub keyway JS9** (width 8 mm): +- IT9 = 36 µm → JS9 = ±18 µm +- Hub keyway: 8 ±0.018 mm → 8 +0.018/−0.018 mm + +**Key h9** (width 8 mm): +- IT9 = 36 µm → h9: es = 0, ei = −36 µm +- Key: 8 0/−0.036 mm + +**Resulting clearance per flank** (key vs shaft keyway): +- Max clearance = ES hub − ei key = (+18) − (−36) = **+54 µm** per flank +- Min clearance = EI hub − es key = (−18) − 0 = **−18 µm** (slight interference possible) +→ Normal fit: mostly small clearance, rarely slight interference + +--- + +## Drawing Dimensions + +### On the shaft drawing +- Keyway width: **b ± tolerance** (e.g. 8 N9 → 8 −0.010/−0.046) +- Depth: dimension from OD → **d − 2t1** (keyway root diameter) + - e.g. Ø30 with t1=4.0: dimension = 30 − 2×4.0 = 22.0 mm (+0.2/0) +- Symmetry (if required): positional tolerance relative to axis + +### On the hub / gear drawing +- Keyway width: **b ± tolerance** (e.g. 8 JS9 → 8 ±0.018) +- Depth: dimension from bore → **d + 2t2** + - e.g. bore Ø30 with t2=3.3: dimension = 30 + 2×3.3 = 36.6 mm (+0.2/0) +- Keyway flank roughness: **Ra 1.6 – 3.2 µm** (not a precision mating surface) +- Keyway root roughness: Ra 3.2 µm (not mating) + +--- + +## Torque Transmission Capacity Check + +The key is **not designed to carry torque alone** in interference fits. When combined with +H7/p6 or higher, torque is shared between interference friction and the key (redundancy). +When combined with H7/h6 or H7/k6, the key carries all the torque. + +### Simplified flank bearing stress check + +``` +σ = Mt / (A_flank × d/2) +A_flank = (h/2 − r) × L_eff [contact area on one flank] + +where: + Mt = torque to transmit [N·mm] + h = key height [mm] + L_eff = effective key length (total length − 2×head radius) [mm] + d = shaft diameter [mm] + +Allowable flank stress: + Construction steel: σ_allow = 100 – 150 N/mm² + Cast iron: σ_allow = 60 – 80 N/mm² + Aluminium: σ_allow = 50 – 70 N/mm² +``` + +### Quick check rule (construction steel C45/42CrMo4) +- Key holds without issues if engagement ratio L/d ≥ 1.2 +- If L/d < 0.8 or high torque + shock loading → double key at 180° or splined profile + +--- + +## Risks and Practical Notes + +- **Stress concentration**: the keyway reduces shaft fatigue strength by 25–40% at the + critical section. Do not position keyway at cross-section changes or peak bending locations. +- **Angular backlash**: even the Normal fit has clearance that produces a knock at every torque + reversal. On machines with frequent reversals (servo drives, presses) consider splined + profiles (ISO 4156) or pure interference fits. +- **Splined profile vs key**: consider when torque > 500 Nm on shafts Ø < 50 mm or when + torque is highly variable. ISO 4156 involute splines distribute load across all teeth, + eliminate backlash with preload, and reduce the stress concentration. +- **Woodruff key (semicircular)**: for tapered shafts or reduced sections (small motors, + small pumps). Tolerates angular misalignment. Do not use for high-torsion shafts. diff --git a/tolleranze-iso/references/surface-roughness.md b/tolleranze-iso/references/surface-roughness.md new file mode 100644 index 0000000..d0dedfd --- /dev/null +++ b/tolleranze-iso/references/surface-roughness.md @@ -0,0 +1,75 @@ +# IT Grades — Surface Roughness Ra Correlation + +## IT Grade to Ra Correlation Table + +Surface roughness must be consistent with the dimensional tolerance: a surface that is too +rough prevents achieving the specified tolerance, while over-specifying roughness is an +unnecessary cost. + +**Practical rule**: Ra ≤ T/4 (where T = tolerance band) for mating surfaces. +For non-mating surfaces: Ra ≤ T/2 is sufficient. + +| IT Grade | Max Ra recommended | Indicative Rz | Typical process | +|---|---|---|---| +| IT4 | Ra 0.1 µm | Rz 0.6 µm | Lapping, superfinishing | +| IT5 | Ra 0.2 µm | Rz 1.0 µm | Fine grinding, honing | +| IT6 | Ra 0.4 µm | Rz 2.0 µm | Standard grinding | +| IT7 | Ra 0.8 µm | Rz 4.0 µm | Grinding / fine turning | +| IT8 | Ra 1.6 µm | Rz 8.0 µm | Fine CNC turning | +| IT9 | Ra 3.2 µm | Rz 16 µm | Standard turning | +| IT10 | Ra 6.3 µm | Rz 25 µm | Milling / rough turning | +| IT11 | Ra 12.5 µm | Rz 50 µm | Economic machining | +| IT12–14 | Ra 25 µm + | Rz > 100 µm | Raw, unfinished | + +--- + +## Special Applications + +### Interference fit surfaces +For interference fits (p6, r6, s6, u6) on steels: +- Ra **≤ 0.8 µm** required (Ra 0.4 µm preferred) +- Roughness reduces effective interference by approx. 0.6 × (Rz shaft + Rz bore) +- When calculating interference, subtract the profile flattening allowance + +### Sliding surfaces (bushings, guides) +- Ra **0.4 – 0.8 µm** for lubricated sliding +- Ra **0.2 – 0.4 µm** for dry sliding or critical conditions +- Avoid Ra < 0.1 µm (adhesion risk — stick-slip) + +### Rolling bearing seats +- Shaft: Ra **0.4 – 0.8 µm** (per SKF/FAG: Ra ≤ 0.8 for standard classes) +- Housing bore: Ra **0.8 – 1.6 µm** +- P5/P4 precision classes: Ra ≤ 0.4 µm on shaft + +### Radial lip seals (shaft surface at seal contact) +- Ra **0.2 – 0.4 µm** +- Texture: preferably circumferential (not helical — a helical pattern pumps fluid outward) +- Minimum surface hardness: 55 HRC or surface treatment + +### Contact / reference planes +- Ra **0.8 – 1.6 µm** for functional contact +- Ra **3.2 µm** for non-critical bearing surfaces + +--- + +## Roughness Symbols (EN ISO 1302) + +``` +Base symbol: √ (machining process not specified) +Material removal: ⊻ (material removal by machining required) +No material removal: ⊙ (no material removal: honing, lapping, etc.) + +Indication: Ra value + e.g. Ra 0.8 / Ra 1.6 / Ra 3.2 +``` + +--- + +## Practical Notes for the Designer + +1. **Don't over-specify**: each step down in Ra increases cost by ~30–50% +2. **IT–Ra coherence**: specifying IT7 and Ra 6.3 is a contradiction +3. **State the parameter**: prefer Ra (arithmetic mean) for general use; + Rz (mean peak-valley height) is better for sliding and sealing surfaces +4. **Where not specified**: apply the general roughness note (e.g. "unless noted: Ra 3.2") +5. **Machining direction**: for rotary seals, specify circumferential vs. axial grinding direction diff --git a/tolleranze-iso/scripts/calculate_fit.py b/tolleranze-iso/scripts/calculate_fit.py new file mode 100644 index 0000000..264a475 --- /dev/null +++ b/tolleranze-iso/scripts/calculate_fit.py @@ -0,0 +1,275 @@ +#!/usr/bin/env python3 +""" +ISO 286-1 Fit Calculator +Usage: python calculate_fit.py +Examples: + python calculate_fit.py 50 H7/k6 + python calculate_fit.py 30 H8/f7 + python calculate_fit.py 80 H7/p6 +""" + +import json +import sys +import re +import os + +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) +IT_FILE = os.path.join(SCRIPT_DIR, "it_values.json") +DEV_FILE = os.path.join(SCRIPT_DIR, "deviations.json") + +RANGES = [ + (1, 3), (3, 6), (6, 10), (10, 18), (18, 30), (30, 50), + (50, 80), (80, 120), (120, 180), (180, 250), (250, 315), (315, 400), (400, 500) +] +RANGE_KEYS = [ + "1-3", "3-6", "6-10", "10-18", "18-30", "30-50", + "50-80", "80-120", "120-180", "180-250", "250-315", "315-400", "400-500" +] + + +def load_data(): + with open(IT_FILE) as f: + it_data = json.load(f) + with open(DEV_FILE) as f: + dev_data = json.load(f) + return it_data, dev_data + + +def get_range_index(diameter: float) -> int: + for i, (lo, hi) in enumerate(RANGES): + if lo < diameter <= hi: + return i + if diameter == 1: + return 0 + raise ValueError(f"Diameter {diameter} mm out of range (1–500 mm)") + + +def get_it_value(it_data: dict, grade: str, range_idx: int) -> float: + key = f"IT{grade}" + if key not in it_data["grades"]: + raise ValueError(f"Unknown IT grade: {grade}") + return it_data["grades"][key][range_idx] + + +def get_fundamental_deviation(dev_data: dict, letter: str, range_idx: int) -> float: + """Returns the fundamental deviation: es for shafts, EI for bores.""" + if letter in dev_data["shafts"]: + return dev_data["shafts"][letter][range_idx] + elif letter in dev_data["bores"]: + return dev_data["bores"][letter][range_idx] + else: + raise ValueError(f"Unknown deviation letter: '{letter}'") + + +def parse_fit(fit_str: str): + """ + Parse a fit string like 'H7/k6' or 'H7/JS6'. + Returns (bore_letter, bore_grade, shaft_letter, shaft_grade). + """ + m = re.fullmatch(r"([A-Za-z]+)(\d+)/([A-Za-z]+)(\d+)", fit_str.strip()) + if not m: + raise ValueError( + f"Invalid fit format: '{fit_str}'. Expected e.g. H7/k6 or H8/f7" + ) + bore_letter = m.group(1).upper() + bore_grade = m.group(2) + shaft_letter = m.group(3).lower() + shaft_grade = m.group(4) + return bore_letter, bore_grade, shaft_letter, shaft_grade + + +def classify_fit(c_max: float, c_min: float): + """Classify the fit type.""" + if c_min >= 0: + return "GUARANTEED CLEARANCE", "clearance" + elif c_max <= 0: + return "GUARANTEED INTERFERENCE", "interference" + else: + return "TRANSITION (clearance or interference)", "transition" + + +def fit_description(shaft_letter: str, shaft_grade: str) -> str: + """Functional hint for common shaft deviation letters.""" + descriptions = { + "a": "Very loose clearance (articulated linkages)", + "b": "Loose clearance", + "c": "Generous clearance (cranks, connecting rods)", + "d": "Wide functional clearance (long shafts, flanges)", + "e": "Generous clearance (misaligned joints)", + "f": "Standard functional clearance (guides, lubricated bushings)", + "g": "Precision clearance (precision guides, rotating pins)", + "h": "Nominal zero clearance (positioning, removable centering)", + "js": "Light transition (removable pins, loose keys)", + "k": "Transition — slight interference (bushings, keys)", + "m": "Transition — medium interference (sleeves, fixed bushings)", + "n": "Light interference (fixed bushings, rings)", + "p": "Interference (gears, fixed pulleys)", + "r": "Strong interference (high-torque hubs)", + "s": "Very strong interference (thermal assembly mandatory)", + "t": "High interference", + "u": "Maximum interference (bronze/cast-iron bushings)", + } + return descriptions.get(shaft_letter, "—") + + +def assembly_and_roughness(fit_class: str, bore_grade: str) -> str: + lines = [] + is_interference = fit_class == "interference" + is_transition = fit_class == "transition" + + if is_interference: + lines.append("ASSEMBLY METHOD:") + lines.append(" Thermal (heat hub to 80–300°C depending on interference level)") + lines.append(" or press fit if interference is small (< 0.020 mm)") + lines.append("") + lines.append("RECOMMENDED ROUGHNESS:") + lines.append(" Shaft: Ra ≤ 0.8 µm (Ra 0.4 preferred) — cylindrical grinding") + lines.append(" Bore: Ra ≤ 0.8 µm — fine boring or internal grinding") + lines.append(" Note: roughness reduces effective interference by ~0.6×(Rz_shaft + Rz_bore)") + + elif is_transition: + lines.append("ASSEMBLY METHOD:") + lines.append(" Light press fit — requires press or mallet") + lines.append(" Removable with puller — not by hand") + lines.append("") + lines.append("RECOMMENDED ROUGHNESS:") + lines.append(" Shaft: Ra ≤ 1.6 µm — fine CNC turning") + lines.append(" Bore: Ra ≤ 1.6 µm — CNC boring") + + else: + lines.append("ASSEMBLY METHOD:") + lines.append(" Hand-removable or with light tooling") + lines.append("") + g = int(bore_grade) + if g <= 6: + ra, proc_shaft, proc_bore = "0.8 µm", "fine turning / grinding", "CNC boring" + elif g <= 8: + ra, proc_shaft, proc_bore = "1.6 µm", "standard CNC turning", "standard boring" + else: + ra, proc_shaft, proc_bore = "3.2 µm", "standard turning", "drilling / reaming" + lines.append("RECOMMENDED ROUGHNESS:") + lines.append(f" Shaft: Ra ≤ {ra} — {proc_shaft}") + lines.append(f" Bore: Ra ≤ {ra} — {proc_bore}") + + return "\n".join(lines) + + +def compute_js_deviation(it_value: float) -> float: + return it_value / 2.0 + + +def calculate(diameter: float, fit_str: str, it_data: dict, dev_data: dict) -> str: + bore_l, bore_g, shaft_l, shaft_g = parse_fit(fit_str) + ri = get_range_index(diameter) + range_key = RANGE_KEYS[ri] + + it_bore = get_it_value(it_data, bore_g, ri) + it_shaft = get_it_value(it_data, shaft_g, ri) + + # Bore deviations + if bore_l == "H": + EI, ES = 0.0, it_bore + elif bore_l == "JS": + half = compute_js_deviation(it_bore) + EI, ES = -half, +half + else: + EI = get_fundamental_deviation(dev_data, bore_l, ri) + ES = EI + it_bore + + # Shaft deviations + if shaft_l == "h": + es, ei = 0.0, -it_shaft + elif shaft_l == "js": + half = compute_js_deviation(it_shaft) + es, ei = +half, -half + else: + es = get_fundamental_deviation(dev_data, shaft_l, ri) + ei = es - it_shaft + + c_max = ES - ei # positive = clearance + c_min = EI - es # negative = interference + + fit_label, fit_class = classify_fit(c_max, c_min) + + sep = "═" * 62 + thin = "─" * 62 + + lines = [ + "", + sep, + " FIT DATA SHEET — ISO 286-1", + sep, + f" Nominal diameter : Ø{diameter} mm", + f" Diameter range : {range_key} mm", + f" Fit : {bore_l}{bore_g}/{shaft_l}{shaft_g}", + f" Type : {fit_label}", + thin, + " BORE DEVIATIONS", + f" Letter/grade : {bore_l}{bore_g} (IT{bore_g} = {it_bore:.1f} µm)", + f" EI (lower) : {EI:+.1f} µm", + f" ES (upper) : {ES:+.1f} µm", + f" Drawing dim. : Ø{diameter} {EI/1000:+.4f}/{ES/1000:+.4f} mm", + thin, + " SHAFT DEVIATIONS", + f" Letter/grade : {shaft_l}{shaft_g} (IT{shaft_g} = {it_shaft:.1f} µm)", + f" es (upper) : {es:+.1f} µm", + f" ei (lower) : {ei:+.1f} µm", + f" Drawing dim. : Ø{diameter} {es/1000:+.4f}/{ei/1000:+.4f} mm", + thin, + ] + + if fit_class == "clearance": + lines += [ + " RESULTING CLEARANCE", + f" Max clearance : {c_max:+.1f} µm ({c_max/1000:+.4f} mm)", + f" Min clearance : {c_min:+.1f} µm ({c_min/1000:+.4f} mm)", + ] + elif fit_class == "interference": + i_max, i_min = abs(c_min), abs(c_max) if c_max < 0 else 0 + lines += [ + " RESULTING INTERFERENCE", + f" Max interference: {i_max:+.1f} µm ({i_max/1000:+.4f} mm)", + f" Min interference: {i_min:+.1f} µm ({i_min/1000:+.4f} mm)", + ] + else: + lines += [ + " CLEARANCE / INTERFERENCE (transition fit)", + f" Max value : {c_max:+.1f} µm ({c_max/1000:+.4f} mm) {'→ clearance' if c_max > 0 else '→ interference'}", + f" Min value : {c_min:+.1f} µm ({c_min/1000:+.4f} mm) {'→ clearance' if c_min > 0 else '→ interference'}", + ] + + lines += [ + thin, + " TYPICAL FUNCTION", + f" {fit_description(shaft_l, shaft_g)}", + thin, + assembly_and_roughness(fit_class, bore_g), + sep, + "", + ] + + return "\n".join(lines) + + +def main(): + if len(sys.argv) < 3: + print(__doc__) + print("Examples:") + print(" python calculate_fit.py 50 H7/k6") + print(" python calculate_fit.py 30 H8/f7") + print(" python calculate_fit.py 80 H7/p6") + sys.exit(1) + + try: + diameter = float(sys.argv[1]) + fit_str = sys.argv[2] + it_data, dev_data = load_data() + result = calculate(diameter, fit_str, it_data, dev_data) + print(result) + except (ValueError, KeyError) as e: + print(f"Error: {e}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/tolleranze-iso/scripts/deviations.json b/tolleranze-iso/scripts/deviations.json new file mode 100644 index 0000000..6316c6b --- /dev/null +++ b/tolleranze-iso/scripts/deviations.json @@ -0,0 +1,744 @@ +{ + "_note": "Fundamental deviations ISO 286-1 in micrometres (\u00b5m). Shafts = upper deviation es. Bores = lower deviation EI. JS/js = \u00b1IT/2 (not tabulated, calculated at runtime).", + "ranges": [ + "1-3", + "3-6", + "6-10", + "10-18", + "18-30", + "30-50", + "50-80", + "80-120", + "120-180", + "180-250", + "250-315", + "315-400", + "400-500" + ], + "_shafts_note": "es = upper deviation in \u00b5m (negative = below zero). ei = es - IT", + "shafts": { + "a": [ + -270, + -270, + -280, + -290, + -300, + -310, + -320, + -340, + -360, + -380, + -410, + -440, + -480 + ], + "b": [ + -140, + -140, + -150, + -150, + -160, + -170, + -180, + -200, + -210, + -230, + -240, + -260, + -280 + ], + "c": [ + -60, + -70, + -80, + -95, + -110, + -120, + -130, + -145, + -160, + -170, + -180, + -190, + -200 + ], + "cd": [ + -34, + -46, + -56, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "d": [ + -20, + -30, + -40, + -50, + -65, + -80, + -100, + -120, + -145, + -170, + -190, + -210, + -230 + ], + "e": [ + -14, + -20, + -25, + -32, + -40, + -50, + -60, + -72, + -85, + -100, + -110, + -125, + -135 + ], + "ef": [ + -10, + -14, + -18, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "f": [ + -6, + -10, + -13, + -16, + -20, + -25, + -30, + -36, + -43, + -50, + -56, + -62, + -68 + ], + "fg": [ + -4, + -6, + -8, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "g": [ + -2, + -4, + -5, + -6, + -7, + -9, + -10, + -12, + -14, + -15, + -17, + -18, + -20 + ], + "h": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "k": [ + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 3, + 3, + 4, + 4, + 4, + 5 + ], + "m": [ + 2, + 4, + 6, + 7, + 8, + 9, + 11, + 13, + 15, + 17, + 20, + 21, + 23 + ], + "n": [ + 4, + 8, + 10, + 12, + 15, + 17, + 20, + 23, + 27, + 31, + 34, + 37, + 40 + ], + "p": [ + 6, + 12, + 15, + 18, + 22, + 26, + 32, + 37, + 43, + 50, + 56, + 62, + 68 + ], + "r": [ + 10, + 15, + 19, + 23, + 28, + 34, + 41, + 51, + 63, + 77, + 98, + 98, + 108 + ], + "s": [ + 14, + 19, + 23, + 28, + 35, + 43, + 53, + 71, + 92, + 100, + 108, + 114, + 126 + ], + "t": [ + 0, + 0, + 23, + 28, + 35, + 43, + 53, + 71, + 92, + 100, + 108, + 114, + 126 + ], + "u": [ + 18, + 23, + 28, + 33, + 41, + 53, + 66, + 90, + 109, + 130, + 150, + 171, + 190 + ], + "v": [ + 0, + 0, + 0, + 0, + 47, + 59, + 75, + 102, + 122, + 150, + 172, + 202, + 228 + ], + "x": [ + 20, + 28, + 34, + 40, + 50, + 64, + 80, + 108, + 146, + 172, + 210, + 248, + 280 + ], + "y": [ + 0, + 0, + 0, + 50, + 63, + 80, + 100, + 134, + 180, + 214, + 258, + 310, + 355 + ], + "z": [ + 26, + 35, + 42, + 50, + 63, + 80, + 100, + 134, + 180, + 214, + 258, + 310, + 355 + ], + "za": [ + 32, + 42, + 52, + 64, + 77, + 98, + 120, + 160, + 210, + 258, + 310, + 365, + 415 + ], + "zb": [ + 40, + 50, + 67, + 90, + 108, + 136, + 168, + 218, + 284, + 340, + 415, + 490, + 560 + ], + "zc": [ + 60, + 80, + 97, + 130, + 150, + 188, + 236, + 308, + 390, + 470, + 575, + 660, + 740 + ] + }, + "_bores_note": "EI = lower deviation in \u00b5m. ES = EI + IT. For H: EI=0 always.", + "bores": { + "A": [ + 270, + 270, + 280, + 290, + 300, + 310, + 320, + 340, + 360, + 380, + 410, + 440, + 480 + ], + "B": [ + 140, + 140, + 150, + 150, + 160, + 170, + 180, + 200, + 210, + 230, + 240, + 260, + 280 + ], + "C": [ + 60, + 70, + 80, + 95, + 110, + 120, + 130, + 145, + 160, + 170, + 180, + 190, + 200 + ], + "D": [ + 20, + 30, + 40, + 50, + 65, + 80, + 100, + 120, + 145, + 170, + 190, + 210, + 230 + ], + "E": [ + 14, + 20, + 25, + 32, + 40, + 50, + 60, + 72, + 85, + 100, + 110, + 125, + 135 + ], + "F": [ + 6, + 10, + 13, + 16, + 20, + 25, + 30, + 36, + 43, + 50, + 56, + 62, + 68 + ], + "G": [ + 2, + 4, + 5, + 6, + 7, + 9, + 10, + 12, + 14, + 15, + 17, + 18, + 20 + ], + "H": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "K": [ + 0, + 2, + 2, + 2, + 2, + 3, + 4, + 4, + 4, + 5, + 5, + 5, + 6 + ], + "M": [ + -2, + -4, + -6, + -7, + -8, + -9, + -11, + -13, + -15, + -17, + -20, + -21, + -23 + ], + "N": [ + -4, + -8, + -10, + -12, + -15, + -17, + -20, + -23, + -27, + -31, + -34, + -37, + -40 + ], + "P": [ + -6, + -12, + -15, + -18, + -22, + -26, + -32, + -37, + -43, + -50, + -56, + -62, + -68 + ], + "R": [ + -10, + -15, + -19, + -23, + -28, + -34, + -41, + -51, + -63, + -77, + -98, + -98, + -108 + ], + "S": [ + -14, + -19, + -23, + -28, + -35, + -43, + -53, + -71, + -92, + -100, + -108, + -114, + -126 + ], + "T": [ + 0, + 0, + -23, + -28, + -35, + -43, + -53, + -71, + -92, + -100, + -108, + -114, + -126 + ], + "U": [ + -18, + -23, + -28, + -33, + -41, + -53, + -66, + -90, + -109, + -130, + -150, + -171, + -190 + ], + "V": [ + 0, + 0, + 0, + 0, + -47, + -59, + -75, + -102, + -122, + -150, + -172, + -202, + -228 + ], + "X": [ + -20, + -28, + -34, + -40, + -50, + -64, + -80, + -108, + -146, + -172, + -210, + -248, + -280 + ], + "Z": [ + -26, + -35, + -42, + -50, + -63, + -80, + -100, + -134, + -180, + -214, + -258, + -310, + -355 + ], + "ZA": [ + -32, + -42, + -52, + -64, + -77, + -98, + -120, + -160, + -210, + -258, + -310, + -365, + -415 + ], + "ZB": [ + -40, + -50, + -67, + -90, + -108, + -136, + -168, + -218, + -284, + -340, + -415, + -490, + -560 + ], + "ZC": [ + -60, + -80, + -97, + -130, + -150, + -188, + -236, + -308, + -390, + -470, + -575, + -660, + -740 + ] + } +} \ No newline at end of file diff --git a/tolleranze-iso/scripts/it_values.json b/tolleranze-iso/scripts/it_values.json new file mode 100644 index 0000000..748007f --- /dev/null +++ b/tolleranze-iso/scripts/it_values.json @@ -0,0 +1,22 @@ +{ + "_note": "Valori tolleranza IT in micrometri (µm) per campo di diametro — ISO 286-1 Tabella 1", + "ranges": ["1-3", "3-6", "6-10", "10-18", "18-30", "30-50", "50-80", "80-120", "120-180", "180-250", "250-315", "315-400", "400-500"], + "grades": { + "IT1": [0.8, 1, 1, 1.2, 1.5, 1.5, 2, 2.5, 3.5, 4.5, 6, 7, 8 ], + "IT2": [1.2, 1.5, 1.5, 2, 2.5, 2.5, 3, 4, 5, 7, 8, 9, 10 ], + "IT3": [2, 2.5, 2.5, 3, 4, 4, 5, 6, 8, 10, 12, 13, 15 ], + "IT4": [3, 4, 4, 5, 6, 7, 8, 10, 12, 14, 16, 18, 20 ], + "IT5": [4, 5, 6, 8, 9, 11, 13, 15, 18, 20, 23, 25, 27 ], + "IT6": [6, 8, 9, 11, 13, 16, 19, 22, 25, 29, 32, 36, 40 ], + "IT7": [10, 12, 15, 18, 21, 25, 30, 35, 40, 46, 52, 57, 63 ], + "IT8": [14, 18, 22, 27, 33, 39, 46, 54, 63, 72, 81, 89, 97 ], + "IT9": [25, 30, 36, 43, 52, 62, 74, 87, 100, 115, 130, 140, 155], + "IT10": [40, 48, 58, 70, 84, 100, 120, 140, 160, 185, 210, 230, 250], + "IT11": [60, 75, 90, 110, 130, 160, 190, 220, 250, 290, 320, 360, 400], + "IT12": [100, 120, 150, 180, 210, 250, 300, 350, 400, 460, 520, 570, 630], + "IT13": [140, 180, 220, 270, 330, 390, 460, 540, 630, 720, 810, 890, 970], + "IT14": [250, 300, 360, 430, 520, 620, 740, 870, 1000,1150,1300,1400,1550], + "IT15": [400, 480, 580, 700, 840, 1000,1200,1400,1600,1850,2100,2300,2500], + "IT16": [600, 750, 900, 1100,1300,1600,1900,2200,2500,2900,3200,3600,4000] + } +}