{"id":24563,"date":"2026-08-10T01:50:42","date_gmt":"2026-08-10T01:50:42","guid":{"rendered":"https:\/\/www.mechstream.com\/?p=24563"},"modified":"2026-08-10T02:15:29","modified_gmt":"2026-08-10T02:15:29","slug":"gear-center-distance-calculator","status":"publish","type":"post","link":"https:\/\/www.mechstream.com\/ru\/gear-center-distance-calculator\/","title":{"rendered":"Gear Center Distance Calculator"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The <strong>Gear Center Distance Calculator<\/strong> is a practical engineering tool designed to quickly determine the center distance between two meshing gears. By entering essential gear parameters such as module, number of teeth, or pitch diameter, users can calculate the required spacing between gear centers accurately and efficiently. This calculator is useful for gear design, gearbox development, mechanical transmission systems, and machine component selection. The <strong>Gear Center Distance Calculator<\/strong> helps engineers, designers, students, and technicians reduce manual calculation errors, verify gear compatibility, and optimize gear layouts. Whether you are designing a new gear transmission or checking an existing mechanism, this tool provides a fast and convenient way to obtain reliable center distance results for efficient mechanical design.<\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n  <title>Gear Center Distance Calculator<\/title>\n  <style>\n    \/*\n     * All styles are scoped under #gcd-calculator so embedding in WordPress\n     * (or any host page) will not affect the rest of the site.\n     *\/\n    #gcd-calculator {\n      --gcd-surface: #f4f6f8;\n      --gcd-surface-alt: #ffffff;\n      --gcd-ink: #1a2332;\n      --gcd-ink-muted: #5a6a7a;\n      --gcd-accent: #2563eb;\n      --gcd-accent-hover: #1d4ed8;\n      --gcd-accent-soft: rgba(37, 99, 235, 0.12);\n      --gcd-error: #b91c1c;\n      --gcd-border: #d8dee6;\n      --gcd-shadow: 0 8px 28px rgba(15, 20, 25, 0.12);\n      --gcd-radius: 14px;\n      --gcd-font: \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif;\n      --gcd-mono: \"Cascadia Code\", \"Consolas\", \"Courier New\", monospace;\n\n      box-sizing: border-box;\n      max-width: 960px;\n      margin: 0 auto;\n      padding: 0;\n      font-family: var(--gcd-font);\n      font-size: 16px;\n      line-height: 1.5;\n      color: var(--gcd-ink);\n      background: transparent;\n      text-align: left;\n      -webkit-text-size-adjust: 100%;\n    }\n\n    #gcd-calculator *,\n    #gcd-calculator *::before,\n    #gcd-calculator *::after {\n      box-sizing: border-box;\n    }\n\n    #gcd-calculator .gcd-panel {\n      background: var(--gcd-surface);\n      border-radius: var(--gcd-radius);\n      box-shadow: var(--gcd-shadow);\n      overflow: hidden;\n    }\n\n    #gcd-calculator .gcd-grid {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 0;\n    }\n\n    @media (max-width: 720px) {\n      #gcd-calculator .gcd-grid {\n        grid-template-columns: 1fr;\n      }\n    }\n\n    #gcd-calculator .gcd-section {\n      padding: 1.5rem 1.4rem;\n      margin: 0;\n      border: none;\n      background: transparent;\n    }\n\n    #gcd-calculator .gcd-section + .gcd-section {\n      border-left: 1px solid var(--gcd-border);\n    }\n\n    @media (max-width: 720px) {\n      #gcd-calculator .gcd-section + .gcd-section {\n        border-left: none;\n        border-top: 1px solid var(--gcd-border);\n      }\n    }\n\n    #gcd-calculator .gcd-section-title {\n      margin: 0 0 1.1rem;\n      padding: 0;\n      border: none;\n      font-size: 0.78rem;\n      line-height: 1.4;\n      text-transform: uppercase;\n      letter-spacing: 0.08em;\n      color: var(--gcd-ink-muted);\n      font-weight: 700;\n      font-family: var(--gcd-font);\n      background: none;\n    }\n\n    #gcd-calculator .gcd-field {\n      margin: 0 0 0.9rem;\n      padding: 0;\n    }\n\n    #gcd-calculator .gcd-field label {\n      display: flex;\n      align-items: baseline;\n      justify-content: space-between;\n      gap: 0.5rem;\n      margin: 0 0 0.35rem;\n      padding: 0;\n      font-size: 0.88rem;\n      font-weight: 600;\n      line-height: 1.4;\n      color: var(--gcd-ink);\n      font-family: var(--gcd-font);\n      cursor: pointer;\n    }\n\n    #gcd-calculator .gcd-sym {\n      font-family: var(--gcd-mono);\n      font-weight: 500;\n      color: var(--gcd-accent);\n      font-size: 0.82rem;\n    }\n\n    #gcd-calculator .gcd-input-wrap {\n      display: flex;\n      align-items: stretch;\n      border: 1.5px solid var(--gcd-border);\n      border-radius: 8px;\n      background: var(--gcd-surface-alt);\n      transition: border-color 0.15s, box-shadow 0.15s;\n    }\n\n    #gcd-calculator .gcd-input-wrap:focus-within {\n      border-color: var(--gcd-accent);\n      box-shadow: 0 0 0 3px var(--gcd-accent-soft);\n    }\n\n    #gcd-calculator .gcd-input-wrap.gcd-invalid {\n      border-color: var(--gcd-error);\n      box-shadow: 0 0 0 3px rgba(185, 28, 28, 0.12);\n    }\n\n    #gcd-calculator .gcd-input-wrap input[type=\"number\"] {\n      flex: 1;\n      margin: 0;\n      border: none !important;\n      outline: none !important;\n      box-shadow: none !important;\n      background: transparent !important;\n      padding: 0.55rem 0.75rem;\n      font-size: 1rem;\n      line-height: 1.4;\n      font-family: var(--gcd-mono);\n      color: var(--gcd-ink);\n      min-width: 0;\n      width: 100%;\n      height: auto;\n      border-radius: 0;\n      -moz-appearance: textfield;\n      appearance: textfield;\n    }\n\n    #gcd-calculator .gcd-input-wrap input[type=\"number\"]::-webkit-outer-spin-button,\n    #gcd-calculator .gcd-input-wrap input[type=\"number\"]::-webkit-inner-spin-button {\n      -webkit-appearance: none;\n      margin: 0;\n    }\n\n    #gcd-calculator .gcd-unit {\n      display: flex;\n      align-items: center;\n      padding: 0 0.75rem;\n      background: #eef1f5;\n      color: var(--gcd-ink-muted);\n      font-size: 0.8rem;\n      font-weight: 600;\n      font-family: var(--gcd-font);\n      border-left: 1px solid var(--gcd-border);\n      white-space: nowrap;\n    }\n\n    #gcd-calculator .gcd-hint,\n    #gcd-calculator .gcd-error-msg {\n      margin: 0.25rem 0 0;\n      padding: 0;\n      border: none;\n      background: none;\n      font-family: var(--gcd-font);\n      font-size: 0.75rem;\n      line-height: 1.4;\n    }\n\n    #gcd-calculator .gcd-hint {\n      color: var(--gcd-ink-muted);\n    }\n\n    #gcd-calculator .gcd-error-msg {\n      color: var(--gcd-error);\n      display: none;\n    }\n\n    #gcd-calculator .gcd-field.gcd-has-error .gcd-error-msg {\n      display: block;\n    }\n\n    #gcd-calculator .gcd-actions {\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      padding: 1.25rem 1.4rem 1.5rem;\n      margin: 0;\n      border-top: 1px solid var(--gcd-border);\n      background: var(--gcd-surface);\n    }\n\n    #gcd-calculator .gcd-btn-primary {\n      display: inline-block;\n      margin: 0;\n      font-family: var(--gcd-font);\n      font-size: 1.05rem;\n      font-weight: 600;\n      line-height: 1.2;\n      padding: 0.85rem 2.75rem;\n      border-radius: 8px;\n      border: none !important;\n      box-shadow: none !important;\n      cursor: pointer;\n      background: var(--gcd-accent) !important;\n      color: #fff !important;\n      text-decoration: none;\n      text-transform: none;\n      letter-spacing: normal;\n      transition: background 0.15s, transform 0.1s;\n    }\n\n    #gcd-calculator .gcd-btn-primary:hover,\n    #gcd-calculator .gcd-btn-primary:focus {\n      background: var(--gcd-accent-hover) !important;\n      color: #fff !important;\n      outline: none;\n    }\n\n    #gcd-calculator .gcd-btn-primary:active {\n      transform: scale(0.98);\n    }\n\n    #gcd-calculator .gcd-results {\n      display: none;\n      background: var(--gcd-surface-alt);\n      border-top: 1px solid var(--gcd-border);\n      padding: 1.5rem 1.4rem 1.75rem;\n      margin: 0;\n    }\n\n    #gcd-calculator .gcd-results.gcd-is-visible {\n      display: block !important;\n    }\n\n    #gcd-calculator .gcd-results-header {\n      margin: 0 0 1.1rem;\n      padding: 0;\n    }\n\n    #gcd-calculator .gcd-results-title {\n      margin: 0;\n      padding: 0;\n      border: none;\n      font-size: 0.78rem;\n      line-height: 1.4;\n      text-transform: uppercase;\n      letter-spacing: 0.08em;\n      color: var(--gcd-ink-muted);\n      font-weight: 700;\n      font-family: var(--gcd-font);\n      background: none;\n    }\n\n    #gcd-calculator .gcd-result-cols {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 1.25rem;\n    }\n\n    @media (max-width: 560px) {\n      #gcd-calculator .gcd-result-cols {\n        grid-template-columns: 1fr;\n      }\n    }\n\n    #gcd-calculator .gcd-result-block {\n      background: var(--gcd-surface);\n      border-radius: 10px;\n      padding: 1rem 1.1rem;\n      border: 1px solid var(--gcd-border);\n      margin: 0;\n    }\n\n    #gcd-calculator .gcd-result-block h3 {\n      margin: 0 0 0.75rem;\n      padding: 0 0 0.5rem;\n      border: none;\n      border-bottom: 2px solid var(--gcd-accent);\n      display: inline-block;\n      font-size: 0.92rem;\n      line-height: 1.4;\n      font-weight: 700;\n      color: var(--gcd-ink);\n      font-family: var(--gcd-font);\n      background: none;\n      text-transform: none;\n      letter-spacing: normal;\n    }\n\n    #gcd-calculator .gcd-row {\n      display: flex;\n      justify-content: space-between;\n      align-items: baseline;\n      gap: 0.75rem;\n      padding: 0.45rem 0;\n      margin: 0;\n      border: none;\n      border-bottom: 1px dashed #e0e5eb;\n      background: none;\n    }\n\n    #gcd-calculator .gcd-row:last-child {\n      border-bottom: none;\n    }\n\n    #gcd-calculator .gcd-name {\n      font-size: 0.88rem;\n      color: var(--gcd-ink-muted);\n      font-family: var(--gcd-font);\n    }\n\n    #gcd-calculator .gcd-name .gcd-sym {\n      font-family: var(--gcd-mono);\n      font-size: 0.8rem;\n      color: var(--gcd-accent);\n    }\n\n    #gcd-calculator .gcd-value {\n      font-family: var(--gcd-mono);\n      font-size: 0.95rem;\n      font-weight: 600;\n      color: var(--gcd-ink);\n      text-align: right;\n      white-space: nowrap;\n    }\n\n    #gcd-calculator .gcd-value .gcd-u {\n      font-weight: 500;\n      color: var(--gcd-ink-muted);\n      font-size: 0.8rem;\n      margin-left: 0.25rem;\n    }\n\n    #gcd-calculator .gcd-row.gcd-highlight .gcd-value {\n      color: var(--gcd-accent);\n      font-size: 1.05rem;\n    }\n  <\/style>\n<\/head>\n<body>\n  <!-- Root wrapper: paste from here when embedding in WordPress -->\n  <div id=\"gcd-calculator\" class=\"gcd-calculator\">\n    <div class=\"gcd-panel\">\n      <div class=\"gcd-grid\">\n        <section class=\"gcd-section\" aria-labelledby=\"gcd-geom-heading\">\n          <h2 class=\"gcd-section-title\" id=\"gcd-geom-heading\">Gear Geometry<\/h2>\n\n          <div class=\"gcd-field\" data-gcd-field=\"mn\">\n            <label for=\"gcd-mn\">\n              Module (normal)\n              <span class=\"gcd-sym\" title=\"Normal module\">m<sub>n<\/sub><\/span>\n            <\/label>\n            <div class=\"gcd-input-wrap\">\n              <input id=\"gcd-mn\" name=\"gcd-mn\" type=\"number\" step=\"any\" min=\"0.001\" autocomplete=\"off\" \/>\n              <span class=\"gcd-unit\">mm<\/span>\n            <\/div>\n            <p class=\"gcd-hint\">Normal module of the gear pair<\/p>\n            <p class=\"gcd-error-msg\"><\/p>\n          <\/div>\n\n          <div class=\"gcd-field\" data-gcd-field=\"z1\">\n            <label for=\"gcd-z1\">\n              Teeth &#8211; Gear 1\n              <span class=\"gcd-sym\">z<sub>1<\/sub><\/span>\n            <\/label>\n            <div class=\"gcd-input-wrap\">\n              <input id=\"gcd-z1\" name=\"gcd-z1\" type=\"number\" step=\"1\" min=\"1\" autocomplete=\"off\" \/>\n              <span class=\"gcd-unit\">&#8211;<\/span>\n            <\/div>\n            <p class=\"gcd-hint\">Must be a positive integer &gt;= 1<\/p>\n            <p class=\"gcd-error-msg\"><\/p>\n          <\/div>\n\n          <div class=\"gcd-field\" data-gcd-field=\"z2\">\n            <label for=\"gcd-z2\">\n              Teeth &#8211; Gear 2\n              <span class=\"gcd-sym\">z<sub>2<\/sub><\/span>\n            <\/label>\n            <div class=\"gcd-input-wrap\">\n              <input id=\"gcd-z2\" name=\"gcd-z2\" type=\"number\" step=\"1\" min=\"1\" autocomplete=\"off\" \/>\n              <span class=\"gcd-unit\">&#8211;<\/span>\n            <\/div>\n            <p class=\"gcd-hint\">Must be a positive integer &gt;= 1<\/p>\n            <p class=\"gcd-error-msg\"><\/p>\n          <\/div>\n\n          <div class=\"gcd-field\" data-gcd-field=\"beta\">\n            <label for=\"gcd-beta\">\n              Helix Angle\n              <span class=\"gcd-sym\" title=\"Helix angle\">&#946;<\/span>\n            <\/label>\n            <div class=\"gcd-input-wrap\">\n              <input id=\"gcd-beta\" name=\"gcd-beta\" type=\"number\" step=\"any\" min=\"0\" max=\"89.9\" autocomplete=\"off\" \/>\n              <span class=\"gcd-unit\">deg<\/span>\n            <\/div>\n            <p class=\"gcd-hint\">0 deg for spur gears; &gt; 0 deg for helical gears<\/p>\n            <p class=\"gcd-error-msg\"><\/p>\n          <\/div>\n        <\/section>\n\n        <section class=\"gcd-section\" aria-labelledby=\"gcd-shift-heading\">\n          <h2 class=\"gcd-section-title\" id=\"gcd-shift-heading\">Profile Shift &amp; Pressure Angle<\/h2>\n\n          <div class=\"gcd-field\" data-gcd-field=\"x1\">\n            <label for=\"gcd-x1\">\n              Profile Shift &#8211; Gear 1\n              <span class=\"gcd-sym\">x<sub>1<\/sub><\/span>\n            <\/label>\n            <div class=\"gcd-input-wrap\">\n              <input id=\"gcd-x1\" name=\"gcd-x1\" type=\"number\" step=\"any\" autocomplete=\"off\" \/>\n              <span class=\"gcd-unit\">&#8211;<\/span>\n            <\/div>\n            <p class=\"gcd-hint\">Addendum modification coefficient<\/p>\n            <p class=\"gcd-error-msg\"><\/p>\n          <\/div>\n\n          <div class=\"gcd-field\" data-gcd-field=\"x2\">\n            <label for=\"gcd-x2\">\n              Profile Shift &#8211; Gear 2\n              <span class=\"gcd-sym\">x<sub>2<\/sub><\/span>\n            <\/label>\n            <div class=\"gcd-input-wrap\">\n              <input id=\"gcd-x2\" name=\"gcd-x2\" type=\"number\" step=\"any\" autocomplete=\"off\" \/>\n              <span class=\"gcd-unit\">&#8211;<\/span>\n            <\/div>\n            <p class=\"gcd-hint\">Addendum modification coefficient<\/p>\n            <p class=\"gcd-error-msg\"><\/p>\n          <\/div>\n\n          <div class=\"gcd-field\" data-gcd-field=\"alphaN\">\n            <label for=\"gcd-alphaN\">\n              Normal Pressure Angle\n              <span class=\"gcd-sym\">&#945;<sub>n<\/sub><\/span>\n            <\/label>\n            <div class=\"gcd-input-wrap\">\n              <input id=\"gcd-alphaN\" name=\"gcd-alphaN\" type=\"number\" step=\"any\" min=\"0.1\" max=\"45\" autocomplete=\"off\" \/>\n              <span class=\"gcd-unit\">deg<\/span>\n            <\/div>\n            <p class=\"gcd-hint\">Typically 20 deg (ISO \/ DIN standard)<\/p>\n            <p class=\"gcd-error-msg\"><\/p>\n          <\/div>\n        <\/section>\n      <\/div>\n\n      <div class=\"gcd-actions\">\n        <button type=\"button\" class=\"gcd-btn-primary\" id=\"gcd-btnCalc\" onclick=\"return window.gcdRunCalc(event)\">Calculate<\/button>\n      <\/div>\n\n      <div class=\"gcd-results\" id=\"gcd-results\">\n        <div class=\"gcd-results-header\">\n          <h2 class=\"gcd-results-title\">Results<\/h2>\n        <\/div>\n\n        <div class=\"gcd-result-cols\">\n          <div class=\"gcd-result-block\">\n            <h3>Standard Values<\/h3>\n            <div class=\"gcd-row gcd-highlight\">\n              <span class=\"gcd-name\">Center Distance <span class=\"gcd-sym\">a<\/span><\/span>\n              <span class=\"gcd-value\" id=\"gcd-res-a\"><span class=\"gcd-num\">&#8211;<\/span><span class=\"gcd-u\">mm<\/span><\/span>\n            <\/div>\n            <div class=\"gcd-row\">\n              <span class=\"gcd-name\">Transverse Module <span class=\"gcd-sym\">m<sub>t<\/sub><\/span><\/span>\n              <span class=\"gcd-value\" id=\"gcd-res-mt\"><span class=\"gcd-num\">&#8211;<\/span><span class=\"gcd-u\">mm<\/span><\/span>\n            <\/div>\n            <div class=\"gcd-row\">\n              <span class=\"gcd-name\">Pitch Diameter <span class=\"gcd-sym\">d<sub>1<\/sub><\/span><\/span>\n              <span class=\"gcd-value\" id=\"gcd-res-d1\"><span class=\"gcd-num\">&#8211;<\/span><span class=\"gcd-u\">mm<\/span><\/span>\n            <\/div>\n            <div class=\"gcd-row\">\n              <span class=\"gcd-name\">Pitch Diameter <span class=\"gcd-sym\">d<sub>2<\/sub><\/span><\/span>\n              <span class=\"gcd-value\" id=\"gcd-res-d2\"><span class=\"gcd-num\">&#8211;<\/span><span class=\"gcd-u\">mm<\/span><\/span>\n            <\/div>\n            <div class=\"gcd-row\">\n              <span class=\"gcd-name\">Transverse Pressure Angle <span class=\"gcd-sym\">&#945;<sub>t<\/sub><\/span><\/span>\n              <span class=\"gcd-value\" id=\"gcd-res-at\"><span class=\"gcd-num\">&#8211;<\/span><span class=\"gcd-u\">deg<\/span><\/span>\n            <\/div>\n          <\/div>\n\n          <div class=\"gcd-result-block\">\n            <h3>Modified Values<\/h3>\n            <div class=\"gcd-row gcd-highlight\">\n              <span class=\"gcd-name\">Operating Center Distance <span class=\"gcd-sym\">a<sub>w<\/sub><\/span><\/span>\n              <span class=\"gcd-value\" id=\"gcd-res-aw\"><span class=\"gcd-num\">&#8211;<\/span><span class=\"gcd-u\">mm<\/span><\/span>\n            <\/div>\n            <div class=\"gcd-row\">\n              <span class=\"gcd-name\">Center Distance Shift <span class=\"gcd-sym\">&#916;a<\/span><\/span>\n              <span class=\"gcd-value\" id=\"gcd-res-da\"><span class=\"gcd-num\">&#8211;<\/span><span class=\"gcd-u\">mm<\/span><\/span>\n            <\/div>\n            <div class=\"gcd-row\">\n              <span class=\"gcd-name\">Working Pressure Angle <span class=\"gcd-sym\">&#945;<sub>wt<\/sub><\/span><\/span>\n              <span class=\"gcd-value\" id=\"gcd-res-awt\"><span class=\"gcd-num\">&#8211;<\/span><span class=\"gcd-u\">deg<\/span><\/span>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <script type=\"text\/javascript\">\n    \/* WordPress-safe: no angle brackets in this script block *\/\n    (function () {\n      \"use strict\";\n\n      function lte(a, b) { return Math.min(a, b) === a; }\n      function lt(a, b) { return Math.min(a, b) === a && a !== b; }\n      function gte(a, b) { return Math.max(a, b) === a; }\n      function gt(a, b) { return Math.max(a, b) === a && a !== b; }\n\n      var root, resultsEl, el, out, keys, i;\n\n      function deg2rad(d) {\n        return (d * Math.PI) \/ 180;\n      }\n\n      function rad2deg(r) {\n        return (r * 180) \/ Math.PI;\n      }\n\n      function involute(alphaRad) {\n        return Math.tan(alphaRad) - alphaRad;\n      }\n\n      function solveInvolute(target, guessRad) {\n        var alpha = gt(guessRad, 0) ? guessRad : 0.35;\n        var iter, f, fp, step, halfPi;\n\n        halfPi = Math.PI \/ 2;\n\n        for (iter = 0; lte(iter, 39); iter = iter + 1) {\n          if (lte(alpha, 1e-8)) alpha = 1e-8;\n          if (gte(alpha, halfPi - 1e-8)) alpha = halfPi - 1e-8;\n\n          f = Math.tan(alpha) - alpha - target;\n          fp = Math.tan(alpha) * Math.tan(alpha);\n\n          if (lt(Math.abs(fp), 1e-14)) {\n            throw new Error(\"Solver derivative near zero.\");\n          }\n\n          step = f \/ fp;\n          alpha = alpha - step;\n\n          if (lt(Math.abs(step), 1e-12)) {\n            return alpha;\n          }\n        }\n\n        throw new Error(\"Solver did not converge.\");\n      }\n\n      function fmt(n, digits) {\n        if (!isFinite(n)) return \"-\";\n        return Number(n).toFixed(digits == null ? 4 : digits);\n      }\n\n      function setValue(node, number, digits) {\n        var numEl = node.querySelector(\".gcd-num\");\n        if (numEl) numEl.textContent = fmt(number, digits);\n      }\n\n      function clearResults() {\n        var k, numEl;\n        for (k in out) {\n          if (!Object.prototype.hasOwnProperty.call(out, k)) continue;\n          numEl = out[k].querySelector(\".gcd-num\");\n          if (numEl) numEl.textContent = \"-\";\n        }\n      }\n\n      function setFieldError(name, message) {\n        var field = root.querySelector('[data-gcd-field=\"' + name + '\"]');\n        var wrap, msg;\n        if (!field) return;\n        wrap = field.querySelector(\".gcd-input-wrap\");\n        msg = field.querySelector(\".gcd-error-msg\");\n        if (message) {\n          field.classList.add(\"gcd-has-error\");\n          wrap.classList.add(\"gcd-invalid\");\n          msg.textContent = message;\n        } else {\n          field.classList.remove(\"gcd-has-error\");\n          wrap.classList.remove(\"gcd-invalid\");\n          msg.textContent = \"\";\n        }\n      }\n\n      function clearAllErrors() {\n        for (i = 0; lte(i, keys.length - 1); i = i + 1) {\n          setFieldError(keys[i], null);\n        }\n      }\n\n      function isInt(n) {\n        return typeof n === \"number\" && isFinite(n) && Math.floor(n) === n;\n      }\n\n      function readInputs() {\n        clearAllErrors();\n        var ok = true;\n        var v = {};\n\n        function fail(name, message) {\n          ok = false;\n          setFieldError(name, message);\n        }\n\n        function num(id, optional) {\n          var raw = el[id].value;\n          if (raw === \"\" || raw === null) {\n            if (optional) return 0;\n            fail(id, \"Required field.\");\n            return NaN;\n          }\n          var n = Number(raw);\n          if (!isFinite(n)) {\n            fail(id, \"Enter a valid number.\");\n            return NaN;\n          }\n          return n;\n        }\n\n        v.mn = num(\"mn\", false);\n        v.z1 = num(\"z1\", false);\n        v.z2 = num(\"z2\", false);\n        v.beta = num(\"beta\", true);\n        v.x1 = num(\"x1\", true);\n        v.x2 = num(\"x2\", true);\n        v.alphaN = num(\"alphaN\", false);\n\n        if (isFinite(v.mn) && lte(v.mn, 0)) {\n          fail(\"mn\", \"Module must be greater than 0.\");\n        }\n\n        if (isFinite(v.z1) && (lt(v.z1, 1) || !isInt(v.z1))) {\n          fail(\"z1\", \"Tooth count must be an integer of at least 1.\");\n        }\n\n        if (isFinite(v.z2) && (lt(v.z2, 1) || !isInt(v.z2))) {\n          fail(\"z2\", \"Tooth count must be an integer of at least 1.\");\n        }\n\n        if (isFinite(v.z1) && isFinite(v.z2) && v.z1 + v.z2 === 0) {\n          fail(\"z1\", \"z1 + z2 must not be zero.\");\n          fail(\"z2\", \"z1 + z2 must not be zero.\");\n        }\n\n        if (isFinite(v.beta) && (lt(v.beta, 0) || gte(v.beta, 90))) {\n          fail(\"beta\", \"Helix angle must be from 0 to 90 deg.\");\n        }\n\n        if (isFinite(v.alphaN) && (lte(v.alphaN, 0) || gte(v.alphaN, 90))) {\n          fail(\"alphaN\", \"Pressure angle must be between 0 and 90 deg.\");\n        }\n\n        return { ok: ok, values: v };\n      }\n\n      function calculate(evt) {\n        if (evt && evt.preventDefault) evt.preventDefault();\n        if (!root || !resultsEl) return false;\n\n        var parsed = readInputs();\n        if (!parsed.ok) {\n          resultsEl.classList.remove(\"gcd-is-visible\");\n          clearResults();\n          return false;\n        }\n\n        var mn = parsed.values.mn;\n        var z1 = parsed.values.z1;\n        var z2 = parsed.values.z2;\n        var betaDeg = parsed.values.beta;\n        var x1 = parsed.values.x1;\n        var x2 = parsed.values.x2;\n        var alphaNDeg = parsed.values.alphaN;\n        var beta = deg2rad(betaDeg);\n        var alphaN = deg2rad(alphaNDeg);\n        var cosBeta = Math.cos(beta);\n        var mt, a, d1, d2, alphaT, invAt, invAwt, alphaWt, aw, deltaA, halfPi;\n\n        halfPi = Math.PI \/ 2;\n\n        if (lt(Math.abs(cosBeta), 1e-12)) {\n          setFieldError(\"beta\", \"cos(beta) is near zero - invalid helix angle.\");\n          resultsEl.classList.remove(\"gcd-is-visible\");\n          clearResults();\n          return false;\n        }\n\n        try {\n          mt = mn \/ cosBeta;\n          a = (mn * (z1 + z2)) \/ (2 * cosBeta);\n          d1 = z1 * mt;\n          d2 = z2 * mt;\n          alphaT = Math.atan(Math.tan(alphaN) \/ cosBeta);\n          invAt = involute(alphaT);\n          invAwt = invAt + (2 * (x1 + x2) * Math.tan(alphaN)) \/ (z1 + z2);\n\n          if (lte(invAwt, 0)) {\n            throw new Error(\"Invalid profile shift combination.\");\n          }\n\n          alphaWt = solveInvolute(invAwt, alphaT);\n\n          if (lte(alphaWt, 0) || gte(alphaWt, halfPi)) {\n            throw new Error(\"Working pressure angle out of range.\");\n          }\n\n          aw = a * (Math.cos(alphaT) \/ Math.cos(alphaWt));\n          deltaA = aw - a;\n\n          setValue(out.a, a, 4);\n          setValue(out.mt, mt, 4);\n          setValue(out.d1, d1, 4);\n          setValue(out.d2, d2, 4);\n          setValue(out.at, rad2deg(alphaT), 4);\n          setValue(out.aw, aw, 4);\n          setValue(out.da, deltaA, 4);\n          setValue(out.awt, rad2deg(alphaWt), 4);\n\n          resultsEl.classList.add(\"gcd-is-visible\");\n        } catch (err) {\n          resultsEl.classList.remove(\"gcd-is-visible\");\n          clearResults();\n        }\n\n        return false;\n      }\n\n      function hideResults() {\n        if (resultsEl) resultsEl.classList.remove(\"gcd-is-visible\");\n      }\n\n      function initGcdCalculator() {\n        root = document.getElementById(\"gcd-calculator\");\n        if (!root || root.getAttribute(\"data-gcd-ready\") === \"1\") return;\n        root.setAttribute(\"data-gcd-ready\", \"1\");\n\n        keys = [\"mn\", \"z1\", \"z2\", \"beta\", \"x1\", \"x2\", \"alphaN\"];\n        el = {};\n\n        for (i = 0; lte(i, keys.length - 1); i = i + 1) {\n          el[keys[i]] = document.getElementById(\"gcd-\" + keys[i]);\n          if (!el[keys[i]]) return;\n        }\n\n        resultsEl = document.getElementById(\"gcd-results\");\n        if (!resultsEl) return;\n\n        out = {\n          a: document.getElementById(\"gcd-res-a\"),\n          mt: document.getElementById(\"gcd-res-mt\"),\n          d1: document.getElementById(\"gcd-res-d1\"),\n          d2: document.getElementById(\"gcd-res-d2\"),\n          at: document.getElementById(\"gcd-res-at\"),\n          aw: document.getElementById(\"gcd-res-aw\"),\n          da: document.getElementById(\"gcd-res-da\"),\n          awt: document.getElementById(\"gcd-res-awt\")\n        };\n\n        window.gcdRunCalc = calculate;\n\n        var btnCalc = document.getElementById(\"gcd-btnCalc\");\n        if (btnCalc) btnCalc.addEventListener(\"click\", calculate);\n\n        for (i = 0; lte(i, keys.length - 1); i = i + 1) {\n          el[keys[i]].addEventListener(\"input\", hideResults);\n        }\n      }\n\n      if (document.readyState === \"loading\") {\n        document.addEventListener(\"DOMContentLoaded\", initGcdCalculator);\n      } else {\n        initGcdCalculator();\n      }\n    })();\n  <\/script>\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>The Gear Center Distance Calculator is a practical engineering tool designed to quickly determine the center distance between two meshing gears. By entering essential gear&#8230;<\/p>","protected":false},"author":2,"featured_media":24570,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"pmpro_default_level":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[8520],"tags":[8547,3673,3560,8546],"class_list":["post-24563","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mechanical-basic-component-design","tag-center-distance","tag-gear-calculator","tag-gear-design","tag-gear-engineering","pmpro-has-access"],"acf":[],"jetpack_featured_media_url":"https:\/\/www.mechstream.com\/wp-content\/uploads\/2026\/08\/Gear-Center-Distance-Calculator.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/posts\/24563","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/comments?post=24563"}],"version-history":[{"count":0,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/posts\/24563\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/media\/24570"}],"wp:attachment":[{"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/media?parent=24563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/categories?post=24563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/tags?post=24563"}],"curies":[{"name":"WP","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}