{"id":24518,"date":"2026-07-17T07:39:03","date_gmt":"2026-07-17T07:39:03","guid":{"rendered":"https:\/\/www.mechstream.com\/?p=24518"},"modified":"2026-07-17T08:24:31","modified_gmt":"2026-07-17T08:24:31","slug":"spline-shaft-carrying-capacity-calculator","status":"publish","type":"post","link":"https:\/\/www.mechstream.com\/fr\/spline-shaft-carrying-capacity-calculator\/","title":{"rendered":"Spline Shaft Carrying Capacity Calculator"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The <strong>Spline Shaft Carrying Capacity Calculator<\/strong> is a free online engineering tool that helps mechanical engineers, designers, and manufacturers accurately calculate the load and torque transmission capacity of spline shafts. By entering key parameters such as spline type, shaft diameter, number of teeth, engagement length, material strength, and applied torque, the <strong>Spline Shaft Carrying Capacity Calculator<\/strong> quickly estimates the allowable carrying capacity and evaluates whether the spline connection meets design requirements. This calculator helps reduce the risk of spline tooth failure, excessive wear, and mechanical overload while improving the reliability and efficiency of power transmission systems. Ideal for automotive, industrial machinery, aerospace, and heavy equipment applications, it provides fast, accurate, browser-based calculations without requiring any software installation.<\/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>Spline Shaft Carrying Capacity Calculator<\/title>\n  <style>\n    .spline-calc {\n      --sc-slate-900: #0f172a;\n      --sc-slate-800: #1e293b;\n      --sc-slate-700: #334155;\n      --sc-slate-600: #475569;\n      --sc-slate-500: #64748b;\n      --sc-slate-400: #94a3b8;\n      --sc-slate-200: #e2e8f0;\n      --sc-slate-100: #f1f5f9;\n      --sc-slate-50: #f8fafc;\n      --sc-steel-blue: #2563eb;\n      --sc-steel-blue-dark: #1d4ed8;\n      --sc-teal: #0d9488;\n      --sc-green: #16a34a;\n      --sc-green-bg: #dcfce7;\n      --sc-green-border: #86efac;\n      --sc-red: #dc2626;\n      --sc-red-bg: #fee2e2;\n      --sc-red-border: #fca5a5;\n      --sc-radius: 10px;\n      --sc-shadow: 0 4px 24px rgba(15, 23, 42, 0.08);\n\n      box-sizing: border-box;\n      font-family: \"Segoe UI\", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;\n      color: var(--sc-slate-800);\n      line-height: 1.6;\n      max-width: 1100px;\n      margin: 0 auto;\n      padding: 2rem 1.25rem 3rem;\n    }\n\n    .spline-calc *, .spline-calc *::before, .spline-calc *::after {\n      box-sizing: border-box;\n      margin: 0;\n      padding: 0;\n    }\n\n    .spline-calc .sc-grid {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 1.5rem;\n    }\n\n    @media (max-width: 860px) {\n      .spline-calc .sc-grid { grid-template-columns: 1fr; }\n    }\n\n    .spline-calc .sc-card {\n      background: #fff;\n      border-radius: var(--sc-radius);\n      box-shadow: var(--sc-shadow);\n      border: 1px solid var(--sc-slate-200);\n      overflow: hidden;\n    }\n\n    .spline-calc .sc-card-header {\n      background: linear-gradient(135deg, var(--sc-slate-800), var(--sc-slate-700));\n      color: #fff;\n      padding: 0.9rem 1.25rem;\n      font-weight: 600;\n      font-size: 0.95rem;\n      display: flex;\n      align-items: center;\n      gap: 0.5rem;\n    }\n\n    .spline-calc .sc-card-header .sc-icon {\n      width: 20px;\n      height: 20px;\n      opacity: 0.85;\n    }\n\n    .spline-calc .sc-card-body { padding: 1.25rem; }\n\n    .spline-calc .sc-form-group {\n      margin-bottom: 1rem;\n    }\n\n    .spline-calc .sc-form-group:last-child { margin-bottom: 0; }\n\n    .spline-calc label {\n      display: flex;\n      align-items: center;\n      gap: 0.35rem;\n      font-size: 0.82rem;\n      font-weight: 600;\n      color: var(--sc-slate-700);\n      margin-bottom: 0.35rem;\n    }\n\n    .spline-calc .sc-tooltip {\n      position: relative;\n      display: inline-flex;\n      cursor: help;\n    }\n\n    .spline-calc .sc-tooltip-icon {\n      width: 15px;\n      height: 15px;\n      border-radius: 50%;\n      background: var(--sc-slate-200);\n      color: var(--sc-slate-600);\n      font-size: 0.65rem;\n      font-weight: 700;\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      flex-shrink: 0;\n    }\n\n    .spline-calc .sc-tooltip-text {\n      visibility: hidden;\n      opacity: 0;\n      position: absolute;\n      bottom: calc(100% + 6px);\n      left: 50%;\n      transform: translateX(-50%);\n      background: var(--sc-slate-900);\n      color: #fff;\n      font-size: 0.72rem;\n      font-weight: 400;\n      padding: 0.45rem 0.65rem;\n      border-radius: 6px;\n      width: max-content;\n      max-width: 240px;\n      z-index: 10;\n      transition: opacity 0.2s;\n      pointer-events: none;\n      line-height: 1.4;\n    }\n\n    .spline-calc .sc-tooltip:hover .sc-tooltip-text {\n      visibility: visible;\n      opacity: 1;\n    }\n\n    .spline-calc input[type=\"number\"] {\n      width: 100%;\n      padding: 0.6rem 0.75rem;\n      border: 1.5px solid var(--sc-slate-200);\n      border-radius: 8px;\n      font-size: 0.95rem;\n      color: var(--sc-slate-800);\n      background: var(--sc-slate-50);\n      transition: border-color 0.2s, box-shadow 0.2s;\n    }\n\n    .spline-calc input[type=\"number\"]:focus {\n      outline: none;\n      border-color: var(--sc-steel-blue);\n      box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);\n      background: #fff;\n    }\n\n    .spline-calc .sc-input-unit {\n      position: relative;\n    }\n\n    .spline-calc .sc-input-unit input { padding-right: 3.5rem; }\n\n    .spline-calc .sc-input-unit span {\n      position: absolute;\n      right: 0.75rem;\n      top: 50%;\n      transform: translateY(-50%);\n      font-size: 0.78rem;\n      color: var(--sc-slate-500);\n      font-weight: 500;\n      pointer-events: none;\n    }\n\n    .spline-calc .sc-row-2 {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 0.75rem;\n    }\n\n    @media (max-width: 480px) {\n      .spline-calc .sc-row-2 { grid-template-columns: 1fr; }\n    }\n\n    .spline-calc .sc-derived-values {\n      margin-top: 1rem;\n      padding: 0.85rem 1rem;\n      background: var(--sc-slate-50);\n      border-radius: 8px;\n      border: 1px solid var(--sc-slate-200);\n      font-size: 0.82rem;\n      color: var(--sc-slate-600);\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 0.35rem 1rem;\n    }\n\n    @media (max-width: 480px) {\n      .spline-calc .sc-derived-values { grid-template-columns: 1fr; }\n    }\n\n    .spline-calc .sc-derived-values strong { color: var(--sc-slate-800); }\n\n    .spline-calc .sc-calc-btn-wrap {\n      display: flex;\n      justify-content: center;\n      margin-top: 1.5rem;\n    }\n\n    .spline-calc .sc-calc-btn {\n      display: inline-flex;\n      align-items: center;\n      gap: 0.5rem;\n      padding: 0.75rem 2.5rem;\n      background: linear-gradient(135deg, var(--sc-steel-blue-dark), var(--sc-steel-blue));\n      color: #fff;\n      font-size: 1rem;\n      font-weight: 700;\n      border: none;\n      border-radius: 8px;\n      cursor: pointer;\n      letter-spacing: 0.03em;\n      box-shadow: 0 4px 14px rgba(37, 99, 235, 0.35);\n      transition: filter 0.2s, box-shadow 0.2s, transform 0.1s;\n    }\n\n    .spline-calc .sc-calc-btn:hover { filter: brightness(1.08); box-shadow: 0 6px 18px rgba(37, 99, 235, 0.45); }\n    .spline-calc .sc-calc-btn:active { transform: translateY(1px); }\n\n    .spline-calc .sc-results-section { margin-top: 1.5rem; display: none; }\n    .spline-calc .sc-results-section.visible { display: block; }\n\n    .spline-calc .sc-results-grid {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 1rem;\n    }\n\n    @media (max-width: 640px) {\n      .spline-calc .sc-results-grid { grid-template-columns: 1fr; }\n    }\n\n    .spline-calc .sc-result-card {\n      border-radius: var(--sc-radius);\n      padding: 1.25rem;\n      border: 2px solid var(--sc-slate-200);\n      background: #fff;\n      transition: border-color 0.3s, background 0.3s;\n    }\n\n    .spline-calc .sc-result-card.safe {\n      border-color: var(--sc-green-border);\n      background: linear-gradient(135deg, #fff 0%, var(--sc-green-bg) 100%);\n    }\n\n    .spline-calc .sc-result-card.danger {\n      border-color: var(--sc-red-border);\n      background: linear-gradient(135deg, #fff 0%, var(--sc-red-bg) 100%);\n    }\n\n    .spline-calc .sc-result-title {\n      font-size: 0.78rem;\n      font-weight: 700;\n      text-transform: uppercase;\n      letter-spacing: 0.05em;\n      color: var(--sc-slate-500);\n      margin-bottom: 0.5rem;\n    }\n\n    .spline-calc .sc-result-value {\n      font-size: 1.75rem;\n      font-weight: 700;\n      color: var(--sc-slate-900);\n      line-height: 1.2;\n    }\n\n    .spline-calc .sc-result-value .sc-unit {\n      font-size: 0.9rem;\n      font-weight: 500;\n      color: var(--sc-slate-500);\n    }\n\n    .spline-calc .sc-result-limit {\n      margin-top: 0.5rem;\n      font-size: 0.82rem;\n      color: var(--sc-slate-600);\n    }\n\n    .spline-calc .sc-result-status {\n      margin-top: 0.65rem;\n      font-size: 0.78rem;\n      font-weight: 700;\n      letter-spacing: 0.04em;\n    }\n\n    .spline-calc .sc-result-card.safe .sc-result-status { color: var(--sc-green); }\n    .spline-calc .sc-result-card.danger .sc-result-status { color: var(--sc-red); }\n\n    .spline-calc .sc-utilization { margin-top: 0.75rem; }\n\n    .spline-calc .sc-utilization-label {\n      display: flex;\n      justify-content: space-between;\n      font-size: 0.75rem;\n      color: var(--sc-slate-600);\n      margin-bottom: 0.25rem;\n    }\n\n    .spline-calc .sc-utilization-bar {\n      height: 6px;\n      background: var(--sc-slate-200);\n      border-radius: 999px;\n      overflow: hidden;\n    }\n\n    .spline-calc .sc-utilization-fill {\n      height: 100%;\n      border-radius: 999px;\n      transition: width 0.3s ease, background 0.3s;\n      max-width: 100%;\n    }\n\n    .spline-calc .sc-utilization-fill.safe { background: var(--sc-teal); }\n    .spline-calc .sc-utilization-fill.danger { background: var(--sc-red); }\n  <\/style>\n<\/head>\n<body>\n  <div class=\"spline-calc\">\n    <div class=\"sc-grid\">\n      <!-- Input Parameters -->\n      <div class=\"sc-card\">\n        <div class=\"sc-card-header\">\n          <svg class=\"sc-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 20V10M18 20V4M6 20v-4\"\/><\/svg>\n          Input Parameters\n        <\/div>\n        <div class=\"sc-card-body\">\n          <div class=\"sc-form-group\">\n            <label for=\"sc-torque\">\n              Input Torque (T)\n              <span class=\"sc-tooltip\"><span class=\"sc-tooltip-icon\">?<\/span><span class=\"sc-tooltip-text\">Applied torque transmitted through the spline coupling<\/span><\/span>\n            <\/label>\n            <div class=\"sc-input-unit\">\n              <input type=\"number\" id=\"sc-torque\" value=\"500\" min=\"0\" step=\"any\">\n              <span>N\u00b7m<\/span>\n            <\/div>\n          <\/div>\n\n          <div class=\"sc-row-2\">\n            <div class=\"sc-form-group\">\n              <label for=\"sc-teeth\">\n                Number of Teeth (z)\n                <span class=\"sc-tooltip\"><span class=\"sc-tooltip-icon\">?<\/span><span class=\"sc-tooltip-text\">Total number of spline teeth<\/span><\/span>\n              <\/label>\n              <input type=\"number\" id=\"sc-teeth\" value=\"6\" min=\"1\" step=\"1\">\n            <\/div>\n            <div class=\"sc-form-group\">\n              <label for=\"sc-length\">\n                Engagement Length (L)\n                <span class=\"sc-tooltip\"><span class=\"sc-tooltip-icon\">?<\/span><span class=\"sc-tooltip-text\">Axial length of tooth engagement<\/span><\/span>\n              <\/label>\n              <div class=\"sc-input-unit\">\n                <input type=\"number\" id=\"sc-length\" value=\"30\" min=\"0\" step=\"any\">\n                <span>mm<\/span>\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <div class=\"sc-row-2\">\n            <div class=\"sc-form-group\">\n              <label for=\"sc-majorD\">\n                Major Diameter (D)\n                <span class=\"sc-tooltip\"><span class=\"sc-tooltip-icon\">?<\/span><span class=\"sc-tooltip-text\">Outer (major) diameter of the spline<\/span><\/span>\n              <\/label>\n              <div class=\"sc-input-unit\">\n                <input type=\"number\" id=\"sc-majorD\" value=\"48\" min=\"0\" step=\"any\">\n                <span>mm<\/span>\n              <\/div>\n            <\/div>\n            <div class=\"sc-form-group\">\n              <label for=\"sc-minorD\">\n                Minor Diameter (d)\n                <span class=\"sc-tooltip\"><span class=\"sc-tooltip-icon\">?<\/span><span class=\"sc-tooltip-text\">Root (minor) diameter at the base of teeth<\/span><\/span>\n              <\/label>\n              <div class=\"sc-input-unit\">\n                <input type=\"number\" id=\"sc-minorD\" value=\"42\" min=\"0\" step=\"any\">\n                <span>mm<\/span>\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <div class=\"sc-row-2\">\n            <div class=\"sc-form-group\">\n              <label for=\"sc-chamfer\">\n                Chamfer (f)\n                <span class=\"sc-tooltip\"><span class=\"sc-tooltip-icon\">?<\/span><span class=\"sc-tooltip-text\">Chamfer or fillet reduction at tooth tip (default 0)<\/span><\/span>\n              <\/label>\n              <div class=\"sc-input-unit\">\n                <input type=\"number\" id=\"sc-chamfer\" value=\"0\" min=\"0\" step=\"any\">\n                <span>mm<\/span>\n              <\/div>\n            <\/div>\n            <div class=\"sc-form-group\">\n              <label for=\"sc-loadFactor\">\n                Load Distribution (K<sub>m<\/sub>)\n                <span class=\"sc-tooltip\"><span class=\"sc-tooltip-icon\">?<\/span><span class=\"sc-tooltip-text\">Accounts for uneven load distribution (typically 1.0\u20131.5)<\/span><\/span>\n              <\/label>\n              <input type=\"number\" id=\"sc-loadFactor\" value=\"1.2\" min=\"0.1\" step=\"any\">\n            <\/div>\n          <\/div>\n\n          <div class=\"sc-form-group\">\n            <label for=\"sc-shareFactor\">\n              Load-Sharing Factor (\u03b7)\n              <span class=\"sc-tooltip\"><span class=\"sc-tooltip-icon\">?<\/span><span class=\"sc-tooltip-text\">Fraction of teeth sharing the load (typically 0.75\u20130.90)<\/span><\/span>\n            <\/label>\n            <input type=\"number\" id=\"sc-shareFactor\" value=\"0.75\" min=\"0.01\" max=\"1\" step=\"any\">\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Material Limits -->\n      <div class=\"sc-card\">\n        <div class=\"sc-card-header\">\n          <svg class=\"sc-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg>\n          Material Limits\n        <\/div>\n        <div class=\"sc-card-body\">\n          <div class=\"sc-form-group\">\n            <label for=\"sc-allowBearing\">\n              Allowable Bearing Stress [\u03c3<sub>b<\/sub>]\n              <span class=\"sc-tooltip\"><span class=\"sc-tooltip-icon\">?<\/span><span class=\"sc-tooltip-text\">Material-dependent limit for surface compressive stress (typ. 40\u2013100 MPa)<\/span><\/span>\n            <\/label>\n            <div class=\"sc-input-unit\">\n              <input type=\"number\" id=\"sc-allowBearing\" value=\"80\" min=\"0\" step=\"any\">\n              <span>MPa<\/span>\n            <\/div>\n          <\/div>\n\n          <div class=\"sc-form-group\">\n            <label for=\"sc-allowShear\">\n              Allowable Shear Stress [\u03c4]\n              <span class=\"sc-tooltip\"><span class=\"sc-tooltip-icon\">?<\/span><span class=\"sc-tooltip-text\">Material-dependent limit for torsional shear at minor diameter (typ. 50\u201380 MPa)<\/span><\/span>\n            <\/label>\n            <div class=\"sc-input-unit\">\n              <input type=\"number\" id=\"sc-allowShear\" value=\"60\" min=\"0\" step=\"any\">\n              <span>MPa<\/span>\n            <\/div>\n          <\/div>\n\n          <div class=\"sc-derived-values\">\n            <span>Mean Pitch Diameter D<sub>m<\/sub>: <strong id=\"sc-derivedDm\">\u2014<\/strong><\/span>\n            <span>Contact Height h: <strong id=\"sc-derivedH\">\u2014<\/strong><\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"sc-calc-btn-wrap\">\n      <button class=\"sc-calc-btn\" id=\"sc-calcBtn\">\n        <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\"><path d=\"M9 12l2 2 4-4\"\/><circle cx=\"12\" cy=\"12\" r=\"10\"\/><\/svg>\n        Calculate\n      <\/button>\n    <\/div>\n\n    <!-- Results -->\n    <div class=\"sc-results-section\" id=\"sc-resultsSection\">\n      <div class=\"sc-card\">\n        <div class=\"sc-card-header\">\n          <svg class=\"sc-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><polyline points=\"22 4 12 14.01 9 11.01\"\/><\/svg>\n          Calculation Results\n        <\/div>\n        <div class=\"sc-card-body\">\n          <div class=\"sc-results-grid\">\n            <!-- Bearing Stress -->\n            <div id=\"sc-bearingResult\" class=\"sc-result-card safe\">\n              <div class=\"sc-result-title\">A. Spline Tooth Bearing Stress (\u03c3<sub>b<\/sub>)<\/div>\n              <div class=\"sc-result-value\"><span id=\"sc-bearingStress\">\u2014<\/span> <span class=\"sc-unit\">MPa<\/span><\/div>\n              <div class=\"sc-result-limit\">Allowable: <span id=\"sc-bearingLimit\">80<\/span> MPa<\/div>\n              <div class=\"sc-result-status\" id=\"sc-bearingStatus\">WITHIN LIMITS<\/div>\n              <div class=\"sc-utilization\">\n                <div class=\"sc-utilization-label\">\n                  <span>Utilization<\/span>\n                  <span id=\"sc-bearingUtil\">\u2014<\/span>\n                <\/div>\n                <div class=\"sc-utilization-bar\">\n                  <div id=\"sc-bearingUtilBar\" class=\"sc-utilization-fill safe\" style=\"width: 0%\"><\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n\n            <!-- Shear Stress -->\n            <div id=\"sc-shearResult\" class=\"sc-result-card safe\">\n              <div class=\"sc-result-title\">B. Shaft Torsional Shear Stress (\u03c4)<\/div>\n              <div class=\"sc-result-value\"><span id=\"sc-shearStress\">\u2014<\/span> <span class=\"sc-unit\">MPa<\/span><\/div>\n              <div class=\"sc-result-limit\">Allowable: <span id=\"sc-shearLimit\">60<\/span> MPa<\/div>\n              <div class=\"sc-result-status\" id=\"sc-shearStatus\">WITHIN LIMITS<\/div>\n              <div class=\"sc-utilization\">\n                <div class=\"sc-utilization-label\">\n                  <span>Utilization<\/span>\n                  <span id=\"sc-shearUtil\">\u2014<\/span>\n                <\/div>\n                <div class=\"sc-utilization-bar\">\n                  <div id=\"sc-shearUtilBar\" class=\"sc-utilization-fill safe\" style=\"width: 0%\"><\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <script>\n    (function () {\n      const inputs = {\n        torque:       document.getElementById('sc-torque'),\n        teeth:        document.getElementById('sc-teeth'),\n        length:       document.getElementById('sc-length'),\n        majorD:       document.getElementById('sc-majorD'),\n        minorD:       document.getElementById('sc-minorD'),\n        chamfer:      document.getElementById('sc-chamfer'),\n        loadFactor:   document.getElementById('sc-loadFactor'),\n        shareFactor:  document.getElementById('sc-shareFactor'),\n        allowBearing: document.getElementById('sc-allowBearing'),\n        allowShear:   document.getElementById('sc-allowShear')\n      };\n\n      const outputs = {\n        derivedDm:      document.getElementById('sc-derivedDm'),\n        derivedH:       document.getElementById('sc-derivedH'),\n        bearingStress:  document.getElementById('sc-bearingStress'),\n        bearingLimit:   document.getElementById('sc-bearingLimit'),\n        bearingStatus:  document.getElementById('sc-bearingStatus'),\n        bearingUtil:    document.getElementById('sc-bearingUtil'),\n        bearingUtilBar: document.getElementById('sc-bearingUtilBar'),\n        bearingResult:  document.getElementById('sc-bearingResult'),\n        shearStress:    document.getElementById('sc-shearStress'),\n        shearLimit:     document.getElementById('sc-shearLimit'),\n        shearStatus:    document.getElementById('sc-shearStatus'),\n        shearUtil:      document.getElementById('sc-shearUtil'),\n        shearUtilBar:   document.getElementById('sc-shearUtilBar'),\n        shearResult:    document.getElementById('sc-shearResult')\n      };\n\n      function parseInput(el) {\n        var val = parseFloat(el.value);\n        return isNaN(val) ? NaN : val;\n      }\n\n      function formatNum(n, decimals) {\n        if (!isFinite(n)) return '\u2014';\n        return n.toFixed(decimals);\n      }\n\n      function updateResultCard(card, statusEl, utilBar, isSafe) {\n        card.classList.toggle('safe', isSafe);\n        card.classList.toggle('danger', !isSafe);\n        statusEl.textContent = isSafe ? 'WITHIN LIMITS' : 'EXCEEDS LIMIT';\n        utilBar.classList.toggle('safe', isSafe);\n        utilBar.classList.toggle('danger', !isSafe);\n      }\n\n      function calculate() {\n        var T   = parseInput(inputs.torque);\n        var z   = parseInput(inputs.teeth);\n        var L   = parseInput(inputs.length);\n        var D   = parseInput(inputs.majorD);\n        var d   = parseInput(inputs.minorD);\n        var f   = parseInput(inputs.chamfer);\n        var Km  = parseInput(inputs.loadFactor);\n        var eta = parseInput(inputs.shareFactor);\n        var allowBearing = parseInput(inputs.allowBearing);\n        var allowShear   = parseInput(inputs.allowShear);\n\n        var Dm = (D + d) \/ 2;\n        var h  = (D - d) \/ 2 - 2 * f;\n\n        outputs.derivedDm.textContent = isFinite(Dm) ? formatNum(Dm, 2) + ' mm' : '\u2014';\n        outputs.derivedH.textContent  = isFinite(h)  ? formatNum(h,  2) + ' mm' : '\u2014';\n\n        var geometryValid = D > d && h > 0 && L > 0 && z >= 1 && eta > 0 && Km > 0;\n        var inputsValid   = [T, z, L, D, d, f, Km, eta, allowBearing, allowShear].every(function (v) { return isFinite(v) && v >= 0; });\n\n        if (!inputsValid || !geometryValid) {\n          outputs.bearingStress.textContent = '\u2014';\n          outputs.shearStress.textContent   = '\u2014';\n          outputs.bearingUtil.textContent   = '\u2014';\n          outputs.shearUtil.textContent     = '\u2014';\n          outputs.bearingUtilBar.style.width = '0%';\n          outputs.shearUtilBar.style.width   = '0%';\n          outputs.bearingStatus.textContent = geometryValid ? 'INVALID INPUT' : 'CHECK GEOMETRY';\n          outputs.shearStatus.textContent   = geometryValid ? 'INVALID INPUT' : 'CHECK GEOMETRY';\n          return;\n        }\n\n        var sigmaB = (2 * T * Km * 1000) \/ (Dm * h * L * z * eta);\n        var tau    = (16 * T * 1000) \/ (Math.PI * Math.pow(d, 3));\n\n        outputs.bearingStress.textContent = formatNum(sigmaB, 2);\n        outputs.shearStress.textContent   = formatNum(tau, 2);\n        outputs.bearingLimit.textContent  = formatNum(allowBearing, 1);\n        outputs.shearLimit.textContent    = formatNum(allowShear, 1);\n\n        var bearingSafe = allowBearing > 0 && sigmaB <= allowBearing;\n        var shearSafe   = allowShear   > 0 && tau    <= allowShear;\n\n        var bearingUtilPct = allowBearing > 0 ? (sigmaB \/ allowBearing) * 100 : 0;\n        var shearUtilPct   = allowShear   > 0 ? (tau    \/ allowShear)   * 100 : 0;\n\n        outputs.bearingUtil.textContent = formatNum(bearingUtilPct, 1) + '%';\n        outputs.shearUtil.textContent   = formatNum(shearUtilPct,   1) + '%';\n        outputs.bearingUtilBar.style.width = Math.min(bearingUtilPct, 100) + '%';\n        outputs.shearUtilBar.style.width   = Math.min(shearUtilPct,   100) + '%';\n\n        updateResultCard(outputs.bearingResult, outputs.bearingStatus, outputs.bearingUtilBar, bearingSafe);\n        updateResultCard(outputs.shearResult,   outputs.shearStatus,   outputs.shearUtilBar,   shearSafe);\n      }\n\n      document.getElementById('sc-calcBtn').addEventListener('click', function () {\n        calculate();\n        document.getElementById('sc-resultsSection').classList.add('visible');\n      });\n    })();\n  <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>The Spline Shaft Carrying Capacity Calculator is a free online engineering tool that helps mechanical engineers, designers, and manufacturers accurately calculate the load and torque&#8230;<\/p>","protected":false},"author":2,"featured_media":24520,"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":[3390,2940,8529,8530],"class_list":["post-24518","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mechanical-basic-component-design","tag-mechanical-engineering","tag-shaft-design","tag-spline-shaft","tag-torque-calculator","pmpro-has-access"],"acf":[],"jetpack_featured_media_url":"https:\/\/www.mechstream.com\/wp-content\/uploads\/2026\/07\/Spline-Shaft-Carrying-Capacity-Calculator.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts\/24518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/comments?post=24518"}],"version-history":[{"count":2,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts\/24518\/revisions"}],"predecessor-version":[{"id":24522,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts\/24518\/revisions\/24522"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/media\/24520"}],"wp:attachment":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/media?parent=24518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/categories?post=24518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/tags?post=24518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}