{"id":100224,"date":"2026-02-15T20:28:14","date_gmt":"2026-02-15T20:28:14","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100224"},"modified":"2026-07-02T18:18:52","modified_gmt":"2026-07-02T18:18:52","slug":"shaft-radial-runout","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/bn\/calculators\/shaft-radial-runout\/","title":{"rendered":"\u09b6\u09cd\u09af\u09be\u09ab\u099f \u09b0\u09c7\u09a1\u09bf\u09af\u09bc\u09be\u09b2 \u09b0\u09be\u09a8\u0986\u0989\u099f \u0995\u09cd\u09af\u09be\u09b2\u0995\u09c1\u09b2\u09c7\u099f\u09b0 \u2014 \u09ac\u09bf\u09a8\u09be\u09ae\u09c2\u09b2\u09cd\u09af\u09c7 TIR \u09b8\u09b0\u099e\u09cd\u099c\u09be\u09ae | Vibromera"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Shaft Radial Runout Calculator\",\"alternateName\":[\"TIR Calculator\",\"Runout Balance-Risk Screening Calculator\"],\"description\":\"Estimate the shaft radial runout (TIR) that corresponds to the ISO 21940-11 residual unbalance limit for a given balance grade and speed, and screen measured runout for unbalance risk. Note: ISO 21940-11 specifies unbalance limits, not geometric runout tolerances.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/shaft-radial-runout\/\",\"applicationCategory\":\"Engineering Calculator\",\"operatingSystem\":\"Any (Web Browser)\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"EUR\"},\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"datePublished\":\"2025-01-01\",\"dateModified\":\"2025-06-14\",\"inLanguage\":\"en\",\"isAccessibleForFree\":true,\"featureList\":[\"Unbalance-equivalent TIR estimate\",\"Balance-risk screening check\",\"Balance grades G0.4\u2013G40\",\"Metric and Imperial units\",\"Auto-calculation on input change\",\"URL parameter sharing\",\"Calculation history\"],\"keywords\":\"shaft runout, TIR, total indicator reading, permissible eccentricity, ISO 21940\"}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[\n{\"@type\":\"Question\",\"name\":\"What is radial runout on a shaft?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Radial runout (TIR) is the total variation in distance measured from a shaft surface to a fixed reference as the shaft rotates one full revolution. TIR equals twice the eccentricity.\"}},\n{\"@type\":\"Question\",\"name\":\"How do I measure runout with a dial indicator?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Mount the shaft on V-blocks, place a dial indicator perpendicular to the surface, zero it, then rotate one full revolution. The total needle movement is the TIR.\"}},\n{\"@type\":\"Question\",\"name\":\"What causes excessive radial runout?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Common causes: bent shaft, manufacturing eccentricity, bearing journal wear, improper coupling alignment, and assembly errors.\"}},\n{\"@type\":\"Question\",\"name\":\"What is the relationship between runout and unbalance?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"If the mass centre of a rotor is displaced by eccentricity e, the equivalent unbalance is U = e \u00d7 m, where m is rotor mass. Journal runout can displace the mass centre and thus contribute to unbalance, but measured TIR also includes form error, bend and setup error, so runout and residual unbalance are related yet not equal.\"}},\n{\"@type\":\"Question\",\"name\":\"What is acceptable runout for different applications?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The geometric runout tolerance comes from the shaft drawing or the manufacturer's specification, not from ISO 21940-11. As a balance-risk screening value, the unbalance-equivalent TIR is about 40 \u03bcm at G6.3 \/ 3000 RPM, about 3.2 \u03bcm at G1.0 \/ 6000 RPM, and about 80 \u03bcm at G6.3 \/ 1500 RPM. Always calculate for your specific conditions and check the drawing tolerance.\"}}\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\":\"Shaft Radial Runout Calculator\",\"item\":\"https:\/\/vibromera.eu\/calculators\/shaft-radial-runout\/\"}\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 {\n    --vc-bg: #f4f1ec;\n    --vc-surface: #ffffff;\n    --vc-surface-alt: #f8f6f2;\n    --vc-ink: #1a1a1a;\n    --vc-ink-secondary: #5a5650;\n    --vc-ink-muted: #8a857e;\n    --vc-accent: #c85a2a;\n    --vc-accent-hover: #b04d22;\n    --vc-accent-light: #fdf0ea;\n    --vc-blue: #2a5c8c;\n    --vc-blue-light: #eaf1f8;\n    --vc-green: #2a7a4b;\n    --vc-green-light: #eaf8ef;\n    --vc-yellow: #a67c00;\n    --vc-yellow-light: #fef9e8;\n    --vc-red: #b91c1c;\n    --vc-red-light: #fef2f2;\n    --vc-border: #d9d4cc;\n    --vc-border-light: #e8e4dd;\n    --vc-shadow: 0 1px 3px rgba(26,26,26,0.06), 0 4px 12px rgba(26,26,26,0.04);\n    --vc-shadow-lg: 0 4px 12px rgba(26,26,26,0.08), 0 16px 40px rgba(26,26,26,0.06);\n    --vc-radius: 8px;\n    --vc-radius-lg: 12px;\n    --vc-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n    --vc-mono: 'JetBrains Mono', 'Consolas', 'Monaco', monospace;\n    --vc-display: 'Fraunces', Georgia, serif;\n}\n\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; }\n.vc-calculator *, .vc-calculator *::before, .vc-calculator *::after { box-sizing: border-box; }\n\n.vc-header { text-align: center; padding: 48px 24px 40px; position: relative; }\n.vc-header::after { content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:80px; height:3px; background:var(--vc-accent); border-radius:2px; }\n.vc-header-eyebrow { font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.15em; text-transform:uppercase; color:var(--vc-accent); margin:0 0 12px; }\n.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:-0.02em; }\n.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; }\n.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\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-unit-bar { display:flex; border-bottom:1px solid var(--vc-border-light); background:var(--vc-surface-alt); }\n.vc-unit-btn { flex:1; padding:12px; border:none; background:transparent; font-family:var(--vc-font); font-size:13px; font-weight:600; color:var(--vc-ink-muted); cursor:pointer; transition:all 0.2s; position:relative; }\n.vc-unit-btn:hover { color:var(--vc-ink-secondary); background:rgba(200,90,42,0.04); }\n.vc-unit-btn.vc-active { color:var(--vc-accent); background:var(--vc-surface); }\n.vc-unit-btn.vc-active::after { content:''; position:absolute; bottom:-1px; left:16px; right:16px; height:2px; background:var(--vc-accent); border-radius:1px 1px 0 0; }\n\n.vc-form { padding:24px; }\n.vc-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }\n@media(max-width:600px) { .vc-form-grid { grid-template-columns:1fr; } }\n.vc-field { display:flex; flex-direction:column; }\n.vc-field-full { grid-column: 1 \/ -1; }\n.vc-label { font-size:12px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--vc-ink-secondary); margin-bottom:6px; }\n.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 0.15s, box-shadow 0.15s; }\n.vc-select { padding-right:36px; appearance:none; -webkit-appearance:none; cursor:pointer; background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='none' stroke='%235a5650' stroke-width='2'%3E%3Cpath d='M4 6l4 4 4-4'\/%3E%3C\/svg%3E\"); background-repeat:no-repeat; background-position:right 10px center; }\n.vc-select:focus, .vc-input:focus { outline:none; border-color:var(--vc-accent); box-shadow:0 0 0 3px rgba(200,90,42,0.12); }\n.vc-select:hover, .vc-input:hover { border-color:var(--vc-ink-muted); }\n\n.vc-presets { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; padding-top:18px; border-top:1px solid var(--vc-border-light); }\n.vc-presets-label { font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-ink-muted); width:100%; margin-bottom:2px; }\n.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 0.15s; }\n.vc-preset-btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); background:var(--vc-accent-light); }\n\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 0.5s cubic-bezier(0.4,0,0.2,1), padding 0.3s; }\n.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; }\n.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 0.15s; }\n.vc-copy-btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); }\n.vc-copy-btn.vc-copied { background:var(--vc-green-light); border-color:var(--vc-green); color:var(--vc-green); }\n\n.vc-result-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:20px; }\n@media(max-width:500px) { .vc-result-grid { grid-template-columns:1fr; } }\n.vc-rcard { background:var(--vc-surface); border:1px solid var(--vc-border-light); border-radius:var(--vc-radius); padding:16px; transition:transform 0.2s; }\n.vc-rcard:hover { transform:translateY(-1px); }\n.vc-rcard-primary { border-color:var(--vc-accent); border-width:2px; background:linear-gradient(135deg, #fdf6f2 0%, var(--vc-surface) 100%); grid-column:1 \/ -1; }\n.vc-rcard-label { font-family:var(--vc-mono); font-size:10px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-ink-muted); margin-bottom:4px; }\n.vc-rcard-value { font-family:var(--vc-mono); font-size:22px; font-weight:600; color:var(--vc-ink); line-height:1.2; }\n.vc-rcard-primary .vc-rcard-value { font-size:30px; color:var(--vc-accent); }\n.vc-rcard-unit { font-size:14px; font-weight:400; color:var(--vc-ink-secondary); }\n\n.vc-pass-fail { display:flex; align-items:center; gap:10px; padding:14px 16px; border-radius:var(--vc-radius); margin-top:4px; margin-bottom:12px; font-family:var(--vc-mono); font-size:14px; font-weight:600; }\n.vc-pass { background:var(--vc-green-light); color:var(--vc-green); border:1px solid var(--vc-green); }\n.vc-fail { background:var(--vc-red-light); color:var(--vc-red); border:1px solid var(--vc-red); }\n\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; }\n.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 0.15s; }\n.vc-section-toggle:hover { background:var(--vc-surface-alt); }\n.vc-section-toggle-text { display:flex; align-items:center; gap:10px; }\n.vc-section-icon { font-size:20px; line-height:1; }\n.vc-section-title { font-family:var(--vc-display); font-size:18px; font-weight:700; color:var(--vc-ink); margin:0; }\n.vc-section-chevron { width:20px; height:20px; color:var(--vc-ink-muted); transition:transform 0.3s; flex-shrink:0; }\n.vc-section.vc-open .vc-section-chevron { transform:rotate(180deg); }\n.vc-section-body { max-height:0; overflow:hidden; transition:max-height 0.4s cubic-bezier(0.4,0,0.2,1); }\n.vc-section.vc-open .vc-section-body { max-height:20000px; }\n.vc-section-inner { padding:0 24px 24px; border-top:1px solid var(--vc-border-light); }\n\n.vc-theory h3 { font-family:var(--vc-display); font-size:17px; font-weight:700; color:var(--vc-ink); margin:28px 0 10px; }\n.vc-theory h3:first-child { margin-top:20px; }\n.vc-theory p { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 10px; }\n.vc-theory ul, .vc-theory ol { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 12px 18px; padding:0; }\n.vc-theory li { margin-bottom:5px; }\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; }\n.vc-info-box p { margin:0; font-size:14px; color:var(--vc-ink-secondary); }\n.vc-example-box { background:var(--vc-surface-alt); border:1px solid var(--vc-border-light); border-radius:6px; padding:16px; margin:14px 0; }\n.vc-example-title { font-family:var(--vc-mono); font-size:13px; font-weight:600; color:var(--vc-accent); margin-bottom:8px; }\n.vc-table { width:100%; border-collapse:collapse; margin:14px 0; font-size:13px; }\n.vc-table th, .vc-table td { padding:10px 12px; border:1px solid var(--vc-border-light); text-align:left; }\n.vc-table th { background:var(--vc-surface-alt); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color:var(--vc-ink-secondary); }\n.vc-table tr:nth-child(even) { background:var(--vc-surface-alt); }\n@media(max-width:600px) { .vc-table { font-size:12px; } .vc-table th, .vc-table td { padding:8px; } }\n\n.vc-faq-list { display:flex; flex-direction:column; gap:8px; margin-top:20px; }\n.vc-faq-item { border:1px solid var(--vc-border-light); border-radius:6px; overflow:hidden; }\n.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 0.15s; }\n.vc-faq-q:hover { background:#ede9e3; }\n.vc-faq-chevron { width:16px; height:16px; color:var(--vc-ink-muted); flex-shrink:0; transition:transform 0.25s; }\n.vc-faq-item.vc-open .vc-faq-chevron { transform:rotate(180deg); }\n.vc-faq-a { max-height:0; overflow:hidden; transition:max-height 0.35s; }\n.vc-faq-item.vc-open .vc-faq-a { max-height:1200px; }\n.vc-faq-a-inner { padding:14px 16px; border-top:1px solid var(--vc-border-light); font-size:14px; color:var(--vc-ink-secondary); }\n.vc-faq-a-inner p { margin:0 0 8px; } .vc-faq-a-inner p:last-child { margin-bottom:0; }\n.vc-faq-a-inner ul { margin:4px 0 8px 16px; padding:0; } .vc-faq-a-inner li { margin-bottom:3px; }\n\n.vc-related { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }\n.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 0.15s; }\n.vc-related-link:hover { border-color:var(--vc-accent); color:var(--vc-accent); background:var(--vc-accent-light); }\n\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; }\n.vc-promo-text { flex:1; font-size:14px; color:var(--vc-ink-secondary); } .vc-promo-text strong { color:var(--vc-ink); }\n.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 0.15s; }\n.vc-promo-link:hover { background:var(--vc-accent-hover); }\n\n.vc-footer { text-align:center; padding:32px 16px; font-size:13px; color:var(--vc-ink-muted); }\n.vc-footer a { color:var(--vc-accent); text-decoration:none; } .vc-footer a:hover { text-decoration:underline; }\n.vc-footer-links { margin-top:8px; font-size:12px; } .vc-footer-links a { margin:0 8px; }\n\n@media print {\n    .vc-section-body { max-height:none!important; }\n    .vc-faq-a { max-height:none!important; }\n    .vc-results { max-height:none!important; padding:24px!important; }\n    .vc-copy-btn, .vc-section-chevron, .vc-faq-chevron, .vc-presets, .vc-promo { display:none!important; }\n}\n<\/style>\n\n<div class=\"vc-calculator\" id=\"vc-shaft-runout\">\n\n<header class=\"vc-header\">\n    <p class=\"vc-header-eyebrow\">Free Engineering Tool<\/p>\n    <h1 class=\"vc-header-title\">Shaft Radial Runout Calculator<\/h1>\n    <p class=\"vc-header-subtitle\">Estimate the shaft radial runout (TIR \u2014 Total Indicator Reading) that corresponds to the ISO 21940-11 residual unbalance limit for your balance quality grade and speed, and screen measured runout for unbalance risk. Note: ISO 21940-11 sets unbalance limits \u2014 the geometric runout tolerance itself comes from the shaft drawing or manufacturer specification.<\/p>\n    <div class=\"vc-badges\">\n        <span class=\"vc-badge\">ISO 21940-11<\/span>\n        <span class=\"vc-badge\">TIR \/ Eccentricity<\/span>\n        <span class=\"vc-badge\">Balance-Risk Screening<\/span>\n    <\/div>\n<\/header>\n\n<div class=\"vc-card\">\n    <div class=\"vc-unit-bar\">\n        <button type=\"button\" class=\"vc-unit-btn vc-active\" data-system=\"metric\">Metric (\u03bcm, kg, mm)<\/button>\n        <button type=\"button\" class=\"vc-unit-btn\" data-system=\"imperial\">Imperial (mils, lb, in)<\/button>\n    <\/div>\n\n    <form class=\"vc-form\" id=\"vc-form\" autocomplete=\"off\">\n        <div class=\"vc-form-grid\">\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-grade\">Balance Grade G<\/label>\n                <select class=\"vc-select\" id=\"vc-grade\">\n                    <option value=\"0.4\">G0.4 \u2014 Spindles, gyroscopes<\/option>\n                    <option value=\"1\">G1.0 \u2014 Grinding machine drives<\/option>\n                    <option value=\"2.5\">G2.5 \u2014 Gas\/steam turbines, turbochargers<\/option>\n                    <option value=\"6.3\" selected>G6.3 \u2014 Fans, pumps, motors, general<\/option>\n                    <option value=\"16\">G16 \u2014 Agricultural machinery, crushers<\/option>\n                    <option value=\"40\">G40 \u2014 Automobile wheels, rims<\/option>\n                <\/select>\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-speed\">Operating Speed <span class=\"vc-label-hint\">(RPM)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-speed\" inputmode=\"decimal\" step=\"any\" min=\"1\" placeholder=\"e.g. 3000\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-diameter\">Shaft Diameter <span class=\"vc-label-hint\" id=\"vc-diam-hint\">(mm)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-diameter\" inputmode=\"decimal\" step=\"any\" min=\"0.1\" placeholder=\"e.g. 50\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-mass\">Rotor Mass <span class=\"vc-label-hint\" id=\"vc-mass-hint\">(kg)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-mass\" inputmode=\"decimal\" step=\"any\" min=\"0.001\" placeholder=\"e.g. 45\">\n            <\/div>\n            <div class=\"vc-field vc-field-full\">\n                <label class=\"vc-label\" for=\"vc-measured\">Measured Runout <span class=\"vc-label-hint\">\u2014 optional, for balance-risk screening<\/span> <span class=\"vc-label-hint\" id=\"vc-meas-hint\">(\u03bcm TIR)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-measured\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"Leave blank to skip\">\n            <\/div>\n        <\/div>\n\n        <div class=\"vc-presets\">\n            <div class=\"vc-presets-label\">Quick presets<\/div>\n            <button type=\"button\" class=\"vc-preset-btn\" data-g=\"6.3\" data-n=\"1500\" data-d=\"50\" data-m=\"80\">Motor G6.3 \/ 1500 RPM<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-g=\"6.3\" data-n=\"3000\" data-d=\"40\" data-m=\"45\">Pump G6.3 \/ 3000 RPM<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-g=\"1\" data-n=\"6000\" data-d=\"30\" data-m=\"15\">Spindle G1.0 \/ 6000 RPM<\/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\">Results<\/h2>\n            <button type=\"button\" class=\"vc-copy-btn\" id=\"vc-copy-btn\">\n                <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>\n                Copy\n            <\/button>\n        <\/div>\n        <div class=\"vc-result-grid\">\n            <div class=\"vc-rcard vc-rcard-primary\">\n                <div class=\"vc-rcard-label\">Unbalance-Equivalent TIR (screening value, not a geometric tolerance)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-tir\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Permissible Eccentricity (e_per)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-ecc\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Equivalent Unbalance (U_per)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-unbal\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Angular Velocity \u03c9<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-omega\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Balance Grade<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-grade\">\u2014<\/div>\n            <\/div>\n        <\/div>\n        <div id=\"vc-passfail\"><\/div>\n    <\/div>\n<\/div>\n\n<!-- Theory -->\n<div class=\"vc-section vc-open\" id=\"vc-sec-theory\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"true\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\ud83d\udcd8<\/span>\n            <span class=\"vc-section-title\">Theory &amp; Formulas<\/span>\n        <\/span>\n        <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>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner vc-theory\">\n            <h3>Permissible Eccentricity<\/h3>\n            <p>From the balance quality grade G and operating speed:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-1\"><\/div>\n            <ul>\n                <li><strong>G<\/strong> \u2014 balance quality grade (mm\/s)<\/li>\n                <li><strong>n<\/strong> \u2014 operating speed (RPM)<\/li>\n                <li><strong>\u03c9<\/strong> \u2014 angular velocity (rad\/s) = 2\u03c0n\/60<\/li>\n            <\/ul>\n\n            <h3>Total Indicator Reading<\/h3>\n            <p>TIR measured by a dial indicator is twice the eccentricity (peak-to-peak):<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-2\"><\/div>\n            <div class=\"vc-info-box\">\n                <p><strong>Scope of this check:<\/strong> e<sub>per<\/sub> in ISO 21940-11 is a permissible residual <em>unbalance<\/em> (mass-centre eccentricity), not a geometric runout tolerance. TIR = 2 \u00d7 e<sub>per<\/sub> is therefore a <em>screening<\/em> value: if measured journal runout exceeds it, the mass-centre displacement from runout alone could already exceed the balance limit for the selected G grade. It does not replace the geometric runout tolerance on the shaft drawing, and a shaft with low TIR can still be out of balance (mass distribution), while measured TIR can include form error, bend, bearing seating or setup error that does not translate one-to-one into unbalance.<\/p>\n            <\/div>\n\n            <h3>Equivalent Unbalance<\/h3>\n            <div class=\"vc-formula-box\" id=\"vc-katex-3\"><\/div>\n\n            <h3>Practical Example<\/h3>\n            <div class=\"vc-example-box\">\n                <div class=\"vc-example-title\">Example \u2014 Pump Shaft G6.3 at 3000 RPM<\/div>\n                <p><strong>Given:<\/strong> Speed = 3000 RPM, Grade = G6.3, Mass = 45 kg, Diameter = 40 mm<\/p>\n                <p>\u03c9 = 2\u03c0 \u00d7 3000 \/ 60 = 314.16 rad\/s<\/p>\n                <p>e<sub>per<\/sub> = 6.3 \u00d7 1000 \/ 314.16 = <strong>20.05 \u03bcm<\/strong><\/p>\n                <p>TIR = 2 \u00d7 20.05 = <strong>40.1 \u03bcm<\/strong><\/p>\n                <p>U<sub>per<\/sub> = 20.05 \u00d7 45 = <strong>902.3 g\u00b7mm<\/strong><\/p>\n            <\/div>\n\n            <h3>Unbalance-Equivalent Runout Reference Table (screening values)<\/h3>\n            <table class=\"vc-table\">\n                <thead><tr><th>Grade<\/th><th>Speed (RPM)<\/th><th>e<sub>per<\/sub> (\u03bcm)<\/th><th>Equivalent TIR (\u03bcm)<\/th><\/tr><\/thead>\n                <tbody>\n                    <tr><td>G6.3<\/td><td>750<\/td><td>80.2<\/td><td>160.4<\/td><\/tr>\n                    <tr><td>G6.3<\/td><td>1500<\/td><td>40.1<\/td><td>80.2<\/td><\/tr>\n                    <tr><td>G6.3<\/td><td>3000<\/td><td>20.1<\/td><td>40.1<\/td><\/tr>\n                    <tr><td>G2.5<\/td><td>3000<\/td><td>7.96<\/td><td>15.9<\/td><\/tr>\n                    <tr><td>G2.5<\/td><td>6000<\/td><td>3.98<\/td><td>7.96<\/td><\/tr>\n                    <tr><td>G1.0<\/td><td>6000<\/td><td>1.59<\/td><td>3.18<\/td><\/tr>\n                    <tr><td>G1.0<\/td><td>12000<\/td><td>0.80<\/td><td>1.59<\/td><\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Related -->\n<div class=\"vc-section\" id=\"vc-sec-related\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\ud83d\udd17<\/span>\n            <span class=\"vc-section-title\">Related Calculators<\/span>\n        <\/span>\n        <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>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner\">\n            <div class=\"vc-related\">\n                <a class=\"vc-related-link\" href=\"\/calculators\/residual-unbalance-iso1940\/\">Residual Unbalance (ISO 21940)<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/rotor-deflection\/\">Rotor Deflection on Supports<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/vibration-velocity\/\">Vibration Velocity (ISO 10816)<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- FAQ -->\n<div class=\"vc-section\" id=\"vc-sec-faq\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\u2753<\/span>\n            <span class=\"vc-section-title\">Frequently Asked Questions<\/span>\n        <\/span>\n        <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>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner\">\n            <div class=\"vc-faq-list\" id=\"vc-faq-list\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"vc-promo\">\n    <div class=\"vc-promo-text\">\n        <strong>Vibromera \u2014 Portable Balancing &amp; Vibration Analysis<\/strong><br>\n        Professional field balancing instruments and software. Achieve ISO 21940-11 balance quality on-site. Used in 50+ countries.\n    <\/div>\n    <a class=\"vc-promo-link\" href=\"https:\/\/vibromera.eu\/\" target=\"_blank\" rel=\"noopener\">Learn More<\/a>\n<\/div>\n\n<footer class=\"vc-footer\">\n    <p>\u00a9 2024\u20132025 <a href=\"https:\/\/vibromera.eu\/\">Vibromera<\/a> \u2014 Engineering Calculators<\/p>\n    <p style=\"font-size:12px;margin-top:4px;\">Based on ISO 21940-11 residual unbalance limits (screening use \u2014 not a geometric runout tolerance). Last updated: July 2026<\/p>\n    <div class=\"vc-footer-links\">\n        <a href=\"\/calculators\/engineering-calculators\/\">All Calculators<\/a>\n        <a href=\"https:\/\/vibromera.eu\/contacts\/\">Contact<\/a>\n    <\/div>\n<\/footer>\n\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';\n\n    var SLUG = 'shaft-radial-runout';\n    var unitSystem = 'metric';\n    var KG2LB = 2.20462;\n    var MM2IN = 1\/25.4;\n    var UM2MIL = 1\/25.4;\n    var GMM2OZIN = 1\/720;\n\n    function $(id) { return document.getElementById(id); }\n    function fmt(n, d) {\n        if (isNaN(n)) return '\u2014';\n        if (n === 0) return '0';\n        if (d !== undefined) { var f = n.toFixed(d); return f.replace(\/(\\.\\d*?)0+$\/, '$1').replace(\/\\.$\/, ''); }\n        if (Math.abs(n) < 1) return n.toFixed(3);\n        if (Math.abs(n) < 10) return n.toFixed(2);\n        if (Math.abs(n) < 100) return n.toFixed(1);\n        return Math.round(n).toLocaleString('en-US');\n    }\n\n    \/* \u2500\u2500 CALCULATION \u2500\u2500 *\/\n    function calculate() {\n        var speedVal = parseFloat($('vc-speed').value);\n        var grade = parseFloat($('vc-grade').value);\n\n        if (!speedVal || speedVal <= 0) {\n            $('vc-results').classList.remove('vc-visible');\n            return;\n        }\n\n        var massVal = parseFloat($('vc-mass').value);\n        var diamVal = parseFloat($('vc-diameter').value);\n        var measuredVal = parseFloat($('vc-measured').value);\n\n        var hasMass = massVal > 0;\n        var massKg = hasMass ? (unitSystem === 'imperial' ? massVal \/ KG2LB : massVal) : 0;\n        var hasDiam = diamVal > 0;\n        var diamMm = hasDiam ? (unitSystem === 'imperial' ? diamVal \/ MM2IN : diamVal) : 0;\n\n        var omega = 2 * Math.PI * speedVal \/ 60;\n        var eper = grade * 1000 \/ omega;  \/\/ \u03bcm\n        var tir = 2 * eper;               \/\/ \u03bcm\n        var uper = hasMass ? eper * massKg : 0;\n\n        \/* Display TIR *\/\n        var tirDisplay = unitSystem === 'imperial' ? (tir * UM2MIL) : tir;\n        var tirUnit = unitSystem === 'imperial' ? 'mils' : '\u03bcm';\n        $('vc-r-tir').innerHTML = (tirDisplay < 1 ? tirDisplay.toFixed(3) : tirDisplay < 10 ? tirDisplay.toFixed(2) : tirDisplay.toFixed(1)) + ' <span class=\"vc-rcard-unit\">' + tirUnit + '<\/span>';\n\n        \/* Eccentricity *\/\n        var eperDisplay = unitSystem === 'imperial' ? (eper * UM2MIL) : eper;\n        $('vc-r-ecc').innerHTML = (eperDisplay < 1 ? eperDisplay.toFixed(3) : eperDisplay < 10 ? eperDisplay.toFixed(2) : eperDisplay.toFixed(1)) + ' <span class=\"vc-rcard-unit\">' + (unitSystem === 'imperial' ? 'mils' : '\u03bcm') + '<\/span>';\n\n        \/* Unbalance *\/\n        if (hasMass) {\n            var uperDisplay = unitSystem === 'imperial' ? (uper * GMM2OZIN) : uper;\n            var unitU = unitSystem === 'imperial' ? 'oz\u00b7in' : 'g\u00b7mm';\n            $('vc-r-unbal').innerHTML = (uperDisplay < 1 ? uperDisplay.toFixed(3) : uperDisplay < 10 ? uperDisplay.toFixed(2) : uperDisplay.toFixed(1)) + ' <span class=\"vc-rcard-unit\">' + unitU + '<\/span>';\n        } else {\n            $('vc-r-unbal').innerHTML = '<span class=\"vc-rcard-unit\">Enter mass to calculate<\/span>';\n        }\n\n        $('vc-r-omega').innerHTML = fmt(omega, 2) + ' <span class=\"vc-rcard-unit\">rad\/s<\/span>';\n        $('vc-r-grade').innerHTML = 'G' + grade;\n\n        \/* Pass\/Fail *\/\n        var pfDiv = $('vc-passfail');\n        if (!isNaN(measuredVal) && measuredVal >= 0 && $('vc-measured').value !== '') {\n            var measuredUm = unitSystem === 'imperial' ? measuredVal \/ UM2MIL : measuredVal;\n            var pass = measuredUm <= tir;\n            var measuredDisplay = unitSystem === 'imperial' ? measuredVal.toFixed(2) + ' mils' : measuredVal.toFixed(1) + ' \u03bcm';\n            var permDisplay = unitSystem === 'imperial' ? tirDisplay.toFixed(2) + ' mils' : tir.toFixed(1) + ' \u03bcm';\n            var ratio = (measuredUm \/ tir * 100).toFixed(1);\n            if (pass) {\n                pfDiv.innerHTML = '<div class=\"vc-pass-fail vc-pass\">\u2713 WITHIN SCREENING VALUE \u2014 Measured ' + measuredDisplay + ' \u2264 Equivalent ' + permDisplay + ' (' + ratio + '% of screening value). Runout alone should not exceed the G-grade unbalance limit; still verify the drawing runout tolerance and residual unbalance.<\/div>';\n            } else {\n                pfDiv.innerHTML = '<div class=\"vc-pass-fail vc-fail\">\u2717 EXCEEDS SCREENING VALUE \u2014 Measured ' + measuredDisplay + ' > Equivalent ' + permDisplay + ' (' + ratio + '% of screening value). Mass-centre displacement from runout alone could exceed the G-grade unbalance limit \u2014 check shaft geometry against the drawing tolerance and balance the rotor.<\/div>';\n            }\n        } else {\n            pfDiv.innerHTML = '';\n        }\n\n        $('vc-results').classList.add('vc-visible');\n\n        \/* URL params *\/\n        var u = new URL(window.location);\n        u.searchParams.set('grade', grade);\n        u.searchParams.set('speed', speedVal);\n        if (hasDiam) u.searchParams.set('diameter', $('vc-diameter').value);\n        if (hasMass) u.searchParams.set('mass', $('vc-mass').value);\n        if (!isNaN(measuredVal) && $('vc-measured').value !== '') u.searchParams.set('measured', $('vc-measured').value);\n        history.replaceState(null, '', u.toString());\n\n        \/* History *\/\n        var summary = 'G' + grade + ', ' + speedVal + ' RPM \u2192 TIR=' + (tirDisplay < 10 ? tirDisplay.toFixed(2) : tirDisplay.toFixed(1)) + ' ' + tirUnit;\n        saveHistory({\n            grade: grade,\n            speed: speedVal,\n            diameter: $('vc-diameter').value,\n            mass: $('vc-mass').value,\n            measured: $('vc-measured').value,\n            _summary: summary\n        });\n    }\n\n    \/* \u2500\u2500 UNIT TOGGLE \u2500\u2500 *\/\n    var unitBtns = document.querySelectorAll('.vc-unit-btn');\n    unitBtns.forEach(function(btn) {\n        btn.addEventListener('click', function() {\n            unitBtns.forEach(function(b) { b.classList.remove('vc-active'); });\n            this.classList.add('vc-active');\n            unitSystem = this.getAttribute('data-system');\n            $('vc-mass-hint').textContent = unitSystem === 'imperial' ? '(lb)' : '(kg)';\n            $('vc-diam-hint').textContent = unitSystem === 'imperial' ? '(in)' : '(mm)';\n            $('vc-meas-hint').textContent = unitSystem === 'imperial' ? '(mils TIR)' : '(\u03bcm TIR)';\n            try { localStorage.setItem('vc_units', unitSystem); } catch(e) {}\n            calculate();\n        });\n    });\n\n    \/* \u2500\u2500 PRESETS \u2500\u2500 *\/\n    document.querySelectorAll('.vc-preset-btn').forEach(function(btn) {\n        btn.addEventListener('click', function(e) {\n            e.preventDefault();\n            $('vc-grade').value = this.getAttribute('data-g');\n            $('vc-speed').value = this.getAttribute('data-n');\n            var d = parseFloat(this.getAttribute('data-d'));\n            var m = parseFloat(this.getAttribute('data-m'));\n            $('vc-diameter').value = unitSystem === 'imperial' ? (d * MM2IN).toFixed(3) : d;\n            $('vc-mass').value = unitSystem === 'imperial' ? (m * KG2LB).toFixed(1) : m;\n            $('vc-measured').value = '';\n            calculate();\n        });\n    });\n\n    \/* \u2500\u2500 AUTO-CALCULATE \u2500\u2500 *\/\n    $('vc-form').addEventListener('input', calculate);\n    $('vc-form').addEventListener('change', calculate);\n\n    \/* \u2500\u2500 COPY \u2500\u2500 *\/\n    $('vc-copy-btn').addEventListener('click', function() {\n        var text = 'Shaft Radial Runout Calculation\\n' +\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'Grade: G' + $('vc-grade').value + '\\n' +\n            'Speed: ' + $('vc-speed').value + ' RPM\\n' +\n            'Unbalance-equivalent TIR (screening): ' + $('vc-r-tir').textContent + '\\n' +\n            'Eccentricity: ' + $('vc-r-ecc').textContent + '\\n' +\n            'Unbalance: ' + $('vc-r-unbal').textContent + '\\n' +\n            '\u03c9: ' + $('vc-r-omega').textContent + '\\n' +\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'vibromera.eu\/calculators\/shaft-radial-runout\/';\n\n        if (navigator.clipboard) {\n            navigator.clipboard.writeText(text).then(function() {\n                var btn = $('vc-copy-btn');\n                btn.classList.add('vc-copied');\n                btn.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!';\n                setTimeout(function() {\n                    btn.classList.remove('vc-copied');\n                    btn.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';\n                }, 2000);\n            });\n        }\n    });\n\n    \/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\n    document.querySelectorAll('.vc-section-toggle').forEach(function(btn) {\n        btn.addEventListener('click', function() {\n            var section = this.closest('.vc-section');\n            var isOpen = section.classList.contains('vc-open');\n            section.classList.toggle('vc-open');\n            this.setAttribute('aria-expanded', !isOpen);\n        });\n    });\n\n    \/* \u2500\u2500 FAQ \u2500\u2500 *\/\n    var faqData = [\n        { q: 'What is radial runout on a shaft?', a: '<p>Radial runout (TIR \u2014 Total Indicator Reading) is the total variation in distance measured from a shaft surface to a fixed reference point as the shaft rotates one full revolution. It indicates how much the shaft deviates from perfect concentricity. TIR equals twice the eccentricity.<\/p>' },\n        { q: 'How do I measure runout with a dial indicator?', a: '<p>Mount the shaft on V-blocks or between centers, place a dial indicator perpendicular to the shaft surface, zero the indicator, then slowly rotate the shaft one full revolution. The total needle movement (max minus min) is the TIR.<\/p>' },\n        { q: 'What causes excessive radial runout?', a: '<p>Common causes include:<\/p><ul><li>Bent shaft from thermal distortion or impact<\/li><li>Manufacturing eccentricity (turning error)<\/li><li>Bearing journal wear or damage<\/li><li>Improper coupling alignment<\/li><li>Assembly errors (misaligned press-fit components)<\/li><\/ul>' },\n        { q: 'What is the relationship between runout and unbalance?', a: '<p>If the mass centre of a rotor is displaced by eccentricity e, the equivalent unbalance is U = e \u00d7 m, where m is rotor mass. Journal runout can displace the mass centre and thus contribute to unbalance. However, not all unbalance comes from runout (mass distribution matters too), and measured TIR can include form error, bend, bearing seating or setup error that does not translate one-to-one into unbalance.<\/p>' },\n        { q: 'What is acceptable runout for different applications?', a: '<p>The geometric runout tolerance comes from the shaft drawing or the manufacturer\\'s specification \u2014 ISO 21940-11 sets unbalance limits, not runout tolerances. As balance-risk screening values (TIR equivalent to the residual unbalance limit):<\/p><ul><li><strong>G6.3 \/ 3000 RPM:<\/strong> TIR \u2248 40 \u03bcm<\/li><li><strong>G1.0 \/ 6000 RPM:<\/strong> TIR \u2248 3.2 \u03bcm<\/li><li><strong>G6.3 \/ 1500 RPM:<\/strong> TIR \u2248 80 \u03bcm<\/li><\/ul><p>Always calculate for your specific conditions and check the drawing tolerance.<\/p>' }\n    ];\n\n    var faqList = $('vc-faq-list');\n    faqData.forEach(function(faq) {\n        faqList.innerHTML += '<div class=\"vc-faq-item\"><button type=\"button\" class=\"vc-faq-q\"><span>' + faq.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\">' + faq.a + '<\/div><\/div><\/div>';\n    });\n    faqList.addEventListener('click', function(e) {\n        var btn = e.target.closest('.vc-faq-q');\n        if (!btn) return;\n        btn.closest('.vc-faq-item').classList.toggle('vc-open');\n    });\n\n    \/* \u2500\u2500 HISTORY \u2500\u2500 *\/\n    function saveHistory(entry) {\n        var key = 'vc_history_' + SLUG;\n        var arr = [];\n        try { arr = JSON.parse(localStorage.getItem(key)) || []; } catch(e) {}\n        entry._ts = new Date().toISOString();\n        arr.unshift(entry);\n        if (arr.length > 10) arr = arr.slice(0, 10);\n        try { localStorage.setItem(key, JSON.stringify(arr)); } catch(e) {}\n    }\n\n    \/* \u2500\u2500 URL PARAMS \u2500\u2500 *\/\n    function loadParams() {\n        var p = new URLSearchParams(window.location.search);\n        var map = { grade: 'vc-grade', speed: 'vc-speed', diameter: 'vc-diameter', mass: 'vc-mass', measured: 'vc-measured' };\n        Object.keys(map).forEach(function(k) {\n            var v = p.get(k);\n            if (v) $(map[k]).value = v;\n        });\n    }\n\n    \/* \u2500\u2500 KATEX \u2500\u2500 *\/\n    function renderFormulas() {\n        try {\n            katex.render('e_{per} = \\\\frac{G \\\\times 1000}{\\\\omega} = \\\\frac{G \\\\times 1000}{2\\\\pi n \/ 60} \\\\quad [\\\\mu m]', $('vc-katex-1'), { displayMode: true, throwOnError: false });\n            katex.render('TIR = 2 \\\\times e_{per} \\\\quad [\\\\mu m]', $('vc-katex-2'), { displayMode: true, throwOnError: false });\n            katex.render('U_{per} = e_{per} \\\\times m \\\\quad [g \\\\cdot mm]', $('vc-katex-3'), { displayMode: true, throwOnError: false });\n        } catch(e) {}\n    }\n\n    \/* \u2500\u2500 INIT \u2500\u2500 *\/\n    function init() {\n        try {\n            var saved = localStorage.getItem('vc_units');\n            if (saved === 'imperial') {\n                unitSystem = 'imperial';\n                unitBtns.forEach(function(b) { b.classList.toggle('vc-active', b.getAttribute('data-system') === 'imperial'); });\n                $('vc-mass-hint').textContent = '(lb)';\n                $('vc-diam-hint').textContent = '(in)';\n                $('vc-meas-hint').textContent = '(mils TIR)';\n            }\n        } catch(e) {}\n\n        loadParams();\n        renderFormulas();\n        calculate();\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', init);\n    } else {\n        init();\n    }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\u09ad\u09be\u09b0\u09b8\u09be\u09ae\u09cd\u09af \u0997\u09cd\u09b0\u09c7\u09a1 \u098f\u09ac\u0982 \u0985\u09aa\u09be\u09b0\u09c7\u099f\u09bf\u0982 \u0997\u09a4\u09bf\u09b0 \u0989\u09aa\u09b0 \u09ad\u09bf\u09a4\u09cd\u09a4\u09bf \u0995\u09b0\u09c7 \u0985\u09a8\u09c1\u09ae\u09a4\u09bf\u09aa\u09cd\u09b0\u09be\u09aa\u09cd\u09a4 \u09b6\u09be\u09ab\u099f \u09b0\u09c7\u09a1\u09bf\u09af\u09bc\u09be\u09b2 \u09b0\u09be\u09a8\u0986\u0989\u099f (TIR) \u0997\u09a3\u09a8\u09be \u0995\u09b0\u09c1\u09a8\u0964 ISO 21940 \u09b8\u09c0\u09ae\u09be\u09b0 \u09ac\u09bf\u09b0\u09c1\u09a6\u09cd\u09a7\u09c7 \u09aa\u09b0\u09bf\u09ae\u09be\u09aa \u0995\u09b0\u09be \u09b0\u09be\u09a8\u0986\u0989\u099f \u09a4\u09c1\u09b2\u09a8\u09be \u0995\u09b0\u09c1\u09a8\u0964<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100224","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100224","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":3,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100224\/revisions"}],"predecessor-version":[{"id":102020,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100224\/revisions\/102020"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/media?parent=100224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/categories?post=100224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/tags?post=100224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}