{"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-15T11:26:01","modified_gmt":"2026-07-15T11:26:01","slug":"shaft-radial-runout","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/bg\/calculators\/shaft-radial-runout\/","title":{"rendered":"Documented Single-Trace Radial Indicator Worksheet"},"content":{"rendered":"\n<style>\n.vbm224{--ink:#172235;--muted:#556276;--line:#d8e0e9;--soft:#f4f7fa;--blue:#135ca8;--blue2:#0d447e;--amber:#8a5700;--amber-bg:#fff7df;--red:#a52828;--red-bg:#fff0f0;--green:#17613a;--green-bg:#edf9f1;max-width:1040px;margin:0 auto;padding:18px 14px 44px;color:var(--ink);font:15px\/1.55 system-ui,-apple-system,\"Segoe UI\",sans-serif}.vbm224 *{box-sizing:border-box}.vbm224 h1,.vbm224 h2,.vbm224 h3{line-height:1.2}.vbm224 h1{font-size:clamp(27px,4vw,42px);margin:8px 0 12px}.vbm224 h2{font-size:22px;margin:0 0 16px}.vbm224 h3{font-size:17px;margin:22px 0 8px}.vbm224 p{margin:8px 0}.vbm224 a{color:var(--blue)}.vbm224-header{text-align:center;padding:32px 18px 26px}.vbm224-kicker{color:var(--blue);font-weight:750;text-transform:uppercase;letter-spacing:.11em;font-size:12px}.vbm224-lead{max-width:820px;margin:0 auto!important;color:var(--muted);font-size:17px}.vbm224-badges{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:18px}.vbm224-badge{border:1px solid var(--line);border-radius:999px;padding:5px 10px;background:#fff;font-size:12px;font-weight:700}.vbm224-notice{border-left:4px solid var(--amber);background:var(--amber-bg);padding:14px 16px;border-radius:8px;margin:0 0 20px}.vbm224-card{border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 4px 18px rgba(20,45,75,.07);padding:22px;margin:18px 0}.vbm224-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.vbm224-field{min-width:0}.vbm224-field.full{grid-column:1\/-1}.vbm224 label{display:block;font-weight:720;margin-bottom:5px}.vbm224-hint{display:block;color:var(--muted);font-weight:400;font-size:12px}.vbm224 input[type=text],.vbm224 select,.vbm224 textarea{width:100%;min-height:44px;border:1px solid #aebac8;border-radius:8px;background:#fff;color:var(--ink);font:inherit;padding:9px 11px}.vbm224 textarea{min-height:104px;resize:vertical}.vbm224 input:focus,.vbm224 select:focus,.vbm224 textarea:focus{outline:3px solid rgba(19,92,168,.18);border-color:var(--blue)}.vbm224-checks{display:grid;gap:10px;margin:18px 0}.vbm224-check{display:grid!important;grid-template-columns:auto 1fr;gap:9px;align-items:start;font-weight:500!important}.vbm224-check input{margin-top:4px}.vbm224-actions{display:flex;gap:10px;flex-wrap:wrap}.vbm224 button{border:0;border-radius:9px;padding:11px 17px;font:inherit;font-weight:760;cursor:pointer}.vbm224-primary{background:var(--blue);color:#fff}.vbm224-primary:hover{background:var(--blue2)}.vbm224-secondary{background:#e8eef5;color:var(--ink)}.vbm224-error{display:none;margin-top:14px;padding:11px 13px;border:1px solid #edb5b5;border-radius:8px;background:var(--red-bg);color:var(--red);font-weight:650}.vbm224-error.show{display:block}.vbm224-results{display:none}.vbm224-results.show{display:block}.vbm224-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.vbm224-result{border:1px solid var(--line);border-radius:10px;background:var(--soft);padding:13px}.vbm224-result.primary{grid-column:1\/-1;border-color:#7dacda;background:#eef6ff}.vbm224-result-label{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.vbm224-result-value{font:700 18px\/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;margin-top:4px}.vbm224-result.primary .vbm224-result-value{font-size:23px;color:var(--blue2)}.vbm224-status{margin-top:14px;border-left:4px solid var(--green);background:var(--green-bg);padding:12px 14px}.vbm224-formula{overflow-x:auto;border:1px solid var(--line);border-radius:9px;background:var(--soft);padding:12px 14px;margin:10px 0;font:600 14px\/1.7 ui-monospace,SFMono-Regular,Consolas,monospace}.vbm224 table{width:100%;border-collapse:collapse;margin:12px 0}.vbm224 th,.vbm224 td{border:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top}.vbm224 th{background:#eaf0f6}.vbm224 ul{padding-left:22px}.vbm224 details{border-top:1px solid var(--line);padding:11px 0}.vbm224 summary{cursor:pointer;font-weight:760}.vbm224-small{font-size:13px;color:var(--muted)}\n@media(max-width:700px){.vbm224{padding-left:10px;padding-right:10px}.vbm224-card{padding:16px}.vbm224-grid,.vbm224-result-grid{grid-template-columns:1fr}.vbm224-result.primary,.vbm224-field.full{grid-column:auto}.vbm224 table{display:block;overflow-x:auto;white-space:normal}}\n<\/style>\n<main class=\"vbm224\">\n  <header class=\"vbm224-header\">\n    <p class=\"vbm224-kicker\">Measurement-data worksheet \u00b7 one radial trace<\/p>\n    <h1>Documented Single-Trace Radial Indicator Worksheet<\/h1>\n    <p class=\"vbm224-lead\">Reduce equally spaced radial indicator readings from one complete revolution to an observed sampled range and a first-harmonic diagnostic, while preserving the datum, setup and instrument record.<\/p>\n    <div class=\"vbm224-badges\"><span class=\"vbm224-badge\">Max \u2212 min trace<\/span><span class=\"vbm224-badge\">NIST single-trace fit<\/span><span class=\"vbm224-badge\">No ISO balance conversion<\/span><\/div>\n  <\/header>\n\n  <div class=\"vbm224-notice\"><strong>Not a conformance or balancing verdict.<\/strong> This worksheet does not establish a geometric runout tolerance, prove compliance with ISO 1101, replace an ASME B89 measurement procedure, or convert shaft-surface readings into ISO 21940 residual unbalance. The applicable drawing, datum simulation, measurement plan, uncertainty and decision rule remain controlled project inputs.<\/div>\n\n  <form id=\"vbm224-form\" class=\"vbm224-card\" autocomplete=\"off\" novalidate>\n    <h2>Documented trace and setup<\/h2>\n    <div class=\"vbm224-grid\">\n      <div class=\"vbm224-field full\"><label for=\"vbm224-readings\">Equally spaced indicator readings over exactly one revolution <span class=\"vbm224-hint\">One signed plain decimal per line (or separated by semicolons); use a decimal point or decimal comma. Do not repeat the 0\u00b0 reading at 360\u00b0.<\/span><\/label><textarea id=\"vbm224-readings\" inputmode=\"decimal\" spellcheck=\"false\" placeholder=\"Example:&#10;10&#10;0&#10;-10&#10;0\" aria-describedby=\"vbm224-number-note\"><\/textarea><\/div>\n      <div class=\"vbm224-field\"><label for=\"vbm224-unit\">Reading unit<\/label><select id=\"vbm224-unit\"><option value=\"um\">\u00b5m<\/option><option value=\"mm\">mm<\/option><option value=\"mil\">mil (0.001 in)<\/option><\/select><\/div>\n      <p class=\"vbm224-field vbm224-small\" id=\"vbm224-number-note\">Four to 720 readings are accepted. Scientific notation, units inside the reading list and comma-separated lists are intentionally rejected because decimal comma is supported.<\/p>\n\n      <div class=\"vbm224-field\"><label for=\"vbm224-project\">Project \/ equipment<\/label><input id=\"vbm224-project\" type=\"text\" placeholder=\"required\"><\/div>\n      <div class=\"vbm224-field\"><label for=\"vbm224-feature\">Feature \/ shaft identifier<\/label><input id=\"vbm224-feature\" type=\"text\" placeholder=\"required\"><\/div>\n      <div class=\"vbm224-field\"><label for=\"vbm224-section\">Axial section \/ probe location<\/label><input id=\"vbm224-section\" type=\"text\" placeholder=\"required\"><\/div>\n      <div class=\"vbm224-field\"><label for=\"vbm224-datum\">Drawing datum \/ reference axis<\/label><input id=\"vbm224-datum\" type=\"text\" placeholder=\"required\"><\/div>\n      <div class=\"vbm224-field\"><label for=\"vbm224-setup\">Mounting, support and rotation method<\/label><input id=\"vbm224-setup\" type=\"text\" placeholder=\"required\"><\/div>\n      <div class=\"vbm224-field\"><label for=\"vbm224-instrument\">Instrument \/ probe \/ calibration ID<\/label><input id=\"vbm224-instrument\" type=\"text\" placeholder=\"required\"><\/div>\n      <div class=\"vbm224-field\"><label for=\"vbm224-resolution\">Resolution and uncertainty record<\/label><input id=\"vbm224-resolution\" type=\"text\" placeholder=\"required\"><\/div>\n      <div class=\"vbm224-field\"><label for=\"vbm224-sampling\">Sampling \/ angle-index method<\/label><input id=\"vbm224-sampling\" type=\"text\" placeholder=\"required\"><\/div>\n      <div class=\"vbm224-field\"><label for=\"vbm224-prepared\">Prepared \/ reviewed by<\/label><input id=\"vbm224-prepared\" type=\"text\" placeholder=\"required\"><\/div>\n      <div class=\"vbm224-field\"><label for=\"vbm224-date\">Record date<\/label><input id=\"vbm224-date\" type=\"text\" placeholder=\"YYYY-MM-DD\"><\/div>\n      <div class=\"vbm224-field full\"><label for=\"vbm224-notes\">Notes <span class=\"vbm224-hint\">Optional: temperature, surface condition, repeat number, rotation direction, drawing callout<\/span><\/label><textarea id=\"vbm224-notes\"><\/textarea><\/div>\n    <\/div>\n    <div class=\"vbm224-checks\">\n      <label class=\"vbm224-check\"><input type=\"checkbox\" id=\"vbm224-c1\"><span>The list contains one complete revolution at equal angular increments, from one axial section, with no duplicated endpoint.<\/span><\/label>\n      <label class=\"vbm224-check\"><input type=\"checkbox\" id=\"vbm224-c2\"><span>Probe position, sign convention, zero, unit, support and rotation method remained unchanged throughout the trace.<\/span><\/label>\n      <label class=\"vbm224-check\"><input type=\"checkbox\" id=\"vbm224-c3\"><span>The documented datum simulation, seating, surface condition, instrument status and sampling density are appropriate for the intended measurement record.<\/span><\/label>\n      <label class=\"vbm224-check\"><input type=\"checkbox\" id=\"vbm224-c4\"><span>I understand that sampled range can miss unsampled extrema and that the first harmonic does not by itself separate workpiece form, setup\/spindle error, centre offset or rotor mass unbalance.<\/span><\/label>\n    <\/div>\n    <div class=\"vbm224-actions\"><button type=\"submit\" class=\"vbm224-primary\">Reduce documented trace<\/button><button type=\"button\" class=\"vbm224-secondary\" id=\"vbm224-clear\">Clear<\/button><\/div>\n    <div id=\"vbm224-error\" class=\"vbm224-error\" role=\"alert\"><\/div>\n  <\/form>\n\n  <section id=\"vbm224-results\" class=\"vbm224-card vbm224-results\" aria-live=\"polite\">\n    <h2>Reference results<\/h2>\n    <div class=\"vbm224-result-grid\">\n      <div class=\"vbm224-result primary\"><div class=\"vbm224-result-label\">Observed sampled indicator spread (max \u2212 min)<\/div><div class=\"vbm224-result-value\" id=\"vbm224-r-range\">\u2014<\/div><\/div>\n      <div class=\"vbm224-result\"><div class=\"vbm224-result-label\">Half of sampled range (not automatically eccentricity)<\/div><div class=\"vbm224-result-value\" id=\"vbm224-r-half\">\u2014<\/div><\/div>\n      <div class=\"vbm224-result\"><div class=\"vbm224-result-label\">First-harmonic amplitude<\/div><div class=\"vbm224-result-value\" id=\"vbm224-r-h1\">\u2014<\/div><\/div>\n      <div class=\"vbm224-result\"><div class=\"vbm224-result-label\">First-harmonic peak-to-peak<\/div><div class=\"vbm224-result-value\" id=\"vbm224-r-h1pp\">\u2014<\/div><\/div>\n      <div class=\"vbm224-result\"><div class=\"vbm224-result-label\">First-harmonic maximum phase<\/div><div class=\"vbm224-result-value\" id=\"vbm224-r-phase\">\u2014<\/div><\/div>\n      <div class=\"vbm224-result\"><div class=\"vbm224-result-label\">Residual sampled range after mean + first harmonic<\/div><div class=\"vbm224-result-value\" id=\"vbm224-r-residual\">\u2014<\/div><\/div>\n      <div class=\"vbm224-result\"><div class=\"vbm224-result-label\">Minimum \/ maximum reading<\/div><div class=\"vbm224-result-value\" id=\"vbm224-r-minmax\">\u2014<\/div><\/div>\n      <div class=\"vbm224-result\"><div class=\"vbm224-result-label\">Mean reading<\/div><div class=\"vbm224-result-value\" id=\"vbm224-r-mean\">\u2014<\/div><\/div>\n      <div class=\"vbm224-result\"><div class=\"vbm224-result-label\">Samples \/ nominal angular increment<\/div><div class=\"vbm224-result-value\" id=\"vbm224-r-samples\">\u2014<\/div><\/div>\n    <\/div>\n    <div class=\"vbm224-status\" id=\"vbm224-r-status\"><\/div>\n  <\/section>\n\n  <section class=\"vbm224-card\">\n    <h2>Equations and meaning<\/h2>\n    <p>For N equally spaced readings y\u1d62 at \u03b8\u1d62 = 2\u03c0i\/N, the direct trace reduction is:<\/p>\n    <div class=\"vbm224-formula\">sampled spread = max(y\u1d62) \u2212 min(y\u1d62)<br>half-range = sampled spread \/ 2<\/div>\n    <p>Following the NIST single-trace least-squares construction:<\/p>\n    <div class=\"vbm224-formula\">mean = (1\/N) \u03a3y\u1d62<br>a = (2\/N) \u03a3[y\u1d62 cos(\u03b8\u1d62)]<br>b = (2\/N) \u03a3[y\u1d62 sin(\u03b8\u1d62)]<br>first-harmonic amplitude = \u221a(a\u00b2 + b\u00b2)<br>\u0394\u1d62 = y\u1d62 \u2212 mean \u2212 a cos(\u03b8\u1d62) \u2212 b sin(\u03b8\u1d62)<\/div>\n    <p>The first-harmonic phase is reported relative to the first reading and the recorded rotation direction. The residual range is max(\u0394\u1d62) \u2212 min(\u0394\u1d62). All are descriptive results from the entered samples; no tolerance, uncertainty allowance or acceptance decision is generated.<\/p>\n    <h3>Dimensional check<\/h3>\n    <p>Trigonometric terms and N are dimensionless, so mean, a, b, harmonic amplitude, residuals and ranges retain the reading unit. Exact conversions used are 1 mm = 1000 \u00b5m and 1 mil = 25.4 \u00b5m.<\/p>\n  <\/section>\n\n  <section class=\"vbm224-card\">\n    <h2>Model boundary<\/h2>\n    <ul>\n      <li><strong>Sampled trace, not continuous extrema.<\/strong> Unless the actual continuous maximum and minimum were captured, the discrete range can underestimate the one-revolution indicator movement. Increase angular density or use a validated continuous acquisition method.<\/li>\n      <li><strong>One section, not total runout.<\/strong> Readings at one fixed axial section do not establish total runout of the complete surface. Exact drawing interpretation and conformance require the controlled ISO 1101 or applicable drawing standard.<\/li>\n      <li><strong>Setup is part of the result.<\/strong> The datum\/reference axis, mounting, support deformation, seating, probe direction, surface form, dirt\/burrs, instrument error and spindle\/error motion can affect the trace.<\/li>\n      <li><strong>Half-range is not generally eccentricity.<\/strong> It equals centre offset only for the idealized case where a perfect circular feature has pure centre offset relative to the rotation\/reference axis and other harmonics\/errors are absent.<\/li>\n      <li><strong>No residual-unbalance conversion.<\/strong> ISO 21940-11 concerns residual mass unbalance of rotors with rigid behaviour. A journal surface trace is not a measurement of the rotor mass-centre distribution; the former TIR = 2e<sub>per<\/sub> G-grade screening path has been removed.<\/li>\n      <li><strong>No acceptance decision.<\/strong> Drawing tolerance, measurement uncertainty, guard band and decision rule remain external. Exact clauses and tolerance values are <code>NEEDS_LICENSED_SOURCE<\/code> unless a controlled document is supplied.<\/li>\n    <\/ul>\n  <\/section>\n\n  <section class=\"vbm224-card\">\n    <h2>Source traceability<\/h2>\n    <table><thead><tr><th>Claim<\/th><th>Classification<\/th><th>Evidence<\/th><\/tr><\/thead><tbody>\n      <tr><td>Single-trace equally spaced least-squares mean, cosine\/sine coefficients and residual<\/td><td>Published public metrology method; not an ISO formula<\/td><td><a href=\"https:\/\/www.itl.nist.gov\/div898\/handbook\/mpc\/section3\/mpc3441.htm\" rel=\"noopener\" target=\"_blank\">NIST\/SEMATECH e-Handbook, 2.3.4.4.1 Single-trace roundness design<\/a><\/td><\/tr>\n      <tr><td>A single trace cannot separate spindle error from workpiece error<\/td><td>Published NIST limitation<\/td><td>Same NIST\/SEMATECH section; weakness of the single-trace method<\/td><\/tr>\n      <tr><td>Dynamic radial surface displacement can contain spindle error motion, form, alignment and vibration contributions<\/td><td>Published NIST research summary<\/td><td><a href=\"https:\/\/www.nist.gov\/publications\/technique-measuring-radial-error-motions-ultra-high-speed-miniature-spindles-used\" rel=\"noopener\" target=\"_blank\">NIST, Anandan et al., 2011<\/a><\/td><\/tr>\n      <tr><td>Geometrical runout specification framework<\/td><td>Current standard identification only; no clause or tolerance copied<\/td><td><a href=\"https:\/\/www.iso.org\/standard\/66777.html\" rel=\"noopener\" target=\"_blank\">ISO 1101:2017<\/a>, Edition 4, published and confirmed in 2022<\/td><\/tr>\n      <tr><td>Rigid-rotor residual-unbalance scope, not geometric shaft runout<\/td><td>Current standard scope\/status only<\/td><td><a href=\"https:\/\/www.iso.org\/standard\/54074.html\" rel=\"noopener\" target=\"_blank\">ISO 21940-11:2016<\/a> with <a href=\"https:\/\/www.iso.org\/standard\/78116.html\" rel=\"noopener\" target=\"_blank\">Amendment 1:2022<\/a>; under systematic review in 2026<\/td><\/tr>\n      <tr><td>Axes-of-rotation measurement methods<\/td><td>Current ASME identification\/scope only; exact procedure remains licensed<\/td><td><a href=\"https:\/\/www.asme.org\/codes-standards\/find-codes-standards\/axes-of-rotation-methods-for-specifying-and-testing\" rel=\"noopener\" target=\"_blank\">ASME B89.3.4-2010 (R2024)<\/a>, stabilized maintenance<\/td><\/tr>\n      <tr><td>1 in = 25.4 mm exactly<\/td><td>Exact SI conversion<\/td><td><a href=\"https:\/\/www.nist.gov\/pml\/special-publication-811\/nist-guide-si-appendix-b-conversion-factors\/nist-guide-si-appendix-b8\" rel=\"noopener\" target=\"_blank\">NIST SP 811, Appendix B.8<\/a><\/td><\/tr>\n    <\/tbody><\/table>\n    <p class=\"vbm224-small\"><strong>Accessed:<\/strong> 15 July 2026. Public sources establish the numerical reduction and standard scopes. They do not establish the project datum simulation, sampling density, uncertainty, tolerance or decision rule. Worksheet URL: https:\/\/vibromera.eu\/calculators\/shaft-radial-runout\/<\/p>\n    <h3>Reference sample trace<\/h3>\n    <p>For equally spaced readings [10, 0, \u221210, 0] \u00b5m starting at 0\u00b0, the exact analytic result is: sampled range 20 \u00b5m; mean 0; a = 10 \u00b5m; b = 0; first-harmonic amplitude 10 \u00b5m; phase 0\u00b0; residual range 0. This verifies the implementation algebra but is not a tolerance example.<\/p>\n  <\/section>\n\n  <section class=\"vbm224-card\">\n    <h2>Questions<\/h2>\n    <details><summary>Does TIR always equal twice eccentricity?<\/summary><p>No. Twice-centre-offset is an ideal special case for a perfect circle with pure offset. An actual indicator trace can contain form, datum\/setup, spindle\/error-motion and sampling contributions. This worksheet therefore labels range\/2 as half-range, not eccentricity.<\/p><\/details>\n    <details><summary>Can this trace be compared with ISO 21940 balance grade G?<\/summary><p>No direct conversion is made. ISO 21940-11 controls residual mass unbalance for rotors with rigid behaviour; a surface indicator trace does not locate the rotor mass centre. Balance must be measured and evaluated by the applicable controlled balancing procedure.<\/p><\/details>\n    <details><summary>Is one axial trace enough for total runout?<\/summary><p>No. This worksheet reduces one fixed-section trace only. The exact geometric specification, datum and verification procedure must come from the drawing and the applicable controlled standard.<\/p><\/details>\n    <details><summary>What value is acceptable?<\/summary><p>No universal value is generated. Use the controlled drawing or OEM tolerance together with a documented measurement uncertainty and decision rule. If the exact standard clause is unavailable, retain <code>NEEDS_LICENSED_SOURCE<\/code>.<\/p><\/details>\n  <\/section>\n<\/main>\n<script>\n(function(){\n'use strict';\nvar form=document.getElementById('vbm224-form'),error=document.getElementById('vbm224-error'),results=document.getElementById('vbm224-results');\nfunction parseReadings(value){var parts=String(value==null?'':value).split(\/\\r?\\n|;\/).map(function(x){return x.trim()}).filter(Boolean);if(parts.length<4)throw new Error('Enter at least four equally spaced readings.');if(parts.length>720)throw new Error('Enter no more than 720 readings.');return parts.map(function(s,i){if(!\/^[+-]?(?:\\d+(?:[.,]\\d*)?|[.,]\\d+)$\/.test(s))throw new Error('Reading '+(i+1)+' must be one signed plain decimal on its own line.');var n=Number(s.replace(',','.'));if(!Number.isFinite(n))throw new Error('Reading '+(i+1)+' is outside the finite numeric range.');return n})}\nfunction requiredText(id,label){var value=document.getElementById(id).value.trim();if(!value)throw new Error(label+' is required.');return value}\nfunction calculate(values){if(!['um','mm','mil'].includes(values.unit))throw new Error('Select a valid reading unit.');var factor=values.unit==='um'?1:values.unit==='mm'?1000:25.4,y=parseReadings(values.readings).map(function(v){return v*factor}),N=y.length,sum=0,a=0,b=0,min=Infinity,max=-Infinity;for(var i=0;i<N;i++){var t=2*Math.PI*i\/N,v=y[i];sum+=v;a+=v*Math.cos(t);b+=v*Math.sin(t);if(v<min)min=v;if(v>max)max=v}var mean=sum\/N;a=2*a\/N;b=2*b\/N;var amp=Math.hypot(a,b),phase=(Math.atan2(b,a)*180\/Math.PI+360)%360,rmin=Infinity,rmax=-Infinity;for(var j=0;j<N;j++){var th=2*Math.PI*j\/N,res=y[j]-mean-a*Math.cos(th)-b*Math.sin(th);if(res<rmin)rmin=res;if(res>rmax)rmax=res}var range=max-min,residual=rmax-rmin,tol=Math.max(1,Math.max.apply(null,y.map(Math.abs)))*Number.EPSILON*64;if(amp<=tol){a=0;b=0;amp=0;phase=null}if(residual<=tol)residual=0;var out=[mean,a,b,amp,range,min,max,residual,rmin,rmax,360\/N];if(!out.every(Number.isFinite))throw new Error('The trace reduction is outside the finite numeric range.');return{N:N,mean:mean,a:a,b:b,amp:amp,phase:phase,range:range,half:range\/2,min:min,max:max,residual:residual,step:360\/N}}\nfunction fmt(n){if(!Number.isFinite(n))return'\u2014';if(Object.is(n,-0)||n===0)return'0';var a=Math.abs(n);return(a>=1e8||a<1e-6?n.toExponential(7):n.toPrecision(8)).replace(\/(\\.\\d*?[1-9])0+(e|$)\/,'$1$2').replace(\/\\.0+(e|$)\/,'$1')}\nfunction lengthText(um){return fmt(um)+' \u00b5m \u00b7 '+fmt(um\/25.4)+' mil'}\nfunction setText(id,text){document.getElementById(id).textContent=text}\nfunction render(r){setText('vbm224-r-range',lengthText(r.range));setText('vbm224-r-half',lengthText(r.half));setText('vbm224-r-h1',lengthText(r.amp));setText('vbm224-r-h1pp',lengthText(2*r.amp));setText('vbm224-r-phase',r.phase===null?'not defined for zero first harmonic':fmt(r.phase)+'\u00b0 from sample 1');setText('vbm224-r-residual',lengthText(r.residual));setText('vbm224-r-minmax',lengthText(r.min)+' \/ '+lengthText(r.max));setText('vbm224-r-mean',lengthText(r.mean));setText('vbm224-r-samples',r.N+' \/ '+fmt(r.step)+'\u00b0');setText('vbm224-r-status','No tolerance, uncertainty allowance, ISO 21940 conversion or conformance verdict has been added. Project: '+requiredText('vbm224-project','Project \/ equipment')+'; feature: '+requiredText('vbm224-feature','Feature \/ shaft identifier')+'.');results.classList.add('show')}\nfunction setError(message){error.textContent=message;error.classList.add('show');results.classList.remove('show')}\nfunction clearError(){error.textContent='';error.classList.remove('show')}\nform.addEventListener('submit',function(e){e.preventDefault();clearError();try{['vbm224-project','vbm224-feature','vbm224-section','vbm224-datum','vbm224-setup','vbm224-instrument','vbm224-resolution','vbm224-sampling','vbm224-prepared','vbm224-date'].forEach(function(id){requiredText(id,document.querySelector('label[for=\"'+id+'\"]').textContent.trim())});['vbm224-c1','vbm224-c2','vbm224-c3','vbm224-c4'].forEach(function(id){if(!document.getElementById(id).checked)throw new Error('Confirm all four measurement and use statements.')});render(calculate({readings:document.getElementById('vbm224-readings').value,unit:document.getElementById('vbm224-unit').value}))}catch(ex){setError(ex.message||'Unable to reduce the trace.')}});\nform.addEventListener('keydown',function(e){if(e.key==='Enter'&&e.target.tagName!=='TEXTAREA'&&e.target.tagName!=='BUTTON'){e.preventDefault();form.requestSubmit()}});\ndocument.getElementById('vbm224-clear').addEventListener('click',function(){form.reset();form.querySelectorAll('input[type=text],textarea').forEach(function(el){el.value=''});results.classList.remove('show');clearError();document.getElementById('vbm224-readings').focus()});form.querySelectorAll('input,select,textarea').forEach(function(el){el.addEventListener('input',function(){results.classList.remove('show');clearError()})});\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Reduce equally spaced radial indicator readings from one revolution to a sampled range and first-harmonic diagnostic, without an invented runout tolerance or ISO balance conversion.<\/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\/bg\/wp-json\/wp\/v2\/calculator\/100224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/bg\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/bg\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":5,"href":"https:\/\/vibromera.eu\/bg\/wp-json\/wp\/v2\/calculator\/100224\/revisions"}],"predecessor-version":[{"id":102570,"href":"https:\/\/vibromera.eu\/bg\/wp-json\/wp\/v2\/calculator\/100224\/revisions\/102570"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/bg\/wp-json\/wp\/v2\/media?parent=100224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/bg\/wp-json\/wp\/v2\/categories?post=100224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/bg\/wp-json\/wp\/v2\/tags?post=100224"}],"curies":[{"name":"\u0440\u0430\u0431\u043e\u0442\u043d\u0430 \u0441\u0440\u0435\u0449\u0430","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}