{"id":15898,"date":"2025-05-20T02:42:23","date_gmt":"2025-05-20T02:42:23","guid":{"rendered":"https:\/\/www.mechstream.com\/?p=15898"},"modified":"2025-05-20T02:42:25","modified_gmt":"2025-05-20T02:42:25","slug":"torsion-spring-calculator","status":"publish","type":"post","link":"https:\/\/www.mechstream.com\/fr\/torsion-spring-calculator\/","title":{"rendered":"Calculateur de ressorts de torsion"},"content":{"rendered":"\n<p>Unlock the precision of your engineering projects with our Torsion Spring Calculator. This tool offers you the ability to calculate accurate torque, angle of twist, and stress, essential for designing efficient torsion springs. Perfect for engineers and designers, our calculator ensures optimal performance and durability in various applications. With user-friendly features and state-of-the-art algorithms, achieve unparalleled success in your projects. Save time and enhance reliability by integrating our Torsion Spring Calculator into your workflow today.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"395\" height=\"137\" src=\"https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/05\/QQ20250520-103751-\u5df2\u7f16\u8f91.png\" loading=\"lazy\" alt=\"Torsion Spring Calculator\" class=\"wp-image-15899\" srcset=\"https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/05\/QQ20250520-103751-\u5df2\u7f16\u8f91.png 395w, https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/05\/QQ20250520-103751-\u5df2\u7f16\u8f91-300x104.png 300w, https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/05\/QQ20250520-103751-\u5df2\u7f16\u8f91-100x35.png 100w\" sizes=\"(max-width: 395px) 100vw, 395px\" \/><\/figure>\n<\/div>\n\n\n<!-- Torsion Spring Calculator - Embeddable Code for WordPress -->\n\n<style>\n    \/* Scoped styles for the calculator *\/\n    .calculator-container {\n        display: grid;\n        grid-template-columns: 1fr;\n        gap: 30px;\n        margin-top: 20px;\n        \/* Inherit basic box-sizing from theme or set explicitly if needed *\/\n        box-sizing: border-box;\n    }\n\n    .calculator-container *,\n    .calculator-container *:before,\n    .calculator-container *:after {\n        box-sizing: border-box;\n    }\n\n    .calculator-container .section {\n        background: white;\n        padding: 20px;\n        border-radius: 8px;\n        box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n    }\n\n    .calculator-container h2 {\n        color: var(--primary-color);\n        margin-bottom: 20px;\n        font-size: 1.5rem;\n        \/* Inherit font from theme or set explicitly if needed *\/\n        font-family: inherit;\n    }\n\n    .calculator-container .parameter-list {\n        list-style: none;\n        padding: 0;\n        display: grid;\n        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); \/* Adjust minmax as needed *\/\n        gap: 10px; \/* Spacing between items *\/\n    }\n\n    .calculator-container .parameter-list li {\n        font-size: 0.9rem;\n    }\n\n    .calculator-container .input-group {\n        margin-bottom: 15px;\n    }\n\n    .calculator-container label {\n        display: block;\n        margin-bottom: 5px;\n        font-weight: 500;\n        \/* Inherit font from theme or set explicitly if needed *\/\n        font-family: inherit;\n    }\n\n    .calculator-container input[type=\"number\"], \n    .calculator-container select {\n        width: 100%;\n        padding: 8px;\n        border: 1px solid var(--border-color);\n        border-radius: 4px;\n        font-size: 1rem;\n        \/* Inherit font from theme or set explicitly if needed *\/\n        font-family: inherit;\n    }\n\n    .calculator-container .unit {\n        color: #666;\n        font-size: 0.9rem;\n        margin-left: 5px;\n    }\n\n    .calculator-container .calculate-btn {\n        background-color: var(--secondary-color);\n        color: white;\n        border: none;\n        padding: 12px 24px;\n        border-radius: 4px;\n        cursor: pointer;\n        width: 25%;\n        margin: 10px auto; \/* Center the button horizontally and add vertical space *\/\n        font-size: 1rem;\n        transition: background-color 0.3s;\n        display: block; \/* Make it a block element for margin auto to work *\/\n        \/* Inherit font from theme or set explicitly if needed *\/\n        font-family: inherit;\n    }\n\n    .calculator-container .calculate-btn:hover {\n        background-color: #2980b9;\n        color: white;\n    }\n\n    .calculator-container .results {\n        display: none;\n        background-color: var(--result-bg);\n        padding: 20px;\n        border-radius: 4px;\n        margin-top: 20px;\n    }\n\n    .calculator-container .results h2 {\n        margin-top: 0;\n    }\n\n    .calculator-container .result-item {\n        margin-bottom: 10px;\n        font-size: 1.1rem;\n    }\n\n    .calculator-container .result-value {\n        font-weight: bold;\n        color: var(--primary-color);\n    }\n\n    @media (max-width: 768px) {\n        .calculator-container {\n            grid-template-columns: 1fr;\n        }\n\n        \/* On smaller screens, revert calculator inputs to single column *\/\n        .calculator-container .input-grid {\n            grid-template-columns: 1fr;\n        }\n\n        \/* On smaller screens, adjust button width *\/\n        .calculator-container .calculate-btn {\n             width: 50%; \/* Adjust width for better mobile usability *\/\n        }\n    }\n\n    \/* Style for arranging inputs in two columns *\/\n    .calculator-container .input-grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 20px; \/* Adjust spacing as needed *\/\n    }\n\n<\/style>\n\n<div class=\"calculator-container\">\n    <!-- Parameters Section -->\n    <div class=\"section\">\n        <h2>Parameters<\/h2>\n        <ul class=\"parameter-list\">\n            <li><strong>Wire Diameter (d):<\/strong> Spring wire diameter.<\/li>\n            <li><strong>Mean Coil Diameter (D):<\/strong> Average coil diameter.<\/li>\n            <li><strong>Number of Body Turns (Nb):<\/strong> Number of active coils.<\/li>\n            <li><strong>Modulus of Elasticity (E):<\/strong> Material bending resistance.<\/li>\n            <li><strong>Arm 1 (L1):<\/strong> Length of arm 1.<\/li>\n            <li><strong>Arm 2 (L2):<\/strong> Length of arm 2.<\/li>\n            <li><strong>Maximum Torsion Angle (&theta;):<\/strong> Maximum intended angle.<\/li>\n        <\/ul>\n    <\/div>\n\n    <!-- Calculator Section -->\n    <div class=\"section\">\n        <h2>Calculator<\/h2>\n        <form id=\"springCalculator\">\n            <div class=\"input-grid\">\n                <div class=\"input-group\">\n                    <label for=\"wireDiameter\">Wire Diameter (d)<span class=\"unit\">mm<\/span><\/label>\n                    <input type=\"number\" id=\"wireDiameter\" step=\"0.01\" required>\n                <\/div>\n\n                <div class=\"input-group\">\n                    <label for=\"meanDiameter\">Mean Coil Diameter (D)<span class=\"unit\">mm<\/span><\/label>\n                    <input type=\"number\" id=\"meanDiameter\" step=\"0.01\" required>\n                <\/div>\n\n                <div class=\"input-group\">\n                    <label for=\"activeCoils\">Number of Body Turns (Nb)<\/label>\n                    <input type=\"number\" id=\"activeCoils\" step=\"0.1\" required>\n                <\/div>\n\n                <div class=\"input-group\">\n                    <label for=\"modulus\">Modulus of Elasticity (E)<span class=\"unit\">GPa<\/span><\/label>\n                    <input type=\"number\" id=\"modulus\" step=\"1000\" required>\n                <\/div>\n\n                <div class=\"input-group\">\n                    <label for=\"arm1\">Arm 1 (L1)<span class=\"unit\">mm<\/span><\/label>\n                    <input type=\"number\" id=\"arm1\" step=\"0.01\" required>\n                <\/div>\n\n                <div class=\"input-group\">\n                    <label for=\"arm2\">Arm 2 (L2)<span class=\"unit\">mm<\/span><\/label>\n                    <input type=\"number\" id=\"arm2\" step=\"0.01\" required>\n                <\/div>\n\n                <div class=\"input-group\">\n                    <label for=\"maxAngle\">Maximum Torsion Angle (&theta;)<span class=\"unit\">degrees<\/span><\/label>\n                    <input type=\"number\" id=\"maxAngle\" step=\"0.1\" required>\n                <\/div>\n            <\/div>\n\n            <button type=\"submit\" class=\"calculate-btn\">Calculate<\/button>\n        <\/form>\n\n        <div id=\"results\" class=\"results\">\n            <h2>Results<\/h2>\n            <div class=\"result-item\">\n                Torsion Spring Rate (K): <span class=\"result-value\" id=\"springRate\">0<\/span> N\u00b7m\/rad\n            <\/div>\n            <div class=\"result-item\">\n                Angular Deflection: <span class=\"result-value\" id=\"angularDeflection\">0<\/span> rad\n            <\/div>\n            <div class=\"result-item\">\n                Applied Moment (M) \/ Maximum Torque (T): <span class=\"result-value\" id=\"appliedMomentResult\">0<\/span> N\u00b7m\n            <\/div>\n            <div class=\"result-item\">\n                Spring Index (C): <span class=\"result-value\" id=\"springIndex\">0<\/span>\n            <\/div>\n            <div class=\"result-item\">\n                Inner Stress Correction Factor (KBID): <span class=\"result-value\" id=\"KBID\">0<\/span>\n            <\/div>\n            <div class=\"result-item\">\n                Outer Stress Correction Factor (KBOD): <span class=\"result-value\" id=\"KBOD\">0<\/span>\n            <\/div>\n            <div class=\"result-item\">\n                Inner Maximum Bending Stress (SID): <span class=\"result-value\" id=\"SID\">0<\/span> MPa\n            <\/div>\n            <div class=\"result-item\">\n                Outer Maximum Bending Stress (SOD): <span class=\"result-value\" id=\"SOD\">0<\/span> MPa\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n    (function() {\n        document.getElementById('springCalculator').addEventListener('submit', function(e) {\n            e.preventDefault();\n\n            \/\/ Get input values\n            const d = parseFloat(document.getElementById('wireDiameter').value); \/\/ mm\n            const D = parseFloat(document.getElementById('meanDiameter').value); \/\/ mm\n            const n = parseFloat(document.getElementById('activeCoils').value); \/\/ Nb (Assuming Na = Nb for calculation)\n            const E = parseFloat(document.getElementById('modulus').value); \/\/ GPa\n            const L1 = parseFloat(document.getElementById('arm1').value); \/\/ mm\n            const L2 = parseFloat(document.getElementById('arm2').value); \/\/ mm\n            const maxAngle_deg = parseFloat(document.getElementById('maxAngle').value); \/\/ degrees\n\n            \/\/ Convert units to SI for calculation (meters, Pascals, radians)\n            const d_m = d \/ 1000; \/\/ meters\n            const D_m = D \/ 1000; \/\/ meters\n            const E_Pa = E * 1e9; \/\/ Pascals\n\n            \/\/ Convert max angle to radians\n            const maxAngle_rad = maxAngle_deg * (Math.PI \/ 180);\n\n            \/\/ Calculate Spring Index (C = D\/d) - unitless\n            const C = D \/ d;\n\n            \/\/ Calculate spring rate (N\u00b7m\/rad) based on k = (Ed^4) \/ (10.8 D Nb) assuming Na = Nb\n            const springRate = (E_Pa * Math.pow(d_m, 4)) \/ (10.8 * D_m * n);\n\n            \/\/ Calculate Maximum Torque (T) based on T = k * theta_max\n            const maxTorque = springRate * maxAngle_rad;\n\n            \/\/ Calculate Stress Correction Factor (KBID) using approximation KBID = (4C - 1) \/ (4C - 4);\n            const KBID = (4 * C - 1) \/ (4 * C - 4);\n\n            \/\/ Calculate Stress Correction Factor (KBOD) using approximation KBOD = (4C + 1) \/ (4C + 4);\n            const KBOD = (4 * C + 1) \/ (4 * C - 4);\n\n            \/\/ Calculate Inner Maximum Bending Stress (SID) based on S = (32T \/ (pi * d^3)) * KBID\n            const SID = (32 * maxTorque) \/ (Math.PI * Math.pow(d_m, 3)) * KBID;\n\n            \/\/ Calculate Outer Maximum Bending Stress (SOD) based on S = (32T \/ (pi * d^3)) * KBOD\n            const SOD = (32 * maxTorque) \/ (Math.PI * Math.pow(d_m, 3)) * KBOD;\n\n            \/\/ Display results\n            document.getElementById('springRate').textContent = springRate.toFixed(2);\n            document.getElementById('angularDeflection').textContent = maxAngle_rad.toFixed(4); \/\/ Display input max angle in radians\n            document.getElementById('appliedMomentResult').textContent = maxTorque.toFixed(2);\n            document.getElementById('springIndex').textContent = C.toFixed(2);\n            document.getElementById('KBID').textContent = KBID.toFixed(4);\n            document.getElementById('KBOD').textContent = KBOD.toFixed(4);\n            document.getElementById('SID').textContent = (SID \/ 1e6).toFixed(2); \/\/ Convert Stress from Pa to MPa\n            document.getElementById('SOD').textContent = (SOD \/ 1e6).toFixed(2); \/\/ Convert Stress from Pa to MPa\n\n            \/\/ Show results section\n            document.getElementById('results').style.display = 'block';\n        });\n    })();\n<\/script> \n","protected":false},"excerpt":{"rendered":"<p>Unlock the precision of your engineering projects with our Torsion Spring Calculator. This tool offers you the ability to calculate accurate torque, angle of twist,&#8230;<\/p>","protected":false},"author":2,"featured_media":15900,"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":[3434],"tags":[3398,3675,3680],"class_list":["post-15898","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-spring-calculator","tag-engineering-tools","tag-spring-design","tag-torsion-springs","pmpro-has-access"],"acf":[],"jetpack_featured_media_url":"https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/05\/Torsion-Spring-Calculator.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts\/15898","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=15898"}],"version-history":[{"count":0,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts\/15898\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/media\/15900"}],"wp:attachment":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/media?parent=15898"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/categories?post=15898"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/tags?post=15898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}