{"id":100221,"date":"2026-02-15T20:28:06","date_gmt":"2026-02-15T20:28:06","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100221"},"modified":"2026-07-15T01:25:40","modified_gmt":"2026-07-15T01:25:40","slug":"shaft-alignment-tolerance","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/id\/calculators\/shaft-alignment-tolerance\/","title":{"rendered":"Documented Shaft-Alignment Criterion Comparison"},"content":{"rendered":"\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Documented Shaft-Alignment Criterion Comparison\",\"description\":\"Compare one documented planar shaft-offset and angularity measurement with externally approved comparison values; no RPM tolerance table or machine-acceptance verdict is generated.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/shaft-alignment-tolerance\/\",\"applicationCategory\":\"Engineering Calculator\",\"operatingSystem\":\"Any\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"EUR\"},\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"dateModified\":\"2026-07-15\",\"inLanguage\":\"en\",\"isAccessibleForFree\":true}<\/script>\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/vibromera.eu\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculators\",\"item\":\"https:\/\/vibromera.eu\/calculators\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Documented Shaft-Alignment Criterion Comparison\",\"item\":\"https:\/\/vibromera.eu\/calculators\/shaft-alignment-tolerance\/\"}]}<\/script>\n\n<style>\n.vbm221{--ink:#17212b;--muted:#52606d;--line:#cfd8df;--soft:#f5f8fa;--blue:#075b89;--blue2:#073d5b;--warn:#8a5700;--warnbg:#fff8e6;--bad:#b42318;--badbg:#fff1f0;max-width:1000px;margin:0 auto;color:var(--ink);font:16px\/1.58 system-ui,-apple-system,\"Segoe UI\",sans-serif}.vbm221 *{box-sizing:border-box}.vbm221 h1,.vbm221 h2,.vbm221 h3{line-height:1.2;color:#102a3a}.vbm221 h1{margin:8px 0 14px;font-size:clamp(30px,5vw,46px)}.vbm221 h2{margin:0;font-size:25px}.vbm221 h3{margin:26px 0 8px;font-size:19px}.vbm221 p{margin:9px 0}.vbm221 a{color:var(--blue)}.vbm221-hero{padding:34px 28px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(135deg,#eef7fb,#fff)}.vbm221-kicker{font-size:13px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--blue)}.vbm221-lead{max-width:880px;font-size:18px}.vbm221-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.vbm221-badge{padding:5px 10px;border:1px solid #a8c9da;border-radius:999px;background:#fff;color:var(--blue2);font-size:13px;font-weight:750}.vbm221-alert{margin-top:20px;padding:13px 15px;border-left:4px solid var(--warn);border-radius:5px;background:var(--warnbg)}.vbm221-card,.vbm221-section{margin-top:24px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 5px 18px rgba(24,44,58,.06);overflow:hidden}.vbm221-card-h{padding:20px 22px;border-bottom:1px solid var(--line);background:var(--soft)}.vbm221-body,.vbm221-section{padding:22px}.vbm221-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.vbm221-field{min-width:0}.vbm221-field.full,.vbm221-fieldset{grid-column:1\/-1}.vbm221 label{display:block;margin-bottom:6px;font-weight:750}.vbm221 input,.vbm221 select{width:100%;min-height:46px;padding:10px 12px;border:1.5px solid #9dacb7;border-radius:7px;background:#fff;color:var(--ink);font:inherit}.vbm221 input:focus,.vbm221 select:focus{outline:3px solid rgba(7,91,137,.2);border-color:var(--blue)}.vbm221-hint{display:block;margin-top:5px;color:var(--muted);font-size:13px}.vbm221-fieldset{padding:15px;border:1px solid var(--line);border-radius:8px}.vbm221-fieldset legend{padding:0 6px;font-weight:800}.vbm221-check{display:flex!important;align-items:flex-start;gap:9px;margin:8px 0!important;font-weight:500!important}.vbm221-check input{width:18px;min-height:18px;margin-top:4px;flex:0 0 auto}.vbm221-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.vbm221-btn{min-height:44px;padding:10px 18px;border:0;border-radius:7px;background:var(--blue);color:#fff;font:750 15px\/1.2 inherit;cursor:pointer}.vbm221-btn:hover{background:var(--blue2)}.vbm221-btn.secondary{border:1px solid #9dacb7;background:#fff;color:var(--ink)}.vbm221-error{display:none;margin-top:15px;padding:12px 14px;border-left:4px solid var(--bad);border-radius:5px;background:var(--badbg);color:#7a1b15}.vbm221-error.show{display:block}.vbm221-results{display:none}.vbm221-results.show{display:block}.vbm221-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.vbm221-result{padding:15px;border:1px solid var(--line);border-radius:8px;background:var(--soft)}.vbm221-result.primary{grid-column:1\/-1;border:2px solid var(--blue);background:#edf7fc}.vbm221-result-label{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.vbm221-result-value{margin-top:4px;font:750 20px\/1.35 ui-monospace,\"Cascadia Mono\",monospace;overflow-wrap:anywhere}.vbm221-result.primary .vbm221-result-value{color:var(--blue2);font-size:24px}.vbm221-result-note{margin-top:4px;color:var(--muted);font-size:13px}.vbm221-boundary{margin-top:15px;padding:12px 14px;border-left:4px solid var(--warn);border-radius:5px;background:var(--warnbg)}.vbm221-equation{margin:12px 0;padding:13px;border:1px solid #b7ccd8;border-radius:7px;background:#f3f9fc;text-align:center;font:750 16px\/1.55 ui-monospace,\"Cascadia Mono\",monospace;overflow-wrap:anywhere}.vbm221-table-wrap{overflow-x:auto}.vbm221 table{width:100%;border-collapse:collapse;margin:12px 0;font-size:14px}.vbm221 th,.vbm221 td{padding:10px;border:1px solid var(--line);text-align:left;vertical-align:top}.vbm221 th{background:var(--soft)}.vbm221-limit{padding:14px;border-left:4px solid var(--warn);background:var(--warnbg)}.vbm221-footer{margin-top:24px;padding:16px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}\n@media(max-width:680px){.vbm221-grid,.vbm221-result-grid{grid-template-columns:1fr}.vbm221-result.primary{grid-column:auto}.vbm221-hero,.vbm221-body,.vbm221-section{padding:18px}.vbm221-card-h{padding:17px}.vbm221 table{font-size:12px}.vbm221 th,.vbm221 td{padding:7px}}\n<\/style>\n\n<div class=\"vbm221\">\n  <header class=\"vbm221-hero\">\n    <div class=\"vbm221-kicker\">One documented plane \u00b7 comparison arithmetic only<\/div>\n    <h1>Documented Shaft-Alignment Criterion Comparison<\/h1>\n    <p class=\"vbm221-lead\">Normalize one signed planar shaft-offset and angularity measurement, compare their magnitudes with externally approved values and derive the small-geometry quantities transparently.<\/p>\n    <div class=\"vbm221-badges\"><span class=\"vbm221-badge\">no RPM lookup<\/span><span class=\"vbm221-badge\">no coupling multiplier<\/span><span class=\"vbm221-badge\">no automatic target<\/span><span class=\"vbm221-badge\">no machine-acceptance verdict<\/span><\/div>\n    <div class=\"vbm221-alert\"><strong>This page does not generate alignment tolerances.<\/strong> The applicable method, quality grade, flex-plane or offset\/angularity format, vertical\/horizontal criteria, cold targets, thermal movement, coupling geometry, OEM limits and uncertainty treatment must be established in the controlling procedure.<\/div>\n  <\/header>\n\n  <section class=\"vbm221-card\" aria-labelledby=\"vbm221-input-title\">\n    <div class=\"vbm221-card-h\"><h2 id=\"vbm221-input-title\">Controlled planar measurement record<\/h2><p>Use values from one declared vertical or horizontal plane, one declared reference plane and one machine state. Signed measurements are allowed; comparison values must be positive.<\/p><\/div>\n    <div class=\"vbm221-body\">\n      <form id=\"vbm221-form\" novalidate>\n        <div class=\"vbm221-grid\">\n          <div class=\"vbm221-field\"><label for=\"vbm221-offset-unit\">Offset unit<\/label><select id=\"vbm221-offset-unit\"><option value=\"\" selected>Select mm or mil<\/option><option value=\"mm\">millimetres (mm)<\/option><option value=\"mil\">mils (0.001 in)<\/option><\/select><span class=\"vbm221-hint\">Changing the unit clears both offset entries and the result.<\/span><\/div>\n          <div class=\"vbm221-field\"><label for=\"vbm221-offset\">Signed measured offset o<\/label><input id=\"vbm221-offset\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"blank\"><span class=\"vbm221-hint\">Sign follows the recorded plane\/direction convention.<\/span><\/div>\n          <div class=\"vbm221-field\"><label for=\"vbm221-offset-limit\">Approved offset comparison value O<sub>lim<\/sub><\/label><input id=\"vbm221-offset-limit\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"blank\"><span class=\"vbm221-hint\">Positive magnitude in the selected offset unit.<\/span><\/div>\n          <div class=\"vbm221-field\"><label for=\"vbm221-angular-unit\">Angularity-slope unit<\/label><select id=\"vbm221-angular-unit\"><option value=\"\" selected>Select mm\/100 mm or mil\/in<\/option><option value=\"mm100\">mm per 100 mm<\/option><option value=\"milin\">mil per inch<\/option><\/select><span class=\"vbm221-hint\">These are slope units; changing unit clears both angular entries.<\/span><\/div>\n          <div class=\"vbm221-field\"><label for=\"vbm221-angular\">Signed measured angularity a<\/label><input id=\"vbm221-angular\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"blank\"><\/div>\n          <div class=\"vbm221-field\"><label for=\"vbm221-angular-limit\">Approved angularity comparison value A<sub>lim<\/sub><\/label><input id=\"vbm221-angular-limit\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"blank\"><span class=\"vbm221-hint\">Positive magnitude in the selected angularity unit.<\/span><\/div>\n          <div class=\"vbm221-field\"><label for=\"vbm221-span-unit\">Reference-span unit<\/label><select id=\"vbm221-span-unit\"><option value=\"\" selected>Select mm or in<\/option><option value=\"mm\">millimetres (mm)<\/option><option value=\"in\">inches (in)<\/option><\/select><span class=\"vbm221-hint\">Changing unit clears the span and result.<\/span><\/div>\n          <div class=\"vbm221-field\"><label for=\"vbm221-span\">Documented reference span L<\/label><input id=\"vbm221-span\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"blank\"><span class=\"vbm221-hint\">Used only for \u0394=sL; this page does not choose the correct machine dimension.<\/span><\/div>\n\n          <div class=\"vbm221-field full\"><label for=\"vbm221-equipment\">Machine train, shafts and coupling ID<\/label><input id=\"vbm221-equipment\" autocomplete=\"off\" placeholder=\"manufacturer\/model\/serial; driver\/driven shaft; coupling ID\"><\/div>\n          <div class=\"vbm221-field full\"><label for=\"vbm221-geometry\">Coupling type, format, flex planes and geometry record<\/label><input id=\"vbm221-geometry\" autocomplete=\"off\" placeholder=\"short-flex\/spacer\/other; coupling diameter\/span; flex-plane\/reference-plane locations\"><\/div>\n          <div class=\"vbm221-field full\"><label for=\"vbm221-state\">Measurement state and operating target record<\/label><input id=\"vbm221-state\" autocomplete=\"off\" placeholder=\"cold\/hot\/running; speed\/load\/temperature; offline-to-running\/thermal target and sign\"><\/div>\n          <div class=\"vbm221-field full\"><label for=\"vbm221-plane\">Measurement plane, reference plane and sign convention<\/label><input id=\"vbm221-plane\" autocomplete=\"off\" placeholder=\"vertical or horizontal; exact offset plane; positive direction; angularity convention\"><\/div>\n          <div class=\"vbm221-field full\"><label for=\"vbm221-method\">Measurement method, rotation practice, repeatability and calibration<\/label><input id=\"vbm221-method\" autocomplete=\"off\" placeholder=\"laser\/reverse dial\/other; shafts rotated; repeatability; calibration\/instrument record\"><\/div>\n          <div class=\"vbm221-field full\"><label for=\"vbm221-source\">Governing source, edition\/revision, exact location and jurisdiction<\/label><input id=\"vbm221-source\" autocomplete=\"off\" placeholder=\"licensed ANSI\/ASA\/API\/ISO, OEM\/site procedure or approved engineering record; clause\/table\/drawing\"><\/div>\n          <div class=\"vbm221-field full\"><label for=\"vbm221-targets\">Meaning and inclusivity of entered comparison values<\/label><input id=\"vbm221-targets\" autocomplete=\"off\" placeholder=\"quality grade\/target; per-plane or flex-plane basis; inclusive \u2264 boundary confirmed\"><\/div>\n          <div class=\"vbm221-field full\"><label for=\"vbm221-uncertainty\">Measurement error, uncertainty and acceptance-decision rule<\/label><input id=\"vbm221-uncertainty\" autocomplete=\"off\" placeholder=\"uncertainty\/error allowance and how it is applied outside this worksheet\"><\/div>\n          <div class=\"vbm221-field full\"><label for=\"vbm221-record\">Calculation record ID, intended use and competent reviewer<\/label><input id=\"vbm221-record\" autocomplete=\"off\" placeholder=\"record ID; scope; reviewer\"><\/div>\n          <fieldset class=\"vbm221-fieldset\"><legend>Required compatibility confirmation<\/legend>\n            <label class=\"vbm221-check\"><input type=\"checkbox\" id=\"vbm221-c1\"><span>The two measurements and two comparison values use the same declared offset\/angularity format, reference plane, coordinate plane, sign convention and machine state.<\/span><\/label>\n            <label class=\"vbm221-check\"><input type=\"checkbox\" id=\"vbm221-c2\"><span>The comparison values were approved outside this page for the recorded machine, coupling geometry, operating state, speed and jurisdiction; no RPM table or multiplier from this page was used.<\/span><\/label>\n            <label class=\"vbm221-check\"><input type=\"checkbox\" id=\"vbm221-c3\"><span>Thermal\/OLTR targets, soft foot, runout, pipe strain, measurement uncertainty, coupling limits and both required planes\/flex planes are handled in the controlling procedure.<\/span><\/label>\n            <label class=\"vbm221-check\"><input type=\"checkbox\" id=\"vbm221-c4\"><span>I will treat \u201cwithin\/outside entered comparison\u201d only as arithmetic, not as proof of machine acceptance, reliability, safety or standards conformity.<\/span><\/label>\n          <\/fieldset>\n        <\/div>\n        <div class=\"vbm221-actions\"><button class=\"vbm221-btn\" type=\"submit\">Compare documented values<\/button><button class=\"vbm221-btn secondary\" type=\"button\" id=\"vbm221-reset\">Clear<\/button><\/div>\n        <div class=\"vbm221-error\" id=\"vbm221-error\" role=\"alert\" tabindex=\"-1\"><\/div>\n      <\/form>\n    <\/div>\n  <\/section>\n\n  <section class=\"vbm221-card vbm221-results\" id=\"vbm221-results\" aria-labelledby=\"vbm221-results-title\" aria-live=\"polite\">\n    <div class=\"vbm221-card-h\"><h2 id=\"vbm221-results-title\">Documented arithmetic comparison<\/h2><p id=\"vbm221-result-context\"><\/p><\/div>\n    <div class=\"vbm221-body\"><div class=\"vbm221-result-grid\">\n      <div class=\"vbm221-result primary\"><div class=\"vbm221-result-label\">Offset relation to entered comparison value<\/div><div class=\"vbm221-result-value\" id=\"vbm221-r-offset-relation\">\u2014<\/div><div class=\"vbm221-result-note\">Uses |o| and the user-controlled inclusive O<sub>lim<\/sub>.<\/div><\/div>\n      <div class=\"vbm221-result\"><div class=\"vbm221-result-label\">Signed offset, normalized<\/div><div class=\"vbm221-result-value\" id=\"vbm221-r-offset\">\u2014<\/div><\/div>\n      <div class=\"vbm221-result\"><div class=\"vbm221-result-label\">Offset utilization and headroom<\/div><div class=\"vbm221-result-value\" id=\"vbm221-r-offset-ratio\">\u2014<\/div><div class=\"vbm221-result-note\">Headroom = O<sub>lim<\/sub>\u2212|o|; negative means outside the entered value.<\/div><\/div>\n      <div class=\"vbm221-result primary\"><div class=\"vbm221-result-label\">Angularity relation to entered comparison value<\/div><div class=\"vbm221-result-value\" id=\"vbm221-r-angular-relation\">\u2014<\/div><div class=\"vbm221-result-note\">Uses |a| and the user-controlled inclusive A<sub>lim<\/sub>.<\/div><\/div>\n      <div class=\"vbm221-result\"><div class=\"vbm221-result-label\">Signed angularity slope, normalized<\/div><div class=\"vbm221-result-value\" id=\"vbm221-r-angular\">\u2014<\/div><\/div>\n      <div class=\"vbm221-result\"><div class=\"vbm221-result-label\">Exact angle \u03b8=atan(s)<\/div><div class=\"vbm221-result-value\" id=\"vbm221-r-angle\">\u2014<\/div><div class=\"vbm221-result-note\">mrad is calculated from atan(s), not the small-angle identity \u03b8\u2248s.<\/div><\/div>\n      <div class=\"vbm221-result\"><div class=\"vbm221-result-label\">Angularity utilization and headroom<\/div><div class=\"vbm221-result-value\" id=\"vbm221-r-angular-ratio\">\u2014<\/div><\/div>\n      <div class=\"vbm221-result\"><div class=\"vbm221-result-label\">Signed linear separation change over L<\/div><div class=\"vbm221-result-value\" id=\"vbm221-r-delta\">\u2014<\/div><div class=\"vbm221-result-note\">\u0394=sL; not automatically a shim move, coupling-face gap or foot correction.<\/div><\/div>\n    <\/div><div class=\"vbm221-boundary\"><strong>No overall pass\/fail is produced.<\/strong> Both coordinate planes and, where applicable, both flex planes must be evaluated under the correct controlled method. The result does not assess foot moves, thermal targets, runout, soft foot, pipe strain, coupling loading or uncertainty.<\/div><\/div>\n  <\/section>\n\n  <section class=\"vbm221-section\" aria-labelledby=\"vbm221-model-title\">\n    <h2 id=\"vbm221-model-title\">Equations, source boundaries and removed defects<\/h2>\n    <div class=\"vbm221-equation\">o(mm)=o(mil)\u00d70.0254; 1 mil=0.001 in=0.0254 mm exactly<\/div>\n    <div class=\"vbm221-equation\">s=a(mm\/100 mm)\/100=a(mil\/in)\u00d70.001; \u03b8=atan(s)<\/div>\n    <div class=\"vbm221-equation\">\u0394=sL; utilization=|measurement|\/comparison value; headroom=comparison value\u2212|measurement|<\/div>\n    <p>These are unit conversions, plane-geometry relationships and arithmetic comparisons. They are <strong>not presented as an ISO, ANSI\/ASA or API tolerance-selection formula<\/strong>. The signed value preserves the recorded direction; the comparison uses magnitude.<\/p>\n    <h3>Why the former speed\/coupling lookup was removed<\/h3>\n    <p>The previous page selected one five-band table from RPM alone, then applied \u00d71.0, \u00d70.75 or \u00d70.5 according to \u201cflexible\u201d, \u201chigh-performance\u201d or \u201crigid\u201d coupling. No controlled source established those values or factors. It also used a spacer length as a generic gap dimension, although the correct tolerance format and geometry depend on the measurement method and coupling arrangement.<\/p>\n    <p>The official Pr\u00fcftechnik on-board help states that, even for the same tolerance type, RPM and coupling diameter, values differ with coupling format; it also says there are no tolerance tables for consolidated spacer-shaft formats. That directly contradicts a universal RPM table plus coupling multiplier.<\/p>\n    <h3>Official lifecycle and public scope inspected<\/h3>\n    <div class=\"vbm221-table-wrap\"><table><thead><tr><th>Source<\/th><th>Public status and scope used<\/th><\/tr><\/thead><tbody>\n      <tr><td><a href=\"https:\/\/asastandards.org\/catalog\/\" target=\"_blank\" rel=\"noopener\">ANSI\/ASA S2.75-2017\/Part 1<\/a><\/td><td>The official ASA catalogue lists \u201cShaft Alignment Methodology, Part 1: General Principles, Methods, Practices, and Tolerances\u201d as reaffirmed in 2025. The licensed grade equations\/tables and application details are not reproduced here.<\/td><\/tr>\n      <tr><td><a href=\"https:\/\/www.iso.org\/standard\/45476.html\" target=\"_blank\" rel=\"noopener\">ISO 14691:2008<\/a><\/td><td>Published edition 2, confirmed in 2024. It covers specified general-purpose petroleum\/petrochemical\/gas flexible couplings, typically stiff-shaft applications not exceeding 4000 r\/min; it excludes rigid and several special coupling types and does not define coupling-type selection criteria.<\/td><\/tr>\n      <tr><td><a href=\"https:\/\/www.iso.org\/standard\/35107.html\" target=\"_blank\" rel=\"noopener\">ISO 10441:2007<\/a><\/td><td>Published edition 2 and under systematic review in 2026. It covers specified special-purpose couplings for large\/high-speed\/critical services, excludes rigid and several other types, and does not define coupling-type selection criteria.<\/td><\/tr>\n      <tr><td><a href=\"https:\/\/media.fluke.com\/c66c0b73-7ddf-40d3-8727-b3fb00fb87b8_original%20file.pdf\" target=\"_blank\" rel=\"noopener\">Pr\u00fcftechnik Shaft Alignment on-board help, Version 2.0, p.56<\/a><\/td><td>Official manufacturer manual visually inspected. It documents the coupling-format dependency and spacer-format limitation described above; it is not treated as a universal machine acceptance standard.<\/td><\/tr>\n      <tr><td><a href=\"https:\/\/www.nist.gov\/pml\/special-publication-811\/nist-guide-si-appendix-b-conversion-factors\/nist-guide-si-appendix-b8\" target=\"_blank\" rel=\"noopener\">NIST Guide to the SI, Appendix B.8<\/a><\/td><td>Exact length conversions: 1 in=0.0254 m and 1 mil (0.001 in)=0.0254 mm.<\/td><\/tr>\n    <\/tbody><\/table><\/div>\n    <p><strong>Accessed:<\/strong> 15 July 2026. <strong>Licensed-source boundary:<\/strong> <strong>NEEDS_LICENSED_SOURCE<\/strong> for ANSI\/ASA alignment-grade formulas\/tables, any exact API\/ISO clause or value, and any OEM\/site acceptance target. This page therefore requires externally approved values instead of guessing them.<\/p>\n    <h3>Exact numerical checks<\/h3>\n    <div class=\"vbm221-table-wrap\"><table><thead><tr><th>Inputs<\/th><th>Expected normalized result<\/th><\/tr><\/thead><tbody>\n      <tr><td>o=\u22120.05 mm; O<sub>lim<\/sub>=0.08 mm; a=0.10 mm\/100 mm; A<sub>lim<\/sub>=0.12 mm\/100 mm; L=150 mm<\/td><td>offset utilization=0.625; headroom=0.03 mm; slope=0.001; \u03b8=0.999999666666867 mrad; angular utilization=5\/6; \u0394=0.15 mm<\/td><\/tr>\n      <tr><td>o=\u22121.96850393700787 mil; O<sub>lim<\/sub>=3.1496062992126 mil; a=1 mil\/in; A<sub>lim<\/sub>=1.2 mil\/in; L=5.90551181102362 in<\/td><td>same physical quantities and comparison relations, within numerical tolerance<\/td><\/tr>\n      <tr><td>o=0 and a=0 with positive controlled limits<\/td><td>valid zero measurements; zero utilization and full entered headroom<\/td><\/tr>\n    <\/tbody><\/table><\/div>\n    <div class=\"vbm221-limit\"><strong>Competent alignment procedure required.<\/strong> Do not move or release machinery from this worksheet alone. Verify the controlling licensed standard\/OEM instructions, lockout and safety procedure, soft foot\/base\/pipe condition, measurement repeatability, thermal targets and all required planes.<\/div>\n    <div class=\"vbm221-footer\">Revision: scientific audit 2026-07-15 \u00b7 English source page \u00b7 User-controlled comparison values only \u00b7 No generated tolerance or conformity claim.<\/div>\n  <\/section>\n<\/div>\n\n<script>\n(function(){\n  'use strict';\n  function el(id){return document.getElementById(id)}\n  var form=el('vbm221-form');\n  function clearError(){var box=el('vbm221-error');box.textContent='';box.classList.remove('show')}\n  function invalidate(){clearError();el('vbm221-results').classList.remove('show')}\n  function showError(err){invalidate();var box=el('vbm221-error');box.textContent=err.message||String(err);box.classList.add('show');box.focus()}\n  function strictDecimal(raw,name,positive){var s=String(raw==null?'':raw).trim();var re=positive?\/^(?:\\d+(?:[.,]\\d*)?|[.,]\\d+)$\/:\/^[+-]?(?:\\d+(?:[.,]\\d*)?|[.,]\\d+)$\/;if(!re.test(s))throw new Error(name+' must be one complete '+(positive?'positive ':'')+'decimal number.');var n=Number(s.replace(',','.'));if(!Number.isFinite(n)||(positive&&n<=0))throw new Error(name+' must be finite'+(positive?' and greater than zero':'')+'.');return Object.is(n,-0)?0:n}\n  function finite(n,name,allowZero){if(!Number.isFinite(n)||(!allowZero&&n<=0))throw new Error(name+' is outside the finite '+(allowZero?'':'positive ')+'calculation range.');return Object.is(n,-0)?0:n}\n  function relation(absValue,limit){var h=limit-absValue,tol=Math.max(1,limit)*Number.EPSILON*32;if(Math.abs(h)<=tol)return'on the entered inclusive comparison boundary';return h>0?'within the entered comparison value':'outside the entered comparison value'}\n  function calculate(x){\n    if(['mm','mil'].indexOf(x.offsetUnit)<0)throw new Error('Select mm or mil as the offset unit.');if(['mm100','milin'].indexOf(x.angularUnit)<0)throw new Error('Select mm\/100 mm or mil\/in as the angularity unit.');if(['mm','in'].indexOf(x.spanUnit)<0)throw new Error('Select mm or in as the reference-span unit.');\n    var o=strictDecimal(x.offset,'Measured offset o',false),oLim=strictDecimal(x.offsetLimit,'Offset comparison value O_lim',true),a=strictDecimal(x.angular,'Measured angularity a',false),aLim=strictDecimal(x.angularLimit,'Angularity comparison value A_lim',true),span=strictDecimal(x.span,'Reference span L',true);\n    var oMm=x.offsetUnit==='mm'?o:o*0.0254,oLimMm=x.offsetUnit==='mm'?oLim:oLim*0.0254,slope=x.angularUnit==='mm100'?a\/100:a*0.001,slopeLim=x.angularUnit==='mm100'?aLim\/100:aLim*0.001,spanMm=x.spanUnit==='mm'?span:span*25.4;\n    var absO=Math.abs(oMm),absS=Math.abs(slope),theta=Math.atan(slope),deltaMm=slope*spanMm,oRatio=absO\/oLimMm,aRatio=absS\/slopeLim,oHeadMm=oLimMm-absO,aHeadSlope=slopeLim-absS;\n    [oMm,oLimMm,slope,slopeLim,spanMm,theta,deltaMm,oRatio,aRatio,oHeadMm,aHeadSlope].forEach(function(n){if(!Number.isFinite(n))throw new Error('Inputs are outside the finite calculation range.')});\n    return{offsetUnit:x.offsetUnit,angularUnit:x.angularUnit,spanUnit:x.spanUnit,o:o,oLim:oLim,a:a,aLim:aLim,span:span,oMm:oMm,oLimMm:finite(oLimMm,'Normalized offset comparison value',false),slope:slope,slopeLim:finite(slopeLim,'Normalized angularity comparison value',false),spanMm:finite(spanMm,'Normalized reference span',false),theta:theta,deltaMm:deltaMm,oRatio:finite(oRatio,'Offset utilization',true),aRatio:finite(aRatio,'Angularity utilization',true),oHeadMm:oHeadMm,aHeadSlope:aHeadSlope,oRelation:relation(absO,oLimMm),aRelation:relation(absS,slopeLim)}\n  }\n  function requiredText(id,name){var s=el(id).value.trim();if(!s)throw new Error(name+' is required.');return s}\n  function format(n){if(Object.is(n,-0))n=0;var s=n.toPrecision(15);if(\/e\/i.test(s))return s.replace(\/\\.0+e\/i,'e').replace(\/(\\.\\d*?[1-9])0+e\/i,'$1e');return s.replace(\/(\\.\\d*?[1-9])0+$\/,'$1').replace(\/\\.0+$\/,'')}\n  function readModel(){var r=calculate({offsetUnit:el('vbm221-offset-unit').value,offset:el('vbm221-offset').value,offsetLimit:el('vbm221-offset-limit').value,angularUnit:el('vbm221-angular-unit').value,angular:el('vbm221-angular').value,angularLimit:el('vbm221-angular-limit').value,spanUnit:el('vbm221-span-unit').value,span:el('vbm221-span').value});r.equipment=requiredText('vbm221-equipment','Machine train, shafts and coupling ID');r.geometry=requiredText('vbm221-geometry','Coupling geometry record');r.state=requiredText('vbm221-state','Measurement state and operating target record');r.plane=requiredText('vbm221-plane','Measurement plane and sign convention');r.method=requiredText('vbm221-method','Measurement method and calibration record');r.source=requiredText('vbm221-source','Governing source and exact location');r.targets=requiredText('vbm221-targets','Comparison-value meaning and inclusivity');r.uncertainty=requiredText('vbm221-uncertainty','Measurement uncertainty and decision rule');r.record=requiredText('vbm221-record','Calculation record ID and reviewer');for(var i=1;i<=4;i++)if(!el('vbm221-c'+i).checked)throw new Error('All four compatibility confirmations are required.');return r}\n  function render(r){var oHeadInput=r.offsetUnit==='mm'?r.oHeadMm:r.oHeadMm\/0.0254,aHeadInput=r.angularUnit==='mm100'?r.aHeadSlope*100:r.aHeadSlope*1000;el('vbm221-result-context').textContent=r.equipment+' \u00b7 '+r.plane+' \u00b7 '+r.record;el('vbm221-r-offset-relation').textContent=r.oRelation;el('vbm221-r-offset').textContent=format(r.oMm)+' mm; '+format(r.oMm\/0.0254)+' mil';el('vbm221-r-offset-ratio').textContent=format(r.oRatio)+' ('+format(r.oRatio*100)+'%); headroom '+format(oHeadInput)+' '+(r.offsetUnit==='mm'?'mm':'mil');el('vbm221-r-angular-relation').textContent=r.aRelation;el('vbm221-r-angular').textContent=format(r.slope*100)+' mm\/100 mm; '+format(r.slope*1000)+' mil\/in';el('vbm221-r-angle').textContent=format(r.theta*1000)+' mrad; '+format(r.theta*180\/Math.PI)+'\u00b0';el('vbm221-r-angular-ratio').textContent=format(r.aRatio)+' ('+format(r.aRatio*100)+'%); headroom '+format(aHeadInput)+' '+(r.angularUnit==='mm100'?'mm\/100 mm':'mil\/in');el('vbm221-r-delta').textContent=format(r.deltaMm)+' mm; '+format(r.deltaMm\/0.0254)+' mil over '+format(r.spanMm)+' mm';el('vbm221-results').classList.add('show')}\n  form.addEventListener('submit',function(e){e.preventDefault();try{clearError();render(readModel())}catch(err){showError(err)}});\n  form.addEventListener('keydown',function(e){if(e.key==='Enter'&&e.target.tagName!=='BUTTON'){e.preventDefault();form.requestSubmit()}});\n  form.addEventListener('input',invalidate);form.addEventListener('change',invalidate);\n  el('vbm221-offset-unit').addEventListener('change',function(){el('vbm221-offset').value='';el('vbm221-offset-limit').value='';invalidate()});\n  el('vbm221-angular-unit').addEventListener('change',function(){el('vbm221-angular').value='';el('vbm221-angular-limit').value='';invalidate()});\n  el('vbm221-span-unit').addEventListener('change',function(){el('vbm221-span').value='';invalidate()});\n  el('vbm221-reset').addEventListener('click',function(){form.reset();['vbm221-offset','vbm221-offset-limit','vbm221-angular','vbm221-angular-limit','vbm221-span','vbm221-equipment','vbm221-geometry','vbm221-state','vbm221-plane','vbm221-method','vbm221-source','vbm221-targets','vbm221-uncertainty','vbm221-record'].forEach(function(id){el(id).value=''});invalidate();el('vbm221-offset-unit').focus()});\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Compare one documented planar shaft-offset and angularity measurement with externally approved values without generating an RPM tolerance or acceptance verdict.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100221","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/id\/wp-json\/wp\/v2\/calculator\/100221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/id\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/id\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":5,"href":"https:\/\/vibromera.eu\/id\/wp-json\/wp\/v2\/calculator\/100221\/revisions"}],"predecessor-version":[{"id":102566,"href":"https:\/\/vibromera.eu\/id\/wp-json\/wp\/v2\/calculator\/100221\/revisions\/102566"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/id\/wp-json\/wp\/v2\/media?parent=100221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/id\/wp-json\/wp\/v2\/categories?post=100221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/id\/wp-json\/wp\/v2\/tags?post=100221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}