{"id":15530,"date":"2025-04-17T07:50:35","date_gmt":"2025-04-17T07:50:35","guid":{"rendered":"https:\/\/www.mechstream.com\/?p=15530"},"modified":"2025-04-17T07:58:35","modified_gmt":"2025-04-17T07:58:35","slug":"key-strength-calculator","status":"publish","type":"post","link":"https:\/\/www.mechstream.com\/fr\/key-strength-calculator\/","title":{"rendered":"Calculateur de force cl\u00e9"},"content":{"rendered":"\n<p>Unlock your engineering potential with our Key Strength Calculator, a vital tool for mechanical and structural engineers. This calculator provides precise estimates of the strength of key joints, ensuring reliability and safety in your designs. Whether you&#8217;re assessing loads or optimizing materials, our user-friendly interface and advanced algorithms will streamline your workflow and enhance your productivity. Experience the convenience and accuracy that meet the demands of modern engineering standards. Trust in our Key Strength Calculator to support your project&#8217;s success.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"822\" height=\"375\" src=\"https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/04\/ddb78f5c-feb9-429e-9f31-dbe399277bc.png\" loading=\"lazy\" alt=\"Key Strength Calculator\" class=\"wp-image-15532\" srcset=\"https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/04\/ddb78f5c-feb9-429e-9f31-dbe399277bc.png 822w, https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/04\/ddb78f5c-feb9-429e-9f31-dbe399277bc-300x137.png 300w, https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/04\/ddb78f5c-feb9-429e-9f31-dbe399277bc-768x350.png 768w, https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/04\/ddb78f5c-feb9-429e-9f31-dbe399277bc-100x46.png 100w, https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/04\/ddb78f5c-feb9-429e-9f31-dbe399277bc-700x319.png 700w\" sizes=\"(max-width: 822px) 100vw, 822px\" \/><\/figure>\n<\/div>\n\n\n<!DOCTYPE html>\n<div class=\"key-strength-calc-wrapper\">\n    <style>\n        .key-strength-calc-wrapper {\n            font-family: inherit;\n            line-height: 1.6;\n            color: #333;\n        }\n\n        .key-strength-calc-wrapper * {\n            box-sizing: border-box;\n        }\n\n        .key-strength-calc-wrapper .calculator-container {\n            max-width: 900px;\n            margin: 20px auto;\n            background-color: #fff;\n            padding: 25px;\n            border-radius: 8px;\n            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n        }\n\n        .key-strength-calc-wrapper h3 {\n            color: #000;\n            margin-top: 0;\n            margin-bottom: 15px;\n            border-bottom: 1px solid #eee;\n            padding-bottom: 10px;\n            font-size: inherit;\n            line-height: inherit;\n        }\n\n        .key-strength-calc-wrapper .param-explanation ul {\n            list-style: none;\n            padding: 0;\n            margin: 0;\n            display: grid;\n            grid-template-columns: repeat(2, 1fr);\n            gap: 10px;\n        }\n\n        .key-strength-calc-wrapper .param-explanation li {\n            padding: 8px;\n            background-color: #f8f9fa;\n            border-radius: 4px;\n            margin: 0;\n        }\n\n        .key-strength-calc-wrapper .param-explanation strong {\n            color: #1a73e8;\n            margin-right: 8px;\n        }\n\n        .key-strength-calc-wrapper .calculator-form {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 20px;\n            margin-top: 20px;\n        }\n\n        .key-strength-calc-wrapper .input-group {\n            flex: 1 1 calc(50% - 10px);\n            min-width: 200px;\n            max-width: calc(50% - 10px);\n            margin-bottom: 0;\n        }\n\n        .key-strength-calc-wrapper .calculator-form label {\n            display: block;\n            margin-bottom: 8px;\n            font-weight: 500;\n            color: #333;\n        }\n\n        .key-strength-calc-wrapper .calculator-form input[type=\"number\"] {\n            width: 100%;\n            padding: 8px 12px;\n            border: 1px solid #ced4da;\n            border-radius: 4px;\n            font-size: 1em;\n            transition: border-color 0.15s ease-in-out;\n            box-sizing: border-box;\n            line-height: normal;\n            height: auto;\n        }\n\n        .key-strength-calc-wrapper .calculator-form input[type=\"number\"]:focus {\n            border-color: #1a73e8;\n            outline: none;\n            box-shadow: 0 0 0 2px rgba(26,115,232,0.2);\n        }\n\n        .key-strength-calc-wrapper .calculator-form .unit {\n            position: absolute;\n            right: 10px;\n            top: 50%;\n            transform: translateY(-50%);\n            color: #666;\n            pointer-events: none;\n        }\n\n        .key-strength-calc-wrapper .input-container {\n            position: relative;\n        }\n\n        .key-strength-calc-wrapper .input-with-unit {\n            padding-right: 45px;\n        }\n\n        .key-strength-calc-wrapper .calculate-button-container {\n            flex: 1 1 100%;\n            text-align: center;\n            margin-top: 20px;\n        }\n\n        .key-strength-calc-wrapper .calculate-button {\n            background-color: #1a73e8;\n            color: white;\n            border: none;\n            border-radius: 4px;\n            padding: 12px 24px;\n            font-size: 1.1em;\n            cursor: pointer;\n            transition: background-color 0.3s ease;\n            min-width: 200px;\n            text-transform: none;\n            font-weight: normal;\n            letter-spacing: normal;\n        }\n\n        .key-strength-calc-wrapper .calculate-button:hover {\n            background-color: #0d5db8;\n            color: white;\n        }\n\n        .key-strength-calc-wrapper .results-area {\n            margin-top: 25px;\n            padding: 20px;\n            background-color: #e6f4ff;\n            border-left: 5px solid #1a73e8;\n            border-radius: 4px;\n            display: none;\n        }\n\n        .key-strength-calc-wrapper .results-area h3 {\n            margin-top: 0;\n            color: #000;\n            border-bottom: none;\n        }\n\n        .key-strength-calc-wrapper .results-area p {\n            margin: 10px 0;\n            font-size: 1.05em;\n        }\n\n        .key-strength-calc-wrapper .results-area strong {\n            font-size: 1.2em;\n            color: #1a73e8;\n        }\n\n        .key-strength-calc-wrapper .results-area .pass {\n            color: #28a745;\n            font-weight: bold;\n        }\n\n        .key-strength-calc-wrapper .results-area .fail {\n            color: #dc3545;\n            font-weight: bold;\n        }\n\n        .key-strength-calc-wrapper .results-area .error {\n            color: #dc3545;\n            font-weight: bold;\n        }\n\n        @media (max-width: 768px) {\n            .key-strength-calc-wrapper .calculator-form {\n                gap: 15px;\n            }\n            .key-strength-calc-wrapper .input-group {\n                flex: 1 1 100%;\n                max-width: 100%;\n            }\n            .key-strength-calc-wrapper .param-explanation ul {\n                grid-template-columns: 1fr;\n            }\n        }\n\n        @media (max-width: 480px) {\n            .key-strength-calc-wrapper .calculator-container {\n                padding: 15px;\n            }\n            .key-strength-calc-wrapper h3 {\n                font-size: 1.1em;\n            }\n        }\n    <\/style>\n\n    <div class=\"calculator-container\">\n        <!-- Section 1: Parameter Definitions -->\n        <div class=\"param-explanation\">\n            <h3>Parameter Definitions<\/h3>\n            <ul>\n                <li><strong>T:<\/strong> Torque applied to the shaft (N\u00b7m)<\/li>\n                <li><strong>L:<\/strong> Total length of the key (mm)<\/li>\n                <li><strong>b:<\/strong> Width of the key (mm)<\/li>\n                <li><strong>D:<\/strong> Diameter of the shaft (mm)<\/li>\n                <li><strong>h:<\/strong> Height of the key (mm)<\/li>\n                <li><strong>l:<\/strong> Working length (L-b) (mm)<\/li>\n                <li><strong>k:<\/strong> Contact height (h\/2) (mm)<\/li>\n                <li><strong>P<sub>pp<\/sub>:<\/strong> Allowable Bearing Stress (MPa)<\/li>\n                <li><strong>\u03c4<sub>p<\/sub>:<\/strong> Allowable Shear Stress (MPa)<\/li>\n            <\/ul>\n        <\/div>\n\n        <!-- Section 3: Calculator -->\n        <h3>Calculator<\/h3>\n        <div class=\"calculator-form\">\n            <div class=\"input-group\">\n                <label for=\"torque\">Torque (T)<\/label>\n                <div class=\"input-container\">\n                    <input type=\"number\" id=\"torque\" class=\"input-with-unit\" step=\"any\" required>\n                    <span class=\"unit\">N\u00b7m<\/span>\n                <\/div>\n            <\/div>\n            <div class=\"input-group\">\n                <label for=\"keyLength\">Key Length (L)<\/label>\n                <div class=\"input-container\">\n                    <input type=\"number\" id=\"keyLength\" class=\"input-with-unit\" step=\"any\" required>\n                    <span class=\"unit\">mm<\/span>\n                <\/div>\n            <\/div>\n            <div class=\"input-group\">\n                <label for=\"keyWidth\">Key Width (b)<\/label>\n                <div class=\"input-container\">\n                    <input type=\"number\" id=\"keyWidth\" class=\"input-with-unit\" step=\"any\" required>\n                    <span class=\"unit\">mm<\/span>\n                <\/div>\n            <\/div>\n            <div class=\"input-group\">\n                <label for=\"shaftDiameter\">Shaft Diameter (D)<\/label>\n                <div class=\"input-container\">\n                    <input type=\"number\" id=\"shaftDiameter\" class=\"input-with-unit\" step=\"any\" required>\n                    <span class=\"unit\">mm<\/span>\n                <\/div>\n            <\/div>\n            <div class=\"input-group\">\n                <label for=\"keyHeight\">Key Height (h)<\/label>\n                <div class=\"input-container\">\n                    <input type=\"number\" id=\"keyHeight\" class=\"input-with-unit\" step=\"any\" required>\n                    <span class=\"unit\">mm<\/span>\n                <\/div>\n            <\/div>\n            <div class=\"input-group\">\n                <label for=\"workingLength\">Working Length (l = L-b)<\/label>\n                <div class=\"input-container\">\n                    <input type=\"number\" id=\"workingLength\" class=\"input-with-unit\" readonly>\n                    <span class=\"unit\">mm<\/span>\n                <\/div>\n            <\/div>\n            <div class=\"input-group\">\n                <label for=\"contactHeight\">Contact Height (k = h\/2)<\/label>\n                <div class=\"input-container\">\n                    <input type=\"number\" id=\"contactHeight\" class=\"input-with-unit\" readonly>\n                    <span class=\"unit\">mm<\/span>\n                <\/div>\n            <\/div>\n            <div class=\"input-group\">\n                <label for=\"allowableBearingStress\">Allowable Bearing Stress (P<sub>pp<\/sub>)<\/label>\n                <div class=\"input-container\">\n                    <input type=\"number\" id=\"allowableBearingStress\" class=\"input-with-unit\" step=\"any\" required>\n                    <span class=\"unit\">MPa<\/span>\n                <\/div>\n            <\/div>\n            <div class=\"input-group\">\n                <label for=\"allowableShearStress\">Allowable Shear Stress (\u03c4<sub>p<\/sub>)<\/label>\n                <div class=\"input-container\">\n                    <input type=\"number\" id=\"allowableShearStress\" class=\"input-with-unit\" step=\"any\" required>\n                    <span class=\"unit\">MPa<\/span>\n                <\/div>\n            <\/div>\n            <div class=\"calculate-button-container\">\n                <button class=\"calculate-button\" onclick=\"calculateKeyStrength()\">Calculate<\/button>\n            <\/div>\n        <\/div>\n\n        <!-- Section 4: Results Area -->\n        <div class=\"results-area\" id=\"resultsArea\">\n            <h3>Calculation Results<\/h3>\n            <p id=\"bearingStressResult\"><\/p>\n            <p id=\"shearStressResult\"><\/p>\n            <p id=\"bearingCheckResult\"><\/p>\n            <p id=\"shearCheckResult\"><\/p>\n            <p id=\"errorMessage\" class=\"error\"><\/p>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n    \/\/ Function to update dependent values (l and k)\n    function updateDependentValues() {\n        const L = parseFloat(document.getElementById('keyLength').value) || 0;\n        const b = parseFloat(document.getElementById('keyWidth').value) || 0;\n        const h = parseFloat(document.getElementById('keyHeight').value) || 0;\n\n        \/\/ Calculate l = L-b\n        const l = L - b;\n        document.getElementById('workingLength').value = l > 0 ? l.toFixed(2) : '';\n\n        \/\/ Calculate k = h\/2\n        const k = h \/ 2;\n        document.getElementById('contactHeight').value = h > 0 ? k.toFixed(2) : '';\n    }\n\n    \/\/ Add event listeners for input changes\n    document.getElementById('keyLength').addEventListener('input', updateDependentValues);\n    document.getElementById('keyWidth').addEventListener('input', updateDependentValues);\n    document.getElementById('keyHeight').addEventListener('input', updateDependentValues);\n\n    function calculateKeyStrength() {\n        \/\/ --- Get Input Values ---\n        const T_Nm = parseFloat(document.getElementById('torque').value);\n        const L = parseFloat(document.getElementById('keyLength').value);\n        const b = parseFloat(document.getElementById('keyWidth').value);\n        const D = parseFloat(document.getElementById('shaftDiameter').value);\n        const h = parseFloat(document.getElementById('keyHeight').value);\n        const P_pp = parseFloat(document.getElementById('allowableBearingStress').value);\n        const tau_p = parseFloat(document.getElementById('allowableShearStress').value);\n\n        const resultsArea = document.getElementById('resultsArea');\n        const bearingStressResultP = document.getElementById('bearingStressResult');\n        const shearStressResultP = document.getElementById('shearStressResult');\n        const bearingCheckResultP = document.getElementById('bearingCheckResult');\n        const shearCheckResultP = document.getElementById('shearCheckResult');\n        const errorMessageP = document.getElementById('errorMessage');\n\n        \/\/ --- Clear Previous Results and Errors ---\n        bearingStressResultP.innerHTML = '';\n        shearStressResultP.innerHTML = '';\n        bearingCheckResultP.innerHTML = '';\n        shearCheckResultP.innerHTML = '';\n        errorMessageP.innerHTML = '';\n        resultsArea.style.display = 'none';\n\n        \/\/ --- Input Validation ---\n        if (isNaN(T_Nm) || isNaN(L) || isNaN(b) || isNaN(D) || isNaN(h) || isNaN(P_pp) || isNaN(tau_p)) {\n            errorMessageP.innerHTML = 'Error: Please enter valid numbers for all input fields.';\n            resultsArea.style.display = 'block';\n            return;\n        }\n        if (T_Nm <= 0 || L <= 0 || b <= 0 || D <= 0 || h <= 0 || P_pp <= 0 || tau_p <= 0) {\n            errorMessageP.innerHTML = 'Error: All input values must be positive.';\n            resultsArea.style.display = 'block';\n            return;\n        }\n\n        \/\/ --- Calculate dependent values ---\n        const l = L - b; \/\/ Working length\n        const k = h \/ 2; \/\/ Contact height\n\n        if (l <= 0) {\n            errorMessageP.innerHTML = 'Error: Working length (L-b) must be positive.';\n            resultsArea.style.display = 'block';\n            return;\n        }\n\n        \/\/ --- Calculations ---\n        const T_Nmm = T_Nm * 1000; \/\/ Convert Torque to N\u00b7mm\n\n        \/\/ Bearing Stress Calculation (MPa) - P = 2T\/(D*k*l)\n        const P = (2 * T_Nmm) \/ (D * k * l);\n\n        \/\/ Shear Stress Calculation (MPa) - \u03c4 = 2T\/(D*b*l)\n        const T = (2 * T_Nmm) \/ (D * b * l);\n\n        \/\/ --- Display Results ---\n        bearingStressResultP.innerHTML = `Calculated Bearing Stress (P): <strong>${P.toFixed(2)}<\/strong> MPa`;\n        shearStressResultP.innerHTML = `Calculated Shear Stress (T): <strong>${T.toFixed(2)}<\/strong> MPa`;\n\n        \/\/ Check against allowable limits\n        if (P <= P_pp) {\n            bearingCheckResultP.innerHTML = `Bearing Stress Check: <span class=\"pass\">PASS<\/span> (P \u2264 P<sub>pp<\/sub> = ${P_pp} MPa)`;\n        } else {\n            bearingCheckResultP.innerHTML = `Bearing Stress Check: <span class=\"fail\">FAIL<\/span> (P > P<sub>pp<\/sub> = ${P_pp} MPa)`;\n        }\n\n        if (T <= tau_p) {\n            shearCheckResultP.innerHTML = `Shear Stress Check: <span class=\"pass\">PASS<\/span> (T \u2264 \u03c4<sub>p<\/sub> = ${tau_p} MPa)`;\n        } else {\n            shearCheckResultP.innerHTML = `Shear Stress Check: <span class=\"fail\">FAIL<\/span> (T > \u03c4<sub>p<\/sub> = ${tau_p} MPa)`;\n        }\n\n        resultsArea.style.display = 'block';\n    }\n<\/script>\n\n<\/body>\n<\/html> \n","protected":false},"excerpt":{"rendered":"<p>Unlock your engineering potential with our Key Strength Calculator, a vital tool for mechanical and structural engineers. This calculator provides precise estimates of the strength&#8230;<\/p>","protected":false},"author":2,"featured_media":15531,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"pmpro_default_level":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3424],"tags":[3559,3557,3558],"class_list":["post-15530","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-keyway-pin-shaft-calculator","tag-engineering-safety-analysis","tag-mechanical-design-tools","tag-structural-engineering-calculator","pmpro-has-access"],"acf":[],"jetpack_featured_media_url":"https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/04\/ddb78f5c-feb9-429e-9f31-dbe399277bc8.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts\/15530","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=15530"}],"version-history":[{"count":0,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts\/15530\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/media\/15531"}],"wp:attachment":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/media?parent=15530"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/categories?post=15530"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/tags?post=15530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}