{"id":100230,"date":"2026-02-15T20:28:31","date_gmt":"2026-02-15T20:28:31","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100230"},"modified":"2026-07-15T13:03:18","modified_gmt":"2026-07-15T13:03:18","slug":"soft-foot-calculator","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/da\/calculators\/soft-foot-calculator\/","title":{"rendered":"Machine-Foot Movement Record"},"content":{"rendered":"<p><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Controlled Machine-Foot Movement Record\",\"description\":\"Normalize and compare two documented signed movement readings at each machine foot. No universal soft-foot limit, type diagnosis, shim recommendation or alignment verdict.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/soft-foot-calculator\/\",\"applicationCategory\":\"EngineeringApplication\",\"operatingSystem\":\"Any\",\"isAccessibleForFree\":true,\"inLanguage\":\"en\"}<\/script><\/p>\n<style>\n.vbm230{--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}.vbm230 *{box-sizing:border-box}.vbm230 h1,.vbm230 h2,.vbm230 h3{line-height:1.2}.vbm230 h1{font-size:clamp(27px,4vw,42px);margin:8px 0 12px}.vbm230 h2{font-size:22px;margin:0 0 16px}.vbm230 h3{font-size:17px;margin:22px 0 8px}.vbm230 p{margin:8px 0}.vbm230 a{color:var(--blue)}.vbm230-header{text-align:center;padding:32px 18px 26px}.vbm230-kicker{color:var(--blue);font-weight:750;text-transform:uppercase;letter-spacing:.11em;font-size:12px}.vbm230-lead{max-width:850px;margin:0 auto!important;color:var(--muted);font-size:17px}.vbm230-badges{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:18px}.vbm230-badge{border:1px solid var(--line);border-radius:999px;padding:5px 10px;background:#fff;font-size:12px;font-weight:700}.vbm230-notice{border-left:4px solid var(--amber);background:var(--amber-bg);padding:14px 16px;border-radius:8px;margin:0 0 20px}.vbm230-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}.vbm230-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.vbm230-field{min-width:0}.vbm230-field.full{grid-column:1\/-1}.vbm230 label{display:block;font-weight:720;margin-bottom:5px}.vbm230-hint{display:block;color:var(--muted);font-weight:400;font-size:12px}.vbm230 input[type=text],.vbm230 select,.vbm230 textarea{width:100%;min-height:44px;border:1px solid #aebac8;border-radius:8px;background:#fff;color:var(--ink);font:inherit;padding:9px 11px}.vbm230 textarea{min-height:90px;resize:vertical}.vbm230 input:focus,.vbm230 select:focus,.vbm230 textarea:focus{outline:3px solid rgba(19,92,168,.18);border-color:var(--blue)}.vbm230-reading{display:grid;grid-template-columns:90px minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:end}.vbm230-reading>strong{padding-bottom:11px}.vbm230-checks{display:grid;gap:10px;margin:18px 0}.vbm230-check{display:grid!important;grid-template-columns:auto 1fr;gap:9px;align-items:start;font-weight:500!important}.vbm230-check input{margin-top:4px}.vbm230-actions{display:flex;gap:10px;flex-wrap:wrap}.vbm230 button{border:0;border-radius:9px;padding:11px 17px;font:inherit;font-weight:760;cursor:pointer}.vbm230-primary{background:var(--blue);color:#fff}.vbm230-primary:hover{background:var(--blue2)}.vbm230-secondary{background:#e8eef5;color:var(--ink)}.vbm230-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}.vbm230-error.show{display:block}.vbm230-results{display:none}.vbm230-results.show{display:block}.vbm230-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.vbm230-result{border:1px solid var(--line);border-radius:10px;background:var(--soft);padding:13px}.vbm230-result.primary{border-color:#7dacda;background:#eef6ff}.vbm230-result-label{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.vbm230-result-value{font:700 17px\/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;margin-top:4px}.vbm230-result.primary .vbm230-result-value{font-size:21px;color:var(--blue2)}.vbm230-status{margin-top:14px;border-left:4px solid var(--green);background:var(--green-bg);padding:12px 14px}.vbm230-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}.vbm230 table{width:100%;border-collapse:collapse;margin:12px 0}.vbm230 th,.vbm230 td{border:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top}.vbm230 th{background:#eaf0f6}.vbm230 ul{padding-left:22px}.vbm230 details{border-top:1px solid var(--line);padding:11px 0}.vbm230 summary{cursor:pointer;font-weight:760}.vbm230-small{font-size:13px;color:var(--muted)}\n@media(max-width:760px){.vbm230{padding-left:10px;padding-right:10px}.vbm230-card{padding:16px}.vbm230-grid,.vbm230-result-grid{grid-template-columns:1fr}.vbm230-field.full{grid-column:auto}.vbm230-reading{grid-template-columns:54px minmax(0,1fr) minmax(0,1fr)}.vbm230 table{display:block;overflow-x:auto}}\n<\/style>\n<p><main class=\"vbm230\"><\/p>\n<header class=\"vbm230-header\">\n<p class=\"vbm230-kicker\">Two documented release cycles \u00b7 signed readings \u00b7 controlled field method<\/p>\n<h1>Machine-Foot Movement Record<\/h1>\n<p class=\"vbm230-lead\">Normalize and compare repeated movement readings at each foot while preserving the instrument, mounting, bolt sequence, sign convention and acceptance-source record.<\/p>\n<div class=\"vbm230-badges\"><span class=\"vbm230-badge\">No universal 0.05 \/ 0.10 mm limits<\/span><span class=\"vbm230-badge\">No automatic shim thickness<\/span><span class=\"vbm230-badge\">No soft-foot type diagnosis<\/span><\/div>\n<\/header>\n<div class=\"vbm230-notice\"><strong>Arithmetic record only\u2014not a soft-foot diagnosis or correction instruction.<\/strong> A signed indicator\/laser change depends on the documented sensor direction, fixture and bolt-release procedure. The largest recorded response does not by itself prove a gap, identify parallel\/angular\/induced soft foot, establish cause, or equal the required shim.<\/div>\n<form id=\"vbm230-form\" class=\"vbm230-card\" autocomplete=\"off\" novalidate>\n<h2>Repeated movement readings<\/h2>\n<div class=\"vbm230-grid\">\n<div class=\"vbm230-field\"><label for=\"vbm230-feet\">Number of recorded feet<\/label><select id=\"vbm230-feet\"><option value=\"4\">4 feet<\/option><option value=\"6\">6 feet<\/option><\/select><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-unit\">Reading unit<\/label><select id=\"vbm230-unit\"><option value=\"mm\">mm<\/option><option value=\"mil\">mil (0.001 in)<\/option><option value=\"in\">in<\/option><\/select><\/div>\n<div class=\"vbm230-field full\"><span class=\"vbm230-hint\">Enter the signed change for two complete, independently repeated cycles using the controlled sign convention. Point or comma decimals are accepted.<\/span><\/div>\n<div class=\"vbm230-field full vbm230-reading\"><strong>Foot<\/strong><label for=\"vbm230-f1a\">Cycle 1<\/label><label for=\"vbm230-f1b\">Cycle 2<\/label><\/div>\n<div class=\"vbm230-field full vbm230-reading\"><strong>1<\/strong><input id=\"vbm230-f1a\" type=\"text\" inputmode=\"decimal\" aria-label=\"Foot 1 cycle 1\"><input id=\"vbm230-f1b\" type=\"text\" inputmode=\"decimal\" aria-label=\"Foot 1 cycle 2\"><\/div>\n<div class=\"vbm230-field full vbm230-reading\"><strong>2<\/strong><input id=\"vbm230-f2a\" type=\"text\" inputmode=\"decimal\" aria-label=\"Foot 2 cycle 1\"><input id=\"vbm230-f2b\" type=\"text\" inputmode=\"decimal\" aria-label=\"Foot 2 cycle 2\"><\/div>\n<div class=\"vbm230-field full vbm230-reading\"><strong>3<\/strong><input id=\"vbm230-f3a\" type=\"text\" inputmode=\"decimal\" aria-label=\"Foot 3 cycle 1\"><input id=\"vbm230-f3b\" type=\"text\" inputmode=\"decimal\" aria-label=\"Foot 3 cycle 2\"><\/div>\n<div class=\"vbm230-field full vbm230-reading\"><strong>4<\/strong><input id=\"vbm230-f4a\" type=\"text\" inputmode=\"decimal\" aria-label=\"Foot 4 cycle 1\"><input id=\"vbm230-f4b\" type=\"text\" inputmode=\"decimal\" aria-label=\"Foot 4 cycle 2\"><\/div>\n<div class=\"vbm230-field full vbm230-reading vbm230-extra\"><strong>5<\/strong><input id=\"vbm230-f5a\" type=\"text\" inputmode=\"decimal\" aria-label=\"Foot 5 cycle 1\"><input id=\"vbm230-f5b\" type=\"text\" inputmode=\"decimal\" aria-label=\"Foot 5 cycle 2\"><\/div>\n<div class=\"vbm230-field full vbm230-reading vbm230-extra\"><strong>6<\/strong><input id=\"vbm230-f6a\" type=\"text\" inputmode=\"decimal\" aria-label=\"Foot 6 cycle 1\"><input id=\"vbm230-f6b\" type=\"text\" inputmode=\"decimal\" aria-label=\"Foot 6 cycle 2\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-asset\">Asset \/ machine ID<\/label><input id=\"vbm230-asset\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-map\">Foot numbering \/ orientation map ID<\/label><input id=\"vbm230-map\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-machine\">Machine configuration and movable case<\/label><input id=\"vbm230-machine\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-method\">Controlled measurement procedure ID \/ revision<\/label><input id=\"vbm230-method\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-instrument\">Instrument \/ sensor model and serial<\/label><input id=\"vbm230-instrument\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-cal\">Calibration \/ verification ID and date<\/label><input id=\"vbm230-cal\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-resolution\">Resolution and measurement uncertainty<\/label><input id=\"vbm230-resolution\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-sign\">Sensor location, direction and sign convention<\/label><input id=\"vbm230-sign\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-fixture\">Fixture \/ reference and stability check<\/label><input id=\"vbm230-fixture\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-bolts\">Bolt condition, initial torque and tightening sequence<\/label><input id=\"vbm230-bolts\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-release\">Release amount \/ endpoint and dwell time<\/label><input id=\"vbm230-release\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-state\">Coupling, piping, conduit and process state<\/label><input id=\"vbm230-state\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-base\">Base, foot, shim\/chock and cleanliness inspection<\/label><input id=\"vbm230-base\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-temp\">Machine \/ ambient condition and temperature<\/label><input id=\"vbm230-temp\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-repeat\">Controlled repeatability criterion \/ source<\/label><input id=\"vbm230-repeat\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-accept\">Acceptance source, edition, clause and scope<\/label><input id=\"vbm230-accept\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-person\">Technician \/ reviewer<\/label><input id=\"vbm230-person\" type=\"text\" placeholder=\"required\"><\/div>\n<div class=\"vbm230-field\"><label for=\"vbm230-date\">Record date<\/label><input id=\"vbm230-date\" type=\"text\" placeholder=\"YYYY-MM-DD\"><\/div>\n<div class=\"vbm230-field full\"><label for=\"vbm230-notes\">Notes and observed direction\/cause evidence <span class=\"vbm230-hint\">Optional: feeler-gauge map, rocking\/contact pattern, pipe response, dirt\/burrs, looseness, repeat sequence, photographs<\/span><\/label><textarea id=\"vbm230-notes\"><\/textarea><\/div>\n<\/p><\/div>\n<div class=\"vbm230-checks\">\n   <label class=\"vbm230-check\"><input type=\"checkbox\" id=\"vbm230-c1\"><span>Isolation, stored-energy control, bolt release and personnel safety follow the site\/OEM procedure; this webpage does not authorize work on the machine.<\/span><\/label><br \/>\n   <label class=\"vbm230-check\"><input type=\"checkbox\" id=\"vbm230-c2\"><span>The sensor direction, sign convention, fixture stability, instrument condition and calibration\/verification are documented and valid for both cycles.<\/span><\/label><br \/>\n   <label class=\"vbm230-check\"><input type=\"checkbox\" id=\"vbm230-c3\"><span>Each cycle used the controlled one-foot-at-a-time release and full restoration sequence; coupling, piping, process, bolt and temperature state remained documented.<\/span><\/label><br \/>\n   <label class=\"vbm230-check\"><input type=\"checkbox\" id=\"vbm230-c4\"><span>The output is only repeated-reading arithmetic. A qualified reviewer will use the licensed\/current standard, OEM and site criteria plus physical inspection to diagnose and correct the condition.<\/span><\/label>\n  <\/div>\n<div class=\"vbm230-actions\"><button type=\"submit\" class=\"vbm230-primary\">Summarize documented readings<\/button><button type=\"button\" class=\"vbm230-secondary\" id=\"vbm230-clear\">Clear<\/button><\/div>\n<div id=\"vbm230-error\" class=\"vbm230-error\" role=\"alert\"><\/div>\n<\/p><\/form>\n<section id=\"vbm230-results\" class=\"vbm230-card vbm230-results\" aria-live=\"polite\">\n<h2>Repeated-reading summary<\/h2>\n<div class=\"vbm230-result-grid\">\n<div class=\"vbm230-result primary\">\n<div class=\"vbm230-result-label\">Largest absolute mean response<\/div>\n<div class=\"vbm230-result-value\" id=\"vbm230-r-largest\">\u2014<\/div>\n<\/div>\n<div class=\"vbm230-result\">\n<div class=\"vbm230-result-label\">Largest cycle-to-cycle difference<\/div>\n<div class=\"vbm230-result-value\" id=\"vbm230-r-repeat\">\u2014<\/div>\n<\/div>\n<div class=\"vbm230-result\">\n<div class=\"vbm230-result-label\">Recorded feet \/ unit<\/div>\n<div class=\"vbm230-result-value\" id=\"vbm230-r-count\">\u2014<\/div>\n<\/div><\/div>\n<table>\n<thead>\n<tr>\n<th>Foot<\/th>\n<th>Cycle 1<\/th>\n<th>Cycle 2<\/th>\n<th>Signed mean<\/th>\n<th>Absolute mean<\/th>\n<th>|Cycle 2 \u2212 Cycle 1|<\/th>\n<\/tr>\n<\/thead>\n<tbody id=\"vbm230-tbody\"><\/tbody>\n<\/table>\n<div class=\"vbm230-status\" id=\"vbm230-r-status\"><\/div>\n<\/section>\n<section class=\"vbm230-card\">\n<h2>Equations, units and classification<\/h2>\n<div class=\"vbm230-formula\">m<sub>i<\/sub> = (r<sub>i,1<\/sub> + r<sub>i,2<\/sub>) \/ 2<br \/>a<sub>i<\/sub> = |m<sub>i<\/sub>|<br \/>d<sub>i<\/sub> = |r<sub>i,2<\/sub> \u2212 r<sub>i,1<\/sub>|<\/div>\n<p>These are ordinary descriptive arithmetic, <strong>not formulas or acceptance criteria specified by ASA\/ANSI S2.75<\/strong>. The signed mean preserves the entered convention; absolute mean only ranks recorded magnitude; cycle difference only describes repeatability. 1 in = 25.4 mm exactly; 1 mil = 0.001 in = 0.0254 mm exactly.<\/p>\n<\/section>\n<section class=\"vbm230-card\">\n<h2>Model boundary and removed unsupported content<\/h2>\n<ul>\n<li><strong>No universal 0.05 \/ 0.10 mm traffic-light table.<\/strong> The former thresholds had no verified edition, clause, machine scope, method, sensor direction, uncertainty or boundary rule. Exact acceptance remains <strong>NEEDS_LICENSED_SOURCE<\/strong> plus controlled OEM\/site requirements.<\/li>\n<li><strong>No \u201creading = required shim\u201d formula.<\/strong> A bolt-release response can include fixture motion, frame\/base distortion, angular contact, debris\/burrs, pipe or conduit force, bolt effects and other interactions. Correction requires geometry and cause evidence.<\/li>\n<li><strong>No diagnosis from sign.<\/strong> Reversing indicator direction reverses sign. A negative value alone does not prove induced\/reactive soft foot, and a positive value alone does not prove a physical gap.<\/li>\n<li><strong>No worst-foot or all-feet-pass verdict.<\/strong> The output identifies only the largest recorded absolute mean and repeat difference. It does not establish acceptability, root cause, machine alignment or work priority.<\/li>\n<li><strong>No universal three-type\/correction prescription.<\/strong> SKF public guidance distinguishes parallel and angular contact and recommends four feeler-gauge values per foot to determine the type; scalar movement alone cannot supply that contact map.<\/li>\n<li><strong>No unverified work instruction.<\/strong> Release amount, torque, sequence, coupling\/piping\/process state, measurement direction, safety controls and recheck criteria must come from the controlled procedure and equipment documentation.<\/li>\n<\/ul>\n<\/section>\n<section class=\"vbm230-card\">\n<h2>Source traceability<\/h2>\n<table>\n<thead>\n<tr>\n<th>Claim<\/th>\n<th>Classification<\/th>\n<th>Evidence<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>ASA\/ANSI S2.75-2017\/Part 1 is the current reaffirmed horizontal flexible-coupled shaft-alignment methodology; its public scope includes machinery mounting conditions that affect alignment.<\/td>\n<td>Official status and public scope only<\/td>\n<td><a href=\"https:\/\/asastandards.org\/catalog\/\" target=\"_blank\" rel=\"noopener\">ASA catalogue: S2.75-2017\/Part 1 (R2025)<\/a>; exact clauses and criteria require the licensed document<\/td>\n<\/tr>\n<tr>\n<td>Acoem states that soft foot is corrected before shaft alignment and its AT-010 directly measures movement\/play at the machine foot as the bolt is released.<\/td>\n<td>Official manufacturer application guidance<\/td>\n<td><a href=\"https:\/\/www.acoem.com\/en\/products\/shaft-alignment-tools\/at-010\/\" target=\"_blank\" rel=\"noopener\">Acoem AT-010 \/ True Softcheck<\/a><\/td>\n<\/tr>\n<tr>\n<td>SKF defines soft foot as a machine not resting solidly, distinguishes parallel and angular forms, and recommends feeler gauges with four values per foot to determine type precisely.<\/td>\n<td>Official manufacturer maintenance guidance<\/td>\n<td><a href=\"https:\/\/www.skf.com\/binaries\/pub12\/Images\/0901d1968013be94-SKF-bearing-maintenance-handbook---10001_1-EN%281%29_tcm_12-463040.pdf\" target=\"_blank\" rel=\"noopener\">SKF Bearing Maintenance Handbook, p. 162<\/a><\/td>\n<\/tr>\n<tr>\n<td>m=(r1+r2)\/2, a=|m| and d=|r2\u2212r1|<\/td>\n<td>General descriptive arithmetic; not a standard acceptance model<\/td>\n<td>Direct mean, magnitude and absolute-difference definitions shown above<\/td>\n<\/tr>\n<tr>\n<td>1 in = 25.4 mm exactly and 1 mil = 0.0254 mm exactly<\/td>\n<td>Exact unit conversion<\/td>\n<td><a href=\"https:\/\/www.nist.gov\/pml\/special-publication-811\" target=\"_blank\" rel=\"noopener\">NIST SP 811, Appendix B.8<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"vbm230-small\"><strong>Accessed:<\/strong> 15 July 2026. Public sources support scope and measurement cautions, not the former numeric limits, automatic shim value, diagnosis or pass\/fail logic.<\/p>\n<\/section>\n<section class=\"vbm230-card\">\n<h2>Arithmetic reference example<\/h2>\n<p>For Foot 1 readings +0.04 mm and +0.06 mm, the signed mean is +0.05 mm, absolute mean is 0.05 mm and cycle difference is 0.02 mm. These values demonstrate the arithmetic only; no soft-foot diagnosis, tolerance or shim thickness follows.<\/p>\n<\/section>\n<section class=\"vbm230-card\">\n<h2>Questions<\/h2>\n<details>\n<summary>Why are there no green, yellow and red limits?<\/summary>\n<p>The former limits were not tied to a verified standard clause, measurement method, machine scope or uncertainty rule. Enter the applicable controlled criterion in the record and let the qualified reviewer apply it.<\/p>\n<\/details>\n<details>\n<summary>Does the largest absolute mean identify the foot to shim?<\/summary>\n<p>No. It only identifies the largest magnitude among the entered repeated readings. Physical contact mapping, cause investigation and controlled correction are separate.<\/p>\n<\/details>\n<details>\n<summary>Why preserve signed readings?<\/summary>\n<p>Discarding sign loses information, while assigning a universal meaning to sign is also unsafe because sensor direction and convention vary. This record requires that convention to be documented.<\/p>\n<\/details>\n<\/section>\n<p><\/main><br \/>\n<script>\n(function(){'use strict';\nvar form=document.getElementById('vbm230-form'),error=document.getElementById('vbm230-error'),results=document.getElementById('vbm230-results'),tbody=document.getElementById('vbm230-tbody');\nfunction parseDecimal(value,label){var s=String(value==null?'':value).trim();if(!\/^[+-]?(?:\\d+(?:[.,]\\d*)?|[.,]\\d+)$\/.test(s))throw new Error(label+' must be one signed plain decimal using a point or comma.');var n=Number(s.replace(',','.'));if(!Number.isFinite(n))throw new Error(label+' 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 unitFactor(unit){if(unit==='mm')return 1;if(unit==='mil')return .0254;if(unit==='in')return 25.4;throw new Error('Select a valid reading unit.')}\nfunction calculate(values){var count=Number(values.count),factor=unitFactor(values.unit);if(!(count===4||count===6))throw new Error('Select 4 or 6 recorded feet.');if(!Array.isArray(values.readings)||values.readings.length!==count)throw new Error('Provide two readings for every selected foot.');var rows=values.readings.map(function(pair,index){if(!Array.isArray(pair)||pair.length!==2)throw new Error('Foot '+(index+1)+' requires two readings.');var r1=parseDecimal(pair[0],'Foot '+(index+1)+' cycle 1')*factor,r2=parseDecimal(pair[1],'Foot '+(index+1)+' cycle 2')*factor,mean=(r1+r2)\/2,absMean=Math.abs(mean),difference=Math.abs(r2-r1);if(![r1,r2,mean,absMean,difference].every(Number.isFinite))throw new Error('Foot '+(index+1)+' result is outside the finite numeric range.');return{foot:index+1,r1:r1,r2:r2,mean:mean,absMean:absMean,difference:difference}}),largest=rows.reduce(function(a,b){return b.absMean>a.absMean?b:a}),repeat=rows.reduce(function(a,b){return b.difference>a.difference?b:a});return{count:count,unit:values.unit,rows:rows,largest:largest,repeat:repeat}}\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(9)).replace(\/(\\.\\d*?[1-9])0+(e|$)\/,'$1$2').replace(\/\\.0+(e|$)\/,'$1')}\nfunction signed(n){return n>0?'+'+fmt(n):fmt(n)}function length(mm,isSigned){return(isSigned?signed(mm):fmt(mm))+' mm \u00b7 '+(isSigned?signed(mm\/25.4):fmt(mm\/25.4))+' in \u00b7 '+(isSigned?signed(mm\/.0254):fmt(mm\/.0254))+' mil'}function setText(id,text){document.getElementById(id).textContent=text}\nfunction render(r){tbody.textContent='';r.rows.forEach(function(row){var tr=document.createElement('tr');[String(row.foot),length(row.r1,true),length(row.r2,true),length(row.mean,true),length(row.absMean,false),length(row.difference,false)].forEach(function(value){var td=document.createElement('td');td.textContent=value;tr.appendChild(td)});tbody.appendChild(tr)});setText('vbm230-r-largest','Foot '+r.largest.foot+' \u00b7 '+length(r.largest.absMean,false));setText('vbm230-r-repeat','Foot '+r.repeat.foot+' \u00b7 '+length(r.repeat.difference,false));setText('vbm230-r-count',r.count+' feet \u00b7 entered in '+r.unit);setText('vbm230-r-status','Descriptive repeated-reading arithmetic only. No threshold, uncertainty decision, soft-foot type, root cause, shim\/chock correction, alignment tolerance or acceptance verdict has been generated. Asset: '+requiredText('vbm230-asset','Asset \/ machine ID')+'; method: '+requiredText('vbm230-method','Controlled measurement procedure ID \/ revision')+'.');results.classList.add('show')}\nfunction setError(message){error.textContent=message;error.classList.add('show');results.classList.remove('show')}function clearError(){error.textContent='';error.classList.remove('show')}\nfunction updateFeet(){var six=document.getElementById('vbm230-feet').value==='6';form.querySelectorAll('.vbm230-extra').forEach(function(row){row.hidden=!six});results.classList.remove('show');clearError()}\nform.addEventListener('submit',function(e){e.preventDefault();clearError();try{['vbm230-asset','vbm230-map','vbm230-machine','vbm230-method','vbm230-instrument','vbm230-cal','vbm230-resolution','vbm230-sign','vbm230-fixture','vbm230-bolts','vbm230-release','vbm230-state','vbm230-base','vbm230-temp','vbm230-repeat','vbm230-accept','vbm230-person','vbm230-date'].forEach(function(id){requiredText(id,document.querySelector('label[for=\"'+id+'\"]').textContent.trim())});['vbm230-c1','vbm230-c2','vbm230-c3','vbm230-c4'].forEach(function(id){if(!document.getElementById(id).checked)throw new Error('Confirm all four safety, method and use statements.')});var count=Number(document.getElementById('vbm230-feet').value),readings=[];for(var i=1;i<=count;i++)readings.push([document.getElementById('vbm230-f'+i+'a').value,document.getElementById('vbm230-f'+i+'b').value]);render(calculate({count:count,unit:document.getElementById('vbm230-unit').value,readings:readings}))}catch(ex){setError(ex.message||'Unable to summarize readings.')}});\nform.addEventListener('keydown',function(e){if(e.key==='Enter'&&e.target.tagName!=='TEXTAREA'&&e.target.tagName!=='BUTTON'){e.preventDefault();form.requestSubmit()}});document.getElementById('vbm230-feet').addEventListener('change',updateFeet);document.getElementById('vbm230-clear').addEventListener('click',function(){form.reset();form.querySelectorAll('input[type=text],textarea').forEach(function(el){el.value=''});results.classList.remove('show');clearError();updateFeet();document.getElementById('vbm230-f1a').focus()});form.querySelectorAll('input,select,textarea').forEach(function(el){el.addEventListener('input',function(){results.classList.remove('show');clearError()})});updateFeet();\n})();\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Normalize and compare two documented signed machine-foot movement readings without universal soft-foot limits, diagnosis, shim recommendation or alignment verdict.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100230","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/da\/wp-json\/wp\/v2\/calculator\/100230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/da\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/da\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":3,"href":"https:\/\/vibromera.eu\/da\/wp-json\/wp\/v2\/calculator\/100230\/revisions"}],"predecessor-version":[{"id":102576,"href":"https:\/\/vibromera.eu\/da\/wp-json\/wp\/v2\/calculator\/100230\/revisions\/102576"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/da\/wp-json\/wp\/v2\/media?parent=100230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/da\/wp-json\/wp\/v2\/categories?post=100230"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/da\/wp-json\/wp\/v2\/tags?post=100230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}