{"id":100265,"date":"2026-02-15T20:30:31","date_gmt":"2026-02-15T20:30:31","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100265"},"modified":"2026-03-05T15:38:45","modified_gmt":"2026-03-05T15:38:45","slug":"tolerance-stack-calculator","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/bn\/calculators\/tolerance-stack-calculator\/","title":{"rendered":"\u099f\u09b2\u09be\u09b0\u09c7\u09a8\u09cd\u09b8 \u09b8\u09cd\u099f\u09cd\u09af\u09be\u0995 \u09ac\u09bf\u09b6\u09cd\u09b2\u09c7\u09b7\u09a3 \u0995\u09cd\u09af\u09be\u09b2\u0995\u09c1\u09b2\u09c7\u099f\u09b0 | \u09ac\u09bf\u09a8\u09be\u09ae\u09c2\u09b2\u09cd\u09af\u09c7 \u0985\u09a8\u09b2\u09be\u0987\u09a8 \u09b8\u09b0\u099e\u09cd\u099c\u09be\u09ae"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Tolerance Stack Analysis Calculator\",\"alternateName\":[\"Stack-Up Calculator\",\"RSS Tolerance Calculator\"],\"description\":\"Free online tolerance stack-up analysis. Calculate worst-case and RSS (statistical) total tolerance for up to 8 dimensions.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/tolerance-stack-calculator\/\",\"applicationCategory\":\"Engineering Calculator\",\"operatingSystem\":\"Any (Web Browser)\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"EUR\"},\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"datePublished\":\"2024-01-01\",\"dateModified\":\"2025-06-01\",\"inLanguage\":\"en\",\"isAccessibleForFree\":true,\"featureList\":[\"Up to 8 dimensions\",\"Worst-case analysis\",\"RSS statistical analysis\",\"Bilateral tolerances\",\"Auto-calculation\"],\"keywords\":\"tolerance stack, RSS, worst case, stack-up analysis\"}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[\n{\"@type\":\"Question\",\"name\":\"What is tolerance stack-up analysis?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Tolerance stack-up analysis determines the cumulative effect of individual part tolerances on an assembly's overall dimension. It helps engineers ensure that assembled parts will fit and function correctly.\"}},\n{\"@type\":\"Question\",\"name\":\"What is the difference between worst-case and RSS?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Worst-case assumes all tolerances are at their extreme limits simultaneously (100% parts pass). RSS (Root Sum of Squares) is statistical and assumes a normal distribution \u2014 it gives a smaller total tolerance (typically 99.73% confidence at 3\u03c3) but is more realistic for production.\"}},\n{\"@type\":\"Question\",\"name\":\"When should I use worst-case vs RSS?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Use worst-case for safety-critical applications, small production runs, or when 100% interchangeability is required. Use RSS for high-volume production where statistical methods are valid and some small rejection rate is acceptable.\"}},\n{\"@type\":\"Question\",\"name\":\"What does bilateral tolerance mean?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Bilateral tolerance is expressed as a nominal dimension \u00b1 tolerance (e.g., 50 \u00b1 0.1 mm). The tolerance is distributed equally on both sides of the nominal value. Unilateral tolerance goes in only one direction.\"}},\n{\"@type\":\"Question\",\"name\":\"How many dimensions can I stack?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"This calculator supports up to 8 dimensions in a linear stack. For more complex 2D\/3D tolerance analysis, specialized software (like 3DCS or CETOL) is typically used.\"}}\n]}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[\n{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/vibromera.eu\/\"},\n{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculators\",\"item\":\"https:\/\/vibromera.eu\/calculators\/\"},\n{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Tolerance Stack Calculator\",\"item\":\"https:\/\/vibromera.eu\/calculators\/tolerance-stack-calculator\/\"}\n]}\n<\/script>\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&#038;family=JetBrains+Mono:wght@400;500;600&#038;family=Fraunces:opsz,wght@9..144,700;9..144,800&#038;display=swap\" rel=\"stylesheet\">\n\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.css\">\n\n<style>\n:root{--vc-bg:#f4f1ec;--vc-surface:#fff;--vc-surface-alt:#f8f6f2;--vc-ink:#1a1a1a;--vc-ink-secondary:#5a5650;--vc-ink-muted:#8a857e;--vc-accent:#c85a2a;--vc-accent-hover:#b04d22;--vc-accent-light:#fdf0ea;--vc-blue:#2a5c8c;--vc-blue-light:#eaf1f8;--vc-green:#2a7a4b;--vc-green-light:#eaf8ef;--vc-yellow:#a67c00;--vc-yellow-light:#fef9e8;--vc-red:#b91c1c;--vc-red-light:#fef2f2;--vc-border:#d9d4cc;--vc-border-light:#e8e4dd;--vc-shadow:0 1px 3px rgba(26,26,26,.06),0 4px 12px rgba(26,26,26,.04);--vc-radius:8px;--vc-radius-lg:12px;--vc-font:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--vc-mono:'JetBrains Mono',Consolas,Monaco,monospace;--vc-display:'Fraunces',Georgia,serif}\n.vc-calculator{font-family:var(--vc-font);font-size:15px;line-height:1.65;color:var(--vc-ink);max-width:960px;margin:0 auto;padding:20px 16px 40px;-webkit-font-smoothing:antialiased}.vc-calculator *,.vc-calculator *::before,.vc-calculator *::after{box-sizing:border-box}\n.vc-header{text-align:center;padding:48px 24px 40px;position:relative}.vc-header::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:80px;height:3px;background:var(--vc-accent);border-radius:2px}.vc-header-eyebrow{font-family:var(--vc-mono);font-size:11px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--vc-accent);margin:0 0 12px}.vc-header-title{font-family:var(--vc-display);font-size:clamp(24px,4vw,36px);font-weight:800;line-height:1.15;color:var(--vc-ink);margin:0 0 16px;letter-spacing:-.02em}.vc-header-subtitle{font-size:15px;color:var(--vc-ink-secondary);margin:0 auto 20px;max-width:600px}\n.vc-badges{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:center}.vc-badge{font-family:var(--vc-mono);font-size:11px;font-weight:500;padding:4px 10px;border-radius:4px;background:var(--vc-surface);border:1px solid var(--vc-border);color:var(--vc-ink-secondary)}\n.vc-card{background:var(--vc-surface);border:1px solid var(--vc-border);border-radius:var(--vc-radius-lg);box-shadow:var(--vc-shadow);overflow:hidden;margin-top:32px}\n.vc-form{padding:24px}\n.vc-label{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--vc-ink-secondary);margin-bottom:6px}.vc-label-hint{font-weight:400;text-transform:none;letter-spacing:0;color:var(--vc-ink-muted);font-size:11px}\n.vc-select,.vc-input{width:100%;padding:10px 12px;border:1.5px solid var(--vc-border);border-radius:6px;font-family:var(--vc-font);font-size:14px;color:var(--vc-ink);background:var(--vc-surface);transition:border-color .15s,box-shadow .15s}.vc-select:focus,.vc-input:focus{outline:none;border-color:var(--vc-accent);box-shadow:0 0 0 3px rgba(200,90,42,.12)}.vc-select:hover,.vc-input:hover{border-color:var(--vc-ink-muted)}\n.vc-stack-row{display:grid;grid-template-columns:40px 1fr 1fr 60px;gap:8px;align-items:center;margin-bottom:8px;font-size:13px}\n.vc-stack-row .vc-input{padding:8px 10px;font-size:13px}\n.vc-stack-header{font-family:var(--vc-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--vc-ink-muted)}\n.vc-dir-btn{padding:6px 10px;border:1px solid var(--vc-border);border-radius:4px;background:var(--vc-surface-alt);cursor:pointer;font-size:14px;font-weight:700;color:var(--vc-ink);text-align:center;transition:all .15s}.vc-dir-btn:hover{border-color:var(--vc-accent)}\n.vc-dir-btn.positive{color:var(--vc-green);border-color:var(--vc-green)}.vc-dir-btn.negative{color:var(--vc-red);border-color:var(--vc-red)}\n.vc-presets{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:18px;border-top:1px solid var(--vc-border-light)}.vc-presets-label{font-family:var(--vc-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--vc-ink-muted);width:100%;margin-bottom:2px}.vc-preset-btn{padding:5px 12px;font-family:var(--vc-font);font-size:12px;font-weight:500;border:1px solid var(--vc-border);border-radius:6px;background:var(--vc-surface-alt);color:var(--vc-ink-secondary);cursor:pointer;transition:all .15s}.vc-preset-btn:hover{border-color:var(--vc-accent);color:var(--vc-accent);background:var(--vc-accent-light)}\n.vc-results{border-top:1px solid var(--vc-border-light);background:var(--vc-surface-alt);padding:0;max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.4,0,.2,1),padding .3s}.vc-results.vc-visible{max-height:2000px;padding:24px}\n.vc-results-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.vc-results-title{font-family:var(--vc-display);font-size:20px;font-weight:700;color:var(--vc-ink);margin:0}\n.vc-copy-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border:1px solid var(--vc-border);border-radius:6px;background:var(--vc-surface);font-family:var(--vc-font);font-size:12px;font-weight:500;color:var(--vc-ink-secondary);cursor:pointer;transition:all .15s}.vc-copy-btn:hover{border-color:var(--vc-accent);color:var(--vc-accent)}.vc-copy-btn.vc-copied{background:var(--vc-green-light);border-color:var(--vc-green);color:var(--vc-green)}\n.vc-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}@media(max-width:500px){.vc-result-grid{grid-template-columns:1fr}}.vc-rcard{background:var(--vc-surface);border:1px solid var(--vc-border-light);border-radius:var(--vc-radius);padding:16px;transition:transform .2s}.vc-rcard:hover{transform:translateY(-1px)}.vc-rcard-primary{border-color:var(--vc-accent);border-width:2px;background:linear-gradient(135deg,#fdf6f2,var(--vc-surface));grid-column:1\/-1}\n.vc-rcard-label{font-family:var(--vc-mono);font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--vc-ink-muted);margin-bottom:4px}.vc-rcard-value{font-family:var(--vc-mono);font-size:22px;font-weight:600;color:var(--vc-ink);line-height:1.2}.vc-rcard-primary .vc-rcard-value{font-size:30px;color:var(--vc-accent)}.vc-rcard-unit{font-size:14px;font-weight:400;color:var(--vc-ink-secondary)}\n.vc-section{margin-top:24px;border:1px solid var(--vc-border);border-radius:var(--vc-radius-lg);background:var(--vc-surface);box-shadow:var(--vc-shadow);overflow:hidden}.vc-section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border:none;background:transparent;cursor:pointer;font-family:var(--vc-font);text-align:left;transition:background .15s}.vc-section-toggle:hover{background:var(--vc-surface-alt)}.vc-section-toggle-text{display:flex;align-items:center;gap:10px}.vc-section-icon{font-size:20px;line-height:1}.vc-section-title{font-family:var(--vc-display);font-size:18px;font-weight:700;color:var(--vc-ink);margin:0}.vc-section-chevron{width:20px;height:20px;color:var(--vc-ink-muted);transition:transform .3s;flex-shrink:0}.vc-section.vc-open .vc-section-chevron{transform:rotate(180deg)}.vc-section-body{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4,0,.2,1)}.vc-section.vc-open .vc-section-body{max-height:20000px}.vc-section-inner{padding:0 24px 24px;border-top:1px solid var(--vc-border-light)}\n.vc-theory h3{font-family:var(--vc-display);font-size:17px;font-weight:700;color:var(--vc-ink);margin:28px 0 10px}.vc-theory h3:first-child{margin-top:20px}.vc-theory p{font-size:14px;color:var(--vc-ink-secondary);margin:0 0 10px}\n.vc-formula-box{background:var(--vc-surface-alt);border:2px solid var(--vc-border);border-radius:6px;padding:14px 20px;font-family:var(--vc-mono);font-size:16px;font-weight:500;text-align:center;margin:14px 0;color:var(--vc-ink);overflow-x:auto}\n.vc-info-box{background:var(--vc-blue-light);border-left:3px solid var(--vc-blue);padding:14px 16px;border-radius:0 6px 6px 0;margin:14px 0}.vc-info-box p{margin:0;font-size:14px;color:var(--vc-ink-secondary)}\n.vc-faq-list{display:flex;flex-direction:column;gap:8px;margin-top:20px}.vc-faq-item{border:1px solid var(--vc-border-light);border-radius:6px;overflow:hidden}.vc-faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:none;background:var(--vc-surface-alt);cursor:pointer;font-family:var(--vc-font);font-size:15px;font-weight:600;color:var(--vc-ink);text-align:left;transition:background .15s}.vc-faq-q:hover{background:#ede9e3}.vc-faq-chevron{width:16px;height:16px;color:var(--vc-ink-muted);flex-shrink:0;transition:transform .25s}.vc-faq-item.vc-open .vc-faq-chevron{transform:rotate(180deg)}.vc-faq-a{max-height:0;overflow:hidden;transition:max-height .35s}.vc-faq-item.vc-open .vc-faq-a{max-height:1200px}.vc-faq-a-inner{padding:14px 16px;border-top:1px solid var(--vc-border-light);font-size:14px;color:var(--vc-ink-secondary)}.vc-faq-a-inner p{margin:0 0 8px}.vc-faq-a-inner p:last-child{margin-bottom:0}\n.vc-related{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.vc-related-link{display:inline-block;padding:8px 16px;font-family:var(--vc-font);font-size:13px;font-weight:600;background:var(--vc-surface-alt);color:var(--vc-ink-secondary);border:1px solid var(--vc-border);border-radius:var(--vc-radius);text-decoration:none;transition:all .15s}.vc-related-link:hover{border-color:var(--vc-accent);color:var(--vc-accent);background:var(--vc-accent-light)}\n.vc-promo{margin-top:24px;padding:20px;background:linear-gradient(135deg,var(--vc-accent-light),var(--vc-surface));border:1px solid var(--vc-border);border-radius:var(--vc-radius-lg);display:flex;align-items:center;gap:16px}.vc-promo-text{flex:1;font-size:14px;color:var(--vc-ink-secondary)}.vc-promo-text strong{color:var(--vc-ink)}.vc-promo-link{padding:8px 20px;font-size:13px;font-weight:700;color:#fff;background:var(--vc-accent);border-radius:var(--vc-radius);text-decoration:none;white-space:nowrap;transition:background .15s}.vc-promo-link:hover{background:var(--vc-accent-hover)}\n.vc-footer{text-align:center;padding:32px 16px;font-size:13px;color:var(--vc-ink-muted)}.vc-footer a{color:var(--vc-accent);text-decoration:none}.vc-footer a:hover{text-decoration:underline}.vc-footer-links{margin-top:8px;font-size:12px}.vc-footer-links a{margin:0 8px}\n@media(max-width:600px){.vc-stack-row{grid-template-columns:30px 1fr 1fr 50px}}\n@media print{.vc-section-body{max-height:none!important}.vc-faq-a{max-height:none!important}.vc-results{max-height:none!important;padding:24px!important}.vc-copy-btn,.vc-section-chevron,.vc-faq-chevron,.vc-presets,.vc-promo{display:none!important}}\n<\/style>\n\n<div class=\"vc-calculator\" id=\"vc-tol-stack\">\n\n<header class=\"vc-header\">\n    <p class=\"vc-header-eyebrow\">Free Engineering Tool<\/p>\n    <h1 class=\"vc-header-title\">Tolerance Stack Analysis Calculator<\/h1>\n    <p class=\"vc-header-subtitle\">Enter up to 8 dimensions with bilateral tolerances. Calculate worst-case and RSS (statistical) total tolerance for your assembly.<\/p>\n    <div class=\"vc-badges\"><span class=\"vc-badge\">Worst-Case<\/span><span class=\"vc-badge\">RSS (3\u03c3)<\/span><span class=\"vc-badge\">Up to 8 Dims<\/span><\/div>\n<\/header>\n\n<div class=\"vc-card\">\n    <form class=\"vc-form\" id=\"vc-form\" autocomplete=\"off\">\n        <div class=\"vc-stack-row vc-stack-header\">\n            <span>#<\/span><span>Nominal (mm)<\/span><span>\u00b1 Tolerance (mm)<\/span><span>Dir<\/span>\n        <\/div>\n        <div id=\"vc-rows\"><\/div>\n        <div class=\"vc-presets\">\n            <div class=\"vc-presets-label\">Quick presets<\/div>\n            <button type=\"button\" class=\"vc-preset-btn\" data-preset=\"3part\">3-Part shaft assembly<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-preset=\"5part\">5-Part housing stack<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-preset=\"gap\">Gap analysis (4 parts)<\/button>\n        <\/div>\n    <\/form>\n\n    <div class=\"vc-results\" id=\"vc-results\">\n        <div class=\"vc-results-head\">\n            <h2 class=\"vc-results-title\">Stack-Up Results<\/h2>\n            <button type=\"button\" class=\"vc-copy-btn\" id=\"vc-copy-btn\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"\/><\/svg> Copy<\/button>\n        <\/div>\n        <div class=\"vc-result-grid\">\n            <div class=\"vc-rcard vc-rcard-primary\">\n                <div class=\"vc-rcard-label\">Nominal Assembly Dimension<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-nom\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Worst-Case Tolerance<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-wc\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">RSS Tolerance (3\u03c3)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-rss\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">WC Range<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-wcrange\" style=\"font-size:16px\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">RSS Range (99.73%)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-rssrange\" style=\"font-size:16px\">\u2014<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"vc-section vc-open\" id=\"vc-sec-theory\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"true\"><span class=\"vc-section-toggle-text\"><span class=\"vc-section-icon\">\ud83d\udcd8<\/span><span class=\"vc-section-title\">Theory &amp; Formulas<\/span><\/span><svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner vc-theory\">\n            <h3>Worst-Case Method<\/h3>\n            <p>The worst-case method assumes all dimensions are at their extreme limits simultaneously:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-1\"><\/div>\n            <h3>RSS (Root Sum of Squares) Method<\/h3>\n            <p>The statistical method assumes dimensions follow a normal distribution (3\u03c3 process):<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-2\"><\/div>\n            <div class=\"vc-info-box\"><p><strong>Tip:<\/strong> RSS gives a tighter total tolerance, but assumes 99.73% (3\u03c3) confidence. Use worst-case when 100% interchangeability is required.<\/p><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"vc-section\" id=\"vc-sec-related\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\"><span class=\"vc-section-toggle-text\"><span class=\"vc-section-icon\">\ud83d\udd17<\/span><span class=\"vc-section-title\">Related Calculators<\/span><\/span><svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button>\n    <div class=\"vc-section-body\"><div class=\"vc-section-inner\"><div class=\"vc-related\">\n        <a class=\"vc-related-link\" href=\"\/calculators\/general-tolerances-iso2768-2\/\">ISO 2768-2 Tolerances<\/a>\n        <a class=\"vc-related-link\" href=\"\/calculators\/gdt-tolerance-calculator\/\">GD&#038;T Calculator<\/a>\n        <a class=\"vc-related-link\" href=\"\/calculators\/gps-tolerance-iso14405\/\">GPS Tolerance ISO 14405<\/a>\n    <\/div><\/div><\/div>\n<\/div>\n\n<div class=\"vc-section\" id=\"vc-sec-faq\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\"><span class=\"vc-section-toggle-text\"><span class=\"vc-section-icon\">\u2753<\/span><span class=\"vc-section-title\">Frequently Asked Questions<\/span><\/span><svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button>\n    <div class=\"vc-section-body\"><div class=\"vc-section-inner\"><div class=\"vc-faq-list\" id=\"vc-faq-list\"><\/div><\/div><\/div>\n<\/div>\n\n<div class=\"vc-promo\"><div class=\"vc-promo-text\"><strong>Vibromera \u2014 Portable Balancing &amp; Vibration Analysis<\/strong><br>Professional instruments and software.<\/div><a class=\"vc-promo-link\" href=\"https:\/\/vibromera.eu\/\" target=\"_blank\" rel=\"noopener\">Learn More<\/a><\/div>\n<footer class=\"vc-footer\"><p>\u00a9 2024\u20132025 <a href=\"https:\/\/vibromera.eu\/\">Vibromera<\/a> \u2014 Engineering Calculators<\/p><p style=\"font-size:12px;margin-top:4px;\">Last updated: February 2025<\/p><div class=\"vc-footer-links\"><a href=\"\/calculators\/engineering-calculators\/\">All Calculators<\/a><a href=\"https:\/\/vibromera.eu\/contacts\/\">Contact<\/a><\/div><\/footer>\n<\/div>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.js\"><\/script>\n<script>\n(function(){\n'use strict';\nvar SLUG='tolerance-stack-calculator';\nfunction $(id){return document.getElementById(id);}\nfunction fmt(n,d){return isNaN(n)?'\u2014':n.toFixed(d===undefined?3:d);}\n\nvar NUM_ROWS=8;\nvar rowsEl=$('vc-rows');\nfor(var i=0;i<NUM_ROWS;i++){\n    var div=document.createElement('div');div.className='vc-stack-row';\n    div.innerHTML='<span style=\"font-weight:600;color:var(--vc-ink-muted)\">'+(i+1)+'<\/span><input class=\"vc-input vc-nom\" type=\"number\" step=\"any\" placeholder=\"'+(i<3?[50,25,30][i]:'0')+'\" value=\"'+(i<3?[50,25,30][i]:'')+'\" data-i=\"'+i+'\"><input class=\"vc-input vc-tol\" type=\"number\" step=\"any\" min=\"0\" placeholder=\"'+(i<3?[0.1,0.05,0.08][i]:'0')+'\" value=\"'+(i<3?[0.1,0.05,0.08][i]:'')+'\" data-i=\"'+i+'\"><button type=\"button\" class=\"vc-dir-btn positive\" data-i=\"'+i+'\">+<\/button>';\n    rowsEl.appendChild(div);\n}\n\nvar dirs=[];for(var i=0;i<NUM_ROWS;i++)dirs[i]=1;\n\nrowsEl.addEventListener('click',function(e){\n    var btn=e.target.closest('.vc-dir-btn');if(!btn)return;\n    var idx=parseInt(btn.getAttribute('data-i'));\n    dirs[idx]*=-1;\n    btn.textContent=dirs[idx]>0?'+':'\u2212';\n    btn.className='vc-dir-btn '+(dirs[idx]>0?'positive':'negative');\n    calculate();\n});\n\nfunction calculate(){\n    var nomSum=0,wcSum=0,rssSum=0,count=0;\n    for(var i=0;i<NUM_ROWS;i++){\n        var nomEl=document.querySelectorAll('.vc-nom')[i];\n        var tolEl=document.querySelectorAll('.vc-tol')[i];\n        var n=parseFloat(nomEl.value);\n        var t=parseFloat(tolEl.value);\n        if(!isNaN(n)&&n!==0){\n            nomSum+=dirs[i]*n;\n            count++;\n            if(!isNaN(t)&&t>0){wcSum+=t;rssSum+=t*t;}\n        }\n    }\n    if(count===0){$('vc-results').classList.remove('vc-visible');return;}\n    var rss=Math.sqrt(rssSum);\n    $('vc-r-nom').innerHTML=fmt(nomSum,3)+' <span class=\"vc-rcard-unit\">mm<\/span>';\n    $('vc-r-wc').innerHTML='\u00b1 '+fmt(wcSum,3)+' <span class=\"vc-rcard-unit\">mm<\/span>';\n    $('vc-r-rss').innerHTML='\u00b1 '+fmt(rss,3)+' <span class=\"vc-rcard-unit\">mm<\/span>';\n    $('vc-r-wcrange').innerHTML=fmt(nomSum-wcSum,3)+' \u2026 '+fmt(nomSum+wcSum,3)+' <span class=\"vc-rcard-unit\">mm<\/span>';\n    $('vc-r-rssrange').innerHTML=fmt(nomSum-rss,3)+' \u2026 '+fmt(nomSum+rss,3)+' <span class=\"vc-rcard-unit\">mm<\/span>';\n    $('vc-results').classList.add('vc-visible');\n    saveHistory({nomSum:nomSum,wcTol:wcSum,rssTol:rss,_summary:'Nom='+fmt(nomSum,2)+', WC=\u00b1'+fmt(wcSum,3)+', RSS=\u00b1'+fmt(rss,3)});\n}\n\nvar PRESETS={\n    '3part':[[50,0.1,1],[25,0.05,1],[30,0.08,1]],\n    '5part':[[100,0.15,1],[50,0.1,-1],[25,0.05,1],[30,0.08,1],[15,0.04,-1]],\n    'gap':[[80,0.1,1],[25,0.05,-1],[25,0.05,-1],[20,0.08,-1]]\n};\ndocument.querySelectorAll('.vc-preset-btn').forEach(function(btn){\n    btn.addEventListener('click',function(e){e.preventDefault();\n        var p=PRESETS[this.getAttribute('data-preset')];\n        var noms=document.querySelectorAll('.vc-nom');\n        var tols=document.querySelectorAll('.vc-tol');\n        var btns=document.querySelectorAll('.vc-dir-btn');\n        for(var i=0;i<NUM_ROWS;i++){\n            if(p[i]){noms[i].value=p[i][0];tols[i].value=p[i][1];dirs[i]=p[i][2];btns[i].textContent=dirs[i]>0?'+':'\u2212';btns[i].className='vc-dir-btn '+(dirs[i]>0?'positive':'negative');}\n            else{noms[i].value='';tols[i].value='';dirs[i]=1;btns[i].textContent='+';btns[i].className='vc-dir-btn positive';}\n        }\n        calculate();\n    });\n});\n\n$('vc-form').addEventListener('input',calculate);\n\n$('vc-copy-btn').addEventListener('click',function(){\n    var text='Tolerance Stack Analysis\\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\nNominal: '+$('vc-r-nom').textContent+'\\nWorst-Case: '+$('vc-r-wc').textContent+'\\nRSS (3\u03c3): '+$('vc-r-rss').textContent+'\\nWC Range: '+$('vc-r-wcrange').textContent+'\\nRSS Range: '+$('vc-r-rssrange').textContent+'\\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\nvibromera.eu';\n    if(navigator.clipboard){navigator.clipboard.writeText(text).then(function(){var b=$('vc-copy-btn');b.classList.add('vc-copied');b.innerHTML='<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg> Copied!';setTimeout(function(){b.classList.remove('vc-copied');b.innerHTML='<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"\/><\/svg> Copy';},2000);});}\n});\n\ndocument.querySelectorAll('.vc-section-toggle').forEach(function(btn){btn.addEventListener('click',function(){var s=this.closest('.vc-section');s.classList.toggle('vc-open');this.setAttribute('aria-expanded',s.classList.contains('vc-open'));});});\n\nvar faqData=[\n    {q:'What is tolerance stack-up analysis?',a:'<p>Tolerance stack-up analysis determines the cumulative effect of individual part tolerances on an assembly dimension. It ensures assembled parts will fit and function correctly.<\/p>'},\n    {q:'What is the difference between worst-case and RSS?',a:'<p>Worst-case assumes all tolerances at extreme limits simultaneously (100% pass). RSS is statistical, assuming normal distribution \u2014 gives a smaller total tolerance (~99.73% confidence at 3\u03c3), but more realistic for production.<\/p>'},\n    {q:'When should I use worst-case vs RSS?',a:'<p>Use worst-case for safety-critical applications and small runs. Use RSS for high-volume production where statistical methods are valid.<\/p>'},\n    {q:'What does bilateral tolerance mean?',a:'<p>Bilateral tolerance is expressed as nominal \u00b1 tolerance (e.g., 50 \u00b1 0.1 mm). The tolerance is distributed equally on both sides of the nominal.<\/p>'},\n    {q:'What does the direction (+\/\u2212) mean?',a:'<p>Direction indicates whether a dimension adds (+) or subtracts (\u2212) in the stack chain. For gap analysis, the gap = sum of positive dimensions minus sum of negative dimensions.<\/p>'}\n];\nvar fl=$('vc-faq-list');faqData.forEach(function(f){fl.innerHTML+='<div class=\"vc-faq-item\"><button type=\"button\" class=\"vc-faq-q\"><span>'+f.q+'<\/span><svg class=\"vc-faq-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><div class=\"vc-faq-a\"><div class=\"vc-faq-a-inner\">'+f.a+'<\/div><\/div><\/div>';});\nfl.addEventListener('click',function(e){var b=e.target.closest('.vc-faq-q');if(!b)return;b.closest('.vc-faq-item').classList.toggle('vc-open');});\n\nfunction saveHistory(e){var k='vc_history_'+SLUG;var a=[];try{a=JSON.parse(localStorage.getItem(k))||[];}catch(x){}e._ts=new Date().toISOString();a.unshift(e);if(a.length>10)a=a.slice(0,10);try{localStorage.setItem(k,JSON.stringify(a));}catch(x){}}\nfunction renderFormulas(){try{\n    katex.render('T_{WC} = \\\\sum_{i=1}^{n} t_i',$('vc-katex-1'),{displayMode:true,throwOnError:false});\n    katex.render('T_{RSS} = \\\\sqrt{\\\\sum_{i=1}^{n} t_i^2}',$('vc-katex-2'),{displayMode:true,throwOnError:false});\n}catch(e){}}\nfunction init(){renderFormulas();calculate();}\nif(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',init);}else{init();}\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\u09ac\u09bf\u09a8\u09be\u09ae\u09c2\u09b2\u09cd\u09af\u09c7 \u0985\u09a8\u09b2\u09be\u0987\u09a8 \u099f\u09b2\u09be\u09b0\u09c7\u09a8\u09cd\u09b8 \u09b8\u09cd\u099f\u09cd\u09af\u09be\u0995-\u0986\u09aa \u09ac\u09bf\u09b6\u09cd\u09b2\u09c7\u09b7\u09a3 \u0995\u09cd\u09af\u09be\u09b2\u0995\u09c1\u09b2\u09c7\u099f\u09b0\u0964 8\u099f\u09bf \u09aa\u09b0\u09cd\u09af\u09a8\u09cd\u09a4 \u09ae\u09be\u09a4\u09cd\u09b0\u09be \u09a6\u09cd\u09ac\u09bf\u09ae\u09c1\u0996\u09c0 \u099f\u09b2\u09be\u09b0\u09c7\u09a8\u09cd\u09b8 \u09b8\u09b9 \u09aa\u09cd\u09b0\u09ac\u09c7\u0936 \u0995\u09b0\u09c1\u09a8\u0964 \u09b8\u09b0\u09cd\u09ac\u09cb\u099a\u09cd\u099a-\u0995\u09c7\u09b8 \u098f\u09ac\u0982 RSS (\u09aa\u09b0\u09bf\u09b8\u0982\u0996\u09cd\u09af\u09be\u09a8\u0997\u09a4) \u09ae\u09cb\u099f \u099f\u09b2\u09be\u09b0\u09c7\u09a8\u09cd\u09b8 \u0997\u09a3\u09a8\u09be \u0995\u09b0\u09c1\u09a8\u0964<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100265","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100265","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":2,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100265\/revisions"}],"predecessor-version":[{"id":100755,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100265\/revisions\/100755"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/media?parent=100265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/categories?post=100265"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/tags?post=100265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}