{"id":15873,"date":"2025-05-19T08:22:15","date_gmt":"2025-05-19T08:22:15","guid":{"rendered":"https:\/\/www.mechstream.com\/?p=15873"},"modified":"2025-05-20T00:41:29","modified_gmt":"2025-05-20T00:41:29","slug":"spring-calculator","status":"publish","type":"post","link":"https:\/\/www.mechstream.com\/fr\/spring-calculator\/","title":{"rendered":"Calculatrice de printemps"},"content":{"rendered":"<p>D\u00e9couvrez la puissance et la pr\u00e9cision de notre calculateur de ressorts, con\u00e7u pour aider les ing\u00e9nieurs et les concepteurs \u00e0 cr\u00e9er des solutions de ressorts optimales. Que vous calculiez des ressorts de compression, de traction ou de torsion, notre outil intuitif fournit des r\u00e9sultats pr\u00e9cis et fiables. Optimisez votre processus de conception gr\u00e2ce \u00e0 ce calculateur convivial, compatible avec diverses applications industrielles. En simplifiant les calculs complexes, il vous fait gagner du temps tout en garantissant des performances optimales des ressorts. D\u00e9couvrez d\u00e8s aujourd&#039;hui l&#039;efficacit\u00e9 et la praticit\u00e9 de notre calculateur de ressorts et propulsez vos projets au niveau sup\u00e9rieur.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"584\" height=\"456\" src=\"https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/05\/QQ20250519-161539-\u5df2\u7f16\u8f91.png\" loading=\"lazy\" alt=\"Calculatrice de printemps\" class=\"wp-image-15875\" srcset=\"https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/05\/QQ20250519-161539-\u5df2\u7f16\u8f91.png 584w, https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/05\/QQ20250519-161539-\u5df2\u7f16\u8f91-300x234.png 300w, https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/05\/QQ20250519-161539-\u5df2\u7f16\u8f91-100x78.png 100w, https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/05\/QQ20250519-161539-\u5df2\u7f16\u8f91-576x450.png 576w\" sizes=\"(max-width: 584px) 100vw, 584px\" \/><\/figure>\n<\/div>\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>Calculateur de force de ressort | Outil professionnel de conception de ressorts<\/title>\n    <style>\n        \/* \u6dfb\u52a0\u547d\u540d\u7a7a\u95f4\u524d\u7f00\uff0c\u907f\u514d\u6837\u5f0f\u51b2\u7a81 *\/\n        .spring-calculator-wrapper {\n            --primary-color: #2196F3;\n            --text-color: #333;\n            --border-color: #ddd;\n            --result-bg: #f5f5f5;\n            position: relative;\n            z-index: 1; \/* \u786e\u4fdd\u4e0d\u4f1a\u8986\u76d6sticky header *\/\n            max-width: 1200px;\n            margin: 0 auto;\n            padding: 20px;\n            font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n            line-height: 1.6;\n            color: var(--text-color);\n        }\n\n        .spring-calculator-wrapper * {\n            box-sizing: border-box;\n            margin: 0;\n            padding: 0;\n        }\n\n        .spring-calculator-wrapper .calculator-container {\n            display: grid;\n            grid-template-columns: 1fr;\n            gap: 30px;\n            margin-top: 20px;\n        }\n\n        .spring-calculator-wrapper .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        .spring-calculator-wrapper h2 {\n            color: var(--text-color);\n            margin-bottom: 15px;\n            font-size: 1.5rem;\n        }\n\n        .spring-calculator-wrapper .calculator-inputs {\n            display: grid;\n            grid-template-columns: 1fr;\n            gap: 15px;\n        }\n\n        @media (min-width: 600px) {\n            .spring-calculator-wrapper .calculator-inputs {\n                grid-template-columns: 1fr 1fr;\n            }\n        }\n\n        .spring-calculator-wrapper .parameter-list {\n            list-style: none;\n            display: grid;\n            grid-template-columns: 1fr;\n            gap: 15px;\n        }\n\n        @media (min-width: 768px) {\n            .spring-calculator-wrapper .parameter-list {\n                grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n            }\n        }\n\n        .spring-calculator-wrapper .parameter-list li {\n            margin-bottom: 0;\n            font-size: 0.9rem;\n        }\n\n        .spring-calculator-wrapper .input-group {\n            margin-bottom: 15px;\n        }\n\n        .spring-calculator-wrapper label {\n            display: block;\n            margin-bottom: 5px;\n            font-weight: 500;\n        }\n\n        .spring-calculator-wrapper input,\n        .spring-calculator-wrapper select {\n            width: 100%;\n            padding: 8px;\n            border: 1px solid var(--border-color);\n            border-radius: 4px;\n            font-size: 1rem;\n        }\n\n        .spring-calculator-wrapper .unit {\n            color: #666;\n            font-size: 0.9rem;\n            margin-left: 5px;\n        }\n\n        .spring-calculator-wrapper button {\n            background: var(--primary-color);\n            color: white;\n            border: none;\n            padding: 12px 24px;\n            border-radius: 4px;\n            cursor: pointer;\n            font-size: 1rem;\n            width: 25%;\n            transition: background 0.3s;\n            margin: 0 auto;\n            display: block;\n        }\n\n        .spring-calculator-wrapper button:hover {\n            background: #1976D2;\n            color: white;\n        }\n\n        .spring-calculator-wrapper .results {\n            display: none;\n            margin-top: 20px;\n            padding: 20px;\n            background: var(--result-bg);\n            border-radius: 4px;\n        }\n\n        .spring-calculator-wrapper .result-item {\n            margin-bottom: 10px;\n            font-size: 1.1rem;\n        }\n\n        .spring-calculator-wrapper .result-value {\n            font-weight: bold;\n            color: var(--primary-color);\n        }\n    <\/style>\n<\/head>\n<body>\n    <div class=\"spring-calculator-wrapper\">\n        <div class=\"calculator-container\">\n            <div class=\"section\">\n                <h2>Param\u00e8tres<\/h2>\n                <ul class=\"parameter-list\">\n                    <li><strong>Charge de travail minimale (P\u2081) :<\/strong> La force minimale appliqu\u00e9e au ressort en Newtons.<\/li>\n                    <li><strong>Charge maximale d&#039;utilisation (Pn) :<\/strong> La force maximale appliqu\u00e9e au ressort en Newtons.<\/li>\n                    <li><strong>Course de travail (h) :<\/strong> La distance parcourue par le ressort entre la charge de travail minimale et maximale en millim\u00e8tres.<\/li>\n                    <li><strong>Diam\u00e8tre du fil (d) :<\/strong> Le diam\u00e8tre du fil \u00e0 ressort en millim\u00e8tres.<\/li>\n                    <li><strong>Diam\u00e8tre moyen de la bobine (D) :<\/strong> Le diam\u00e8tre moyen des spires du ressort en millim\u00e8tres.<\/li>\n                    <li><strong>Type de ressort (vie) :<\/strong> Classification du ressort en fonction de sa dur\u00e9e de vie pr\u00e9vue.<\/li>\n                    <li><strong>Structure du ressort :<\/strong> La configuration physique ou la conception du ressort.<\/li>\n                    <li><strong>Mat\u00e9riau du ressort :<\/strong> Le mat\u00e9riau utilis\u00e9 pour fabriquer le ressort.<\/li>\n                    <li><strong>Module de cisaillement (G) :<\/strong> R\u00e9sistance du mat\u00e9riau \u00e0 la d\u00e9formation par cisaillement en MPa.<\/li>\n                    <li><strong>Module d&#039;\u00e9lasticit\u00e9 (E) :<\/strong> R\u00e9sistance du mat\u00e9riau \u00e0 la d\u00e9formation \u00e9lastique en MPa.<\/li>\n                    <li><strong>Limite de r\u00e9sistance \u00e0 la traction (\u03c3b) :<\/strong> La contrainte maximale qu&#039;un mat\u00e9riau peut supporter avant de se rompre en MPa.<\/li>\n                    <li><strong>Indice de ressort (C) :<\/strong> Le rapport entre le diam\u00e8tre moyen de la bobine et le diam\u00e8tre du fil (D\/d).<\/li>\n                    <li><strong>Facteur Wahl (K) :<\/strong> Facteur de correction utilis\u00e9 dans les calculs de contrainte de ressort, en fonction de l&#039;indice de ressort.<\/li>\n                    <li><strong>Limite de rendement (Ts) :<\/strong> La contrainte maximale qu&#039;un mat\u00e9riau peut supporter avant qu&#039;une d\u00e9formation permanente ne se produise, en MPa.<\/li>\n                <\/ul>\n            <\/div>\n\n            <div class=\"section\">\n                <h2>Calculatrice<\/h2>\n                <form id=\"springForm\" action=\"\">\n                    <div class=\"calculator-inputs\">\n                        <div class=\"input-group\">\n                            <label for=\"minLoad\">Charge de travail minimale (P\u2081) <span class=\"unit\">N<\/span><\/label>\n                            <input type=\"number\" id=\"minLoad\" step=\"0.1\" required>\n                        <\/div>\n\n                        <div class=\"input-group\">\n                            <label for=\"maxLoad\">Charge de travail maximale (Pn) <span class=\"unit\">N<\/span><\/label>\n                            <input type=\"number\" id=\"maxLoad\" step=\"0.1\" required>\n                        <\/div>\n\n                        <div class=\"input-group\">\n                            <label for=\"workingStroke\">Course de travail (h) <span class=\"unit\">mm<\/span><\/label>\n                            <input type=\"number\" id=\"workingStroke\" step=\"0.1\" required>\n                        <\/div>\n\n                        <div class=\"input-group\">\n                            <label for=\"wireDiameter\">Diam\u00e8tre du fil (d) <span class=\"unit\">mm<\/span><\/label>\n                            <input type=\"number\" id=\"wireDiameter\" step=\"0.1\" required>\n                        <\/div>\n\n                        <div class=\"input-group\">\n                            <label for=\"meanDiameter\">Diam\u00e8tre moyen de la bobine (D) <span class=\"unit\">mm<\/span><\/label>\n                            <input type=\"number\" id=\"meanDiameter\" step=\"0.1\" required>\n                        <\/div>\n\n                         <div class=\"input-group\">\n                            <label for=\"springType\">Type de ressort (vie)<\/label>\n                            <input type=\"text\" id=\"springType\">\n                            <!-- Or use a select dropdown if you have predefined types -->\n                            <!-- <select id=\"springType\"><option value=\"\">Select Type<\/option><\/select> -->\n                        <\/div>\n\n                         <div class=\"input-group\">\n                            <label for=\"springStructure\">Structure \u00e0 ressort<\/label>\n                            <input type=\"text\" id=\"springStructure\">\n                            <!-- Or use a select dropdown if you have predefined structures -->\n                             <!-- <select id=\"springStructure\"><option value=\"\">Select Structure<\/option><\/select> -->\n                        <\/div>\n\n                         <div class=\"input-group\">\n                            <label for=\"springMaterial\">Mat\u00e9riau du ressort<\/label>\n                             <input type=\"text\" id=\"springMaterial\">\n                            <!-- Or use a select dropdown if you have predefined materials -->\n                            <!-- <select id=\"springMaterial\"><option value=\"\">Select Material<\/option><\/select> -->\n                        <\/div>\n\n                        <div class=\"input-group\">\n                            <label for=\"activeCoils\">Nombre de bobines actives (n)<\/label>\n                            <input type=\"number\" id=\"activeCoils\" step=\"0.1\" required>\n                        <\/div>\n\n                        <div class=\"input-group\">\n                            <label for=\"shearModulus\">Module de cisaillement (G) <span class=\"unit\">MPa<\/span><\/label>\n                            <input type=\"number\" id=\"shearModulus\" required>\n                        <\/div>\n\n                         <div class=\"input-group\">\n                            <label for=\"elasticModulus\">Module d&#039;\u00e9lasticit\u00e9 (E) <span class=\"unit\">MPa<\/span><\/label>\n                            <input type=\"number\" id=\"elasticModulus\" required>\n                        <\/div>\n\n                         <div class=\"input-group\">\n                            <label for=\"tensileStrength\">Limite de r\u00e9sistance \u00e0 la traction (\u03c3b) <span class=\"unit\">MPa<\/span><\/label>\n                            <input type=\"number\" id=\"tensileStrength\" required>\n                        <\/div>\n\n                         <div class=\"input-group\">\n                            <label for=\"yieldLimit\">Limite de rendement (Ts) <span class=\"unit\">MPa<\/span><\/label>\n                            <input type=\"number\" id=\"yieldLimit\" required>\n                        <\/div>\n\n                        <!-- C'' and K'' are typically calculated, not input, but adding input fields based on image -->\n                         <div class=\"input-group\">\n                            <label for=\"springIndex\">Indice de printemps (C)<\/label>\n                            <input type=\"number\" id=\"springIndex\" step=\"0.1\">\n                        <\/div>\n\n                        <div class=\"input-group\">\n                            <label for=\"wahlFactor\">Facteur Wahl (K)<\/label>\n                            <input type=\"number\" id=\"wahlFactor\" step=\"0.001\">\n                        <\/div>\n                    <\/div>\n\n\n                    <button type=\"submit\">Calculer<\/button>\n                <input type=\"hidden\" name=\"trp-form-language\" value=\"fr\"\/><\/form>\n            <\/div>\n\n            <div class=\"section\">\n                <div id=\"results\" class=\"results\">\n                    <h2>R\u00e9sultats<\/h2>\n                    <div class=\"result-item\">\n                        Taux de ressort (P\\&#039;): <span id=\"springRate\" class=\"result-value\">0<\/span> N\/mm\n                    <\/div>\n                    <div class=\"result-item\">\n                        Contrainte admissible (\u03c4p) : <span id=\"allowableStress\" class=\"result-value\">0<\/span> MPa\n                    <\/div>\n                     <div class=\"result-item\">\n                        Indice de ressort (C) : <span id=\"springIndexResult\" class=\"result-value\">0<\/span>\n                    <\/div>\n                     <div class=\"result-item\">\n                        Facteur Wahl (K) : <span id=\"wahlFactorResult\" class=\"result-value\">0<\/span>\n                    <\/div>\n                     <div class=\"result-item\">\n                        D\u00e9flexion \u00e0 charge minimale (F\u2081) : <span id=\"deflectionMin\" class=\"result-value\">0<\/span> mm\n                    <\/div>\n                     <div class=\"result-item\">\n                        D\u00e9flexion \u00e0 charge maximale (Fn) : <span id=\"deflectionMax\" class=\"result-value\">0<\/span> mm\n                    <\/div>\n                     <div class=\"result-item\">\n                        D\u00e9flexion \u00e0 hauteur solide (Fb) : <span id=\"deflectionSolid\" class=\"result-value\">0<\/span> mm\n                    <\/div>\n                     <div class=\"result-item\">\n                        Charge \u00e0 hauteur solide (Pb) : <span id=\"loadSolid\" class=\"result-value\">0<\/span> N\n                    <\/div>\n                     <div class=\"result-item\">\n                        Nombre de bobines actives (n) : <span id=\"activeCoilsResult\" class=\"result-value\">0<\/span>\n                    <\/div>\n                     <div class=\"result-item\">\n                        Nombre total de bobines (n\u2081) : <span id=\"totalCoils\" class=\"result-value\">0<\/span>\n                    <\/div>\n                     <div class=\"result-item\">\n                        Hauteur solide (Hb) : <span id=\"solidHeight\" class=\"result-value\">0<\/span> mm\n                    <\/div>\n                     <div class=\"result-item\">\n                        Hauteur libre (H\u2080) : <span id=\"freeHeight\" class=\"result-value\">0<\/span> mm\n                    <\/div>\n                     <div class=\"result-item\">\n                        Pitch (t) : <span id=\"pitch\" class=\"result-value\">0<\/span> mm\n                    <\/div>\n                     <div class=\"result-item\">\n                        Angle d&#039;h\u00e9lice (\u03b1) : <span id=\"helixAngle\" class=\"result-value\">0<\/span> degr\u00e9s\n                    <\/div>\n                     <div class=\"result-item\">\n                        Longueur d\u00e9velopp\u00e9e (L) : <span id=\"developedLength\" class=\"result-value\">0<\/span> mm\n                    <\/div>\n                     <div class=\"result-item\">\n                        Rapport hauteur\/diam\u00e8tre (b) : <span id=\"heightDiameterRatio\" class=\"result-value\">0<\/span>\n                    <\/div>\n                     <div class=\"result-item\">\n                        Contrainte de cisaillement maximale (\u03c4max) : <span id=\"maxShearStress\" class=\"result-value\">0<\/span> MPa\n                    <\/div>\n                     <div class=\"result-item\">\n                        Facteur de s\u00e9curit\u00e9 \u00e0 la fatigue (S) : <span id=\"fatigueSafetyFactor\" class=\"result-value\">0<\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        document.getElementById('springForm').addEventListener('submit', function(e) {\n            e.preventDefault();\n\n            \/\/ Get input values\n            const P1 = parseFloat(document.getElementById('minLoad').value);\n            const Pn = parseFloat(document.getElementById('maxLoad').value);\n            const h = parseFloat(document.getElementById('workingStroke').value);\n            const d = parseFloat(document.getElementById('wireDiameter').value);\n            const D = parseFloat(document.getElementById('meanDiameter').value);\n            const n_input = parseFloat(document.getElementById('activeCoils').value); \/\/ Renamed to avoid conflict with calculated 'n'\n            const G = parseFloat(document.getElementById('shearModulus').value);\n            const E = parseFloat(document.getElementById('elasticModulus').value);\n            const sb = parseFloat(document.getElementById('tensileStrength').value);\n            const Ts = parseFloat(document.getElementById('yieldLimit').value);\n            const C_input = parseFloat(document.getElementById('springIndex').value); \/\/ Get input C\n            const K_input = parseFloat(document.getElementById('wahlFactor').value); \/\/ Get input K\n\n            \/\/ Calculations based on provided formulas\n\n            \/\/ Spring Rate (P')\n            const P_prime = (Pn - P1) \/ h;\n\n            \/\/ Allowable Stress (\u03c4p)\n            const tau_p = 0.5 * sb; \/\/ Using \u03c3b as tensileStrength\n\n            \/\/ Spring Index (C) - Use input if provided, otherwise calculate\n            const C = isNaN(C_input) ? (D \/ d) : C_input;\n\n            \/\/ Wahl Factor (K) - Use input if provided, otherwise calculate\n            const K = isNaN(K_input) ? ((4 * C - 1) \/ (4 * C - 4) + 0.615 \/ C) : K_input;\n\n            \/\/ Deflection at Minimum Load (F\u2081)\n            const F1 = P1 \/ P_prime;\n\n            \/\/ Deflection at Maximum Load (Fn)\n            const Fn = Pn \/ P_prime;\n\n            \/\/ Deflection at Solid Height (Fb)\n            const Fb = Fn \/ 0.65; \/\/ Formula from image\n\n            \/\/ Load at Solid Height (Pb)\n            const Pb = Pn \/ 0.65; \/\/ Formula from image\n\n            \/\/ Number of Active Coils (n) - calculated from spring rate formula or use input\n            \/\/ Using the calculated n based on standard formula unless n_input is provided\n            const n_calculated_from_rate = (G * Math.pow(d, 4)) \/ (8 * Math.pow(D, 3) * P_prime);\n            const n = isNaN(n_input) ? n_calculated_from_rate : n_input;\n\n\n            \/\/ Total Coils (n\u2081) - assuming squared and ground ends (+2)\n            const n1 = n + 2;\n\n            \/\/ Solid Height (Hb) - assuming squared and ground ends (+1.5d)\n            \/\/ The formula from image uses n1+1.5d - assuming this implies (n1)*d + 1.5d for total coils n1.\n            \/\/ Standard solid height for squared and ground ends is n1 * d.\n            \/\/ Let's use the formula provided in the image: Hb = (n1 + 1.5) * d; Assuming this means n1 * d + 1.5d? No, the image says n1+1.5d, looks like (n1+1.5)*d\n            const Hb = (n1 + 1.5) * d; \/\/ Using the formula from image\n\n            \/\/ Free Height (H\u2080)\n            const H0 = Hb + Fb;\n\n            \/\/ Pitch (t) - assuming squared and ground ends\n            \/\/ The formula from the image is t = (H\u2080 - 1.5d) \/ n. This seems incorrect for squared and ground ends (where Solid Height = n1*d and Pitch = (Free Height - Solid Height) \/ n ).\n            \/\/ Let's use the formula provided in the image: t = (H0 - 1.5 * d) \/ n\n            let t = 0;\n            if (n !== 0) {\n                t = (H0 - 1.5 * d) \/ n; \/\/ Using the formula from image\n            }\n\n\n            \/\/ Helix Angle (\u03b1) in degrees\n            \/\/ Ensure t and pi*D are not zero to avoid division by zero or invalid log\n            let alpha_rad = 0;\n            if ((Math.PI * D) !== 0) {\n                 alpha_rad = Math.atan(t \/ (Math.PI * D));\n            }\n            const alpha_deg = alpha_rad * (180 \/ Math.PI);\n\n            \/\/ Developed Length (L)\n            \/\/ Ensure cos(alpha_rad) is not zero\n            let L = 0;\n            if (Math.cos(alpha_rad) !== 0) {\n                L = Math.PI * D * n1 \/ Math.cos(alpha_rad);\n            }\n\n            \/\/ Height-to-Diameter Ratio (b)\n            \/\/ Ensure D is not zero\n            let b = 0;\n            if (D !== 0) {\n                b = H0 \/ D;\n            }\n\n            \/\/ Maximum Shear Stress (\u03c4max)\n            \/\/ Ensure d is not zero\n            let tau_max = 0;\n            if (d !== 0) {\n                 tau_max = (8 * K * D * Pn) \/ (Math.PI * Math.pow(d, 3));\n            }\n\n            \/\/ Fatigue Safety Factor (S)\n             \/\/ Ensure tau_max is not zero\n            let S = 0;\n            if (tau_max !== 0) {\n                S = tau_p \/ tau_max;\n            }\n\n            \/\/ Display results\n            document.getElementById('springRate').textContent = isNaN(P_prime) ? 'N\/A' : P_prime.toFixed(2);\n            document.getElementById('allowableStress').textContent = isNaN(tau_p) ? 'N\/A' : tau_p.toFixed(2);\n            document.getElementById('springIndexResult').textContent = isNaN(C) ? 'N\/A' : C.toFixed(2);\n            document.getElementById('wahlFactorResult').textContent = isNaN(K) ? 'N\/A' : K.toFixed(3);\n            document.getElementById('deflectionMin').textContent = isNaN(F1) ? 'N\/A' : F1.toFixed(2);\n            document.getElementById('deflectionMax').textContent = isNaN(Fn) ? 'N\/A' : Fn.toFixed(2);\n            document.getElementById('deflectionSolid').textContent = isNaN(Fb) ? 'N\/A' : Fb.toFixed(2);\n            document.getElementById('loadSolid').textContent = isNaN(Pb) ? 'N\/A' : Pb.toFixed(2);\n            document.getElementById('activeCoilsResult').textContent = isNaN(n) ? 'N\/A' : n.toFixed(2);\n            document.getElementById('totalCoils').textContent = isNaN(n1) ? 'N\/A' : n1.toFixed(2);\n            document.getElementById('solidHeight').textContent = isNaN(Hb) ? 'N\/A' : Hb.toFixed(2);\n            document.getElementById('freeHeight').textContent = isNaN(H0) ? 'N\/A' : H0.toFixed(2);\n            document.getElementById('pitch').textContent = isNaN(t) ? 'N\/A' : t.toFixed(2);\n            document.getElementById('helixAngle').textContent = isNaN(alpha_deg) ? 'N\/A' : alpha_deg.toFixed(2);\n            document.getElementById('developedLength').textContent = isNaN(L) ? 'N\/A' : L.toFixed(2);\n            document.getElementById('heightDiameterRatio').textContent = isNaN(b) ? 'N\/A' : b.toFixed(2);\n            document.getElementById('maxShearStress').textContent = isNaN(tau_max) ? 'N\/A' : tau_max.toFixed(2);\n            document.getElementById('fatigueSafetyFactor').textContent = isNaN(S) ? 'N\/A' : S.toFixed(2);\n\n            \/\/ Show results section\n            document.getElementById('results').style.display = 'block';\n        });\n    <\/script>\n<\/body>\n<\/html>","protected":false},"excerpt":{"rendered":"<p>Discover the power and precision of our Spring Calculator, designed to help engineers and designers create optimal spring solutions. Whether you&#8217;re calculating compression, tension, or&#8230;<\/p>","protected":false},"author":2,"featured_media":15874,"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":[3676,3675],"class_list":["post-15873","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-spring-calculator","tag-calculations","tag-spring-design","pmpro-has-access"],"acf":[],"jetpack_featured_media_url":"https:\/\/www.mechstream.com\/wp-content\/uploads\/2025\/05\/Spring-Calculator.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts\/15873","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=15873"}],"version-history":[{"count":0,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts\/15873\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/media\/15874"}],"wp:attachment":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/media?parent=15873"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/categories?post=15873"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/tags?post=15873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}