{"id":66012,"date":"2025-06-24T07:48:22","date_gmt":"2025-06-24T07:48:22","guid":{"rendered":"https:\/\/www.harsle.com\/?page_id=66012"},"modified":"2025-07-16T01:42:32","modified_gmt":"2025-07-16T01:42:32","slug":"bump-bending-calculator","status":"publish","type":"page","link":"https:\/\/www.harsle.com\/it\/bump-bending-calculator\/","title":{"rendered":"Calcolatrice di flessione a urto"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"66012\" class=\"elementor elementor-66012\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-4d5c64d e-flex e-con-boxed e-con e-parent\" data-id=\"4d5c64d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-132714d e-con-full e-flex e-con e-child\" data-id=\"132714d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-227ecdb elementor-widget elementor-widget-image\" data-id=\"227ecdb\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"500\" height=\"500\" src=\"https:\/\/www.harsle.com\/wp-content\/uploads\/2025\/07\/Bump-Bending-Calculator500x500.png\" class=\"attachment-large size-large wp-image-67103\" alt=\"Bump Bending Calculator\" srcset=\"https:\/\/www.harsle.com\/wp-content\/uploads\/2025\/07\/Bump-Bending-Calculator500x500.png 500w, https:\/\/www.harsle.com\/wp-content\/uploads\/2025\/07\/Bump-Bending-Calculator500x500-300x300.png 300w, https:\/\/www.harsle.com\/wp-content\/uploads\/2025\/07\/Bump-Bending-Calculator500x500-150x150.png 150w, https:\/\/www.harsle.com\/wp-content\/uploads\/2025\/07\/Bump-Bending-Calculator500x500-360x360.png 360w, https:\/\/www.harsle.com\/wp-content\/uploads\/2025\/07\/Bump-Bending-Calculator500x500-430x430.png 430w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-27bb60f e-con-full e-flex e-con e-child\" data-id=\"27bb60f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f74ff55 elementor-widget elementor-widget-wd_text_block\" data-id=\"f74ff55\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"wd_text_block.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-text-block reset-last-child text-left\">\n\t\t\t\n\t\t\t<p>This Bump Bending Calculator helps you estimate the radius pitch, bend steps, and single bend angle required to form large-radius bends using multiple small hits. Just enter the total bend angle, V-opening, and target inner radius to get accurate setup values for smooth curved bending on a press brake.<\/p><p><strong>Radius Pitch<\/strong><\/p><div style=\"text-align: center;\"><strong><code>Pitch = V-Opening \u00f7 2<\/code><\/strong><\/div><p><strong>Bend Steps<\/strong><\/p><div style=\"text-align: center;\"><code><strong>Steps = round((Inner Radius \u00d7 Bend Angle \u00d7 \u03c0) \u00f7 (180 \u00d7 Pitch))<\/strong><\/code><\/div><p><strong>Single Bend Angle<\/strong><\/p><div style=\"text-align: center;\"><strong><code>Single Bend Angle = 180 \u2212 4.775 \u00d7 V-Opening<\/code><\/strong><\/div><ul><li><strong>Bend Angle<\/strong>: Total angle to be formed (\u00b0)<\/li><li><strong>V-Opening<\/strong>: Width of the V-die opening (mm or inch)<\/li><li><strong>Inner Radius<\/strong>: Desired inside bend radius (mm or inch)<\/li><\/ul>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"wd-negative-gap elementor-element elementor-element-437da90 e-flex e-con-boxed e-con e-parent\" data-id=\"437da90\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-820a76e elementor-widget elementor-widget-html\" data-id=\"820a76e\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <style>\r\n        .bump-calculator-container {\r\n            max-width: 800px;\r\n            margin: 20px auto;\r\n            font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\r\n            color: #333;\r\n            padding: 20px;\r\n            box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);\r\n            border-radius: 8px;\r\n        }\r\n\r\n        .bump-calculator-container * {\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        .calculator-title {\r\n            text-align: center;\r\n            color: #000;\r\n            font-size: 24px;\r\n            margin-bottom: 30px;\r\n        }\r\n\r\n        \/* Unit Selection *\/\r\n        .unit-section {\r\n            background: #f5f5f5;\r\n            padding: 15px;\r\n            border-radius: 4px;\r\n            margin-bottom: 20px;\r\n        }\r\n\r\n        .unit-label {\r\n            display: block;\r\n            margin-bottom: 8px;\r\n            color: #000;\r\n            font-weight: 500;\r\n        }\r\n\r\n        .unit-selection {\r\n            background: #f5f5f5;\r\n            padding: 15px;\r\n            border-radius: 4px;\r\n            margin-bottom: 20px;\r\n            display: flex;\r\n            justify-content: center;\r\n            gap: 82px;\r\n        }\r\n\r\n        .unit-selection label {\r\n            color: #000;\r\n        }\r\n\r\n        \/* Input Fields *\/\r\n        .input-group {\r\n            margin-bottom: 20px;\r\n            position: relative;\r\n        }\r\n\r\n        .input-group label {\r\n            display: block;\r\n            margin-bottom: 8px;\r\n            color: #000;\r\n            font-weight: 500;\r\n        }\r\n\r\n        .input-wrapper {\r\n            display: flex;\r\n            align-items: stretch;\r\n        }\r\n\r\n        .input-wrapper input {\r\n            flex: 1;\r\n            padding: 8px 12px;\r\n            border: 1px solid #ced4da;\r\n            border-radius: 4px 0 0 4px;\r\n            font-size: 16px;\r\n            border-right: none;\r\n        }\r\n\r\n        .unit {\r\n            margin-left: 0;\r\n            color: #666;\r\n            font-size: 14px;\r\n            background: #f5f5f5;\r\n            padding: 8px 12px;\r\n            border: 1px solid #ced4da;\r\n            border-radius: 0 4px 4px 0;\r\n            display: flex;\r\n            align-items: center;\r\n        }\r\n\r\n        .validation-message {\r\n            color: #dc3545;\r\n            font-size: 12px;\r\n            position: absolute;\r\n            top: 100%;\r\n            left: 0;\r\n            margin-top: 4px;\r\n            display: none;\r\n        }\r\n\r\n        .validation-message.show {\r\n            display: block;\r\n        }\r\n\r\n        \/* Calculate Button *\/\r\n        .calculate-btn,\r\n        .calculate-btn:hover,\r\n        .calculate-btn:active,\r\n        .calculate-btn:focus,\r\n        .bump-calculator-container .calculate-btn,\r\n        .bump-calculator-container .calculate-btn:hover,\r\n        .bump-calculator-container .calculate-btn:active,\r\n        .bump-calculator-container .calculate-btn:focus {\r\n            background: #007bff !important;\r\n            color: white !important;\r\n            border: none !important;\r\n            padding: 12px !important;\r\n            border-radius: 4px !important;\r\n            cursor: pointer !important;\r\n            font-size: 16px !important;\r\n            width: 100% !important;\r\n            text-transform: uppercase !important;\r\n            font-weight: 500 !important;\r\n            margin: 20px 0 !important;\r\n            text-decoration: none !important;\r\n            box-shadow: none !important;\r\n            opacity: 1 !important;\r\n        }\r\n\r\n        \/* Results Section *\/\r\n        .results-section {\r\n            display: none;\r\n            margin-top: 20px;\r\n            background-color: #ecf5ff;\r\n            border-radius: 4px;\r\n            padding: 15px;\r\n            border: 1px solid #B3D7FF;\r\n        }\r\n\r\n        .results-section.visible {\r\n            display: block;\r\n        }\r\n\r\n        .results-section h3 {\r\n            color: #007bff;\r\n            margin-top: 0;\r\n            margin-bottom: 15px;\r\n        }\r\n\r\n        .result-item {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            margin-bottom: 10px;\r\n            padding: 8px 0;\r\n            border-bottom: 1px solid #B3D7FF;\r\n        }\r\n\r\n        .result-item:last-child {\r\n            border-bottom: none;\r\n            margin-bottom: 0;\r\n        }\r\n\r\n        .result-item p {\r\n            margin: 0;\r\n            color: #333;\r\n            font-size: 15px;\r\n        }\r\n\r\n        .result-value {\r\n            color: #007bff;\r\n            font-weight: 500;\r\n            font-size: 15px;\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .bump-calculator-container {\r\n                padding: 15px;\r\n            }\r\n        }\r\n    <\/style>\r\n<\/head>\r\n<body>\r\n    <div class=\"bump-calculator-container\">\r\n        <h1 class=\"calculator-title\">Bump Bending Calculator<\/h1>\r\n\r\n        <!-- Unit Selection -->\r\n        <label class=\"unit-label\">Unit<\/label>\r\n        <div class=\"unit-selection\">\r\n            <label>\r\n                <input type=\"radio\" name=\"unit\" value=\"mm\" checked> mm\r\n            <\/label>\r\n            <label>\r\n                <input type=\"radio\" name=\"unit\" value=\"inch\"> inch\r\n            <\/label>\r\n        <\/div>\r\n\r\n        <!-- Input Parameters -->\r\n        <div class=\"input-group\">\r\n            <label for=\"bendAngle\">Bend Angle<\/label>\r\n            <div class=\"input-wrapper\">\r\n                <input type=\"number\" id=\"bendAngle\" step=\"0.1\" min=\"0\" max=\"180\">\r\n                <span class=\"unit\">\u00b0<\/span>\r\n            <\/div>\r\n            <div class=\"validation-message\" id=\"bendAngle-validation\">Bend angle must be more than 80\u00b0<\/div>\r\n        <\/div>\r\n\r\n        <div class=\"input-group\">\r\n            <label for=\"vOpening\">V-Opening<\/label>\r\n            <div class=\"input-wrapper\">\r\n                <input type=\"number\" id=\"vOpening\" step=\"0.1\" min=\"0\">\r\n                <span class=\"unit\">mm<\/span>\r\n            <\/div>\r\n            <div class=\"validation-message\" id=\"vOpening-validation\">V-Opening must be more than 6mm<\/div>\r\n        <\/div>\r\n\r\n        <div class=\"input-group\">\r\n            <label for=\"innerRadius\">Inner Radius<\/label>\r\n            <div class=\"input-wrapper\">\r\n                <input type=\"number\" id=\"innerRadius\" step=\"0.1\" min=\"0\">\r\n                <span class=\"unit\">mm<\/span>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <button class=\"calculate-btn\" onclick=\"calculateResults()\">Calculate<\/button>\r\n\r\n        <!-- Results Section -->\r\n        <div class=\"results-section\" id=\"results\">\r\n            <h3>Results<\/h3>\r\n            <div class=\"result-item\">\r\n                <p>Radius Pitch<\/p>\r\n                <span class=\"result-value\" id=\"radiusPitch-result\">0 mm<\/span>\r\n            <\/div>\r\n            <div class=\"result-item\">\r\n                <p>Bend Step<\/p>\r\n                <span class=\"result-value\" id=\"bendStep-result\">0<\/span>\r\n            <\/div>\r\n            <div class=\"result-item\">\r\n                <p>Single Bend Angle<\/p>\r\n                <span class=\"result-value\" id=\"singleBendAngle-result\">0\u00b0<\/span>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n        let currentUnit = 'mm';\r\n\r\n        function updateUnits(unit) {\r\n            currentUnit = unit;\r\n            \/\/ Update input field units\r\n            const inputUnits = document.querySelectorAll('.input-wrapper .unit');\r\n            inputUnits.forEach(unitSpan => {\r\n                if (unitSpan.parentElement.querySelector('input').id === 'bendAngle') {\r\n                    return; \/\/ Skip Bend Angle as it always uses degrees\r\n                }\r\n                unitSpan.textContent = unit;\r\n            });\r\n\r\n            \/\/ Update validation messages\r\n            const vOpeningValidation = document.getElementById('vOpening-validation');\r\n            vOpeningValidation.textContent = `V-Opening must be more than ${unit === 'mm' ? '6mm' : '0.236inch'}`;\r\n\r\n            \/\/ Update result units\r\n            const resultUnits = document.querySelectorAll('.result-value');\r\n            resultUnits.forEach(resultSpan => {\r\n                const currentText = resultSpan.textContent;\r\n                if (currentText === '0') return; \/\/ Skip empty results\r\n                \r\n                if (resultSpan.id === 'radiusPitch-result') {\r\n                    const value = parseFloat(currentText);\r\n                    if (unit === 'mm' && currentText.includes('inch')) {\r\n                        \/\/ Convert inch to mm\r\n                        resultSpan.textContent = `${(value * 25.4).toFixed(2)} mm`;\r\n                    } else if (unit === 'inch' && currentText.includes('mm')) {\r\n                        \/\/ Convert mm to inch\r\n                        resultSpan.textContent = `${(value \/ 25.4).toFixed(3)} inch`;\r\n                    }\r\n                }\r\n            });\r\n\r\n            \/\/ Convert input values\r\n            const vOpening = document.getElementById('vOpening');\r\n            const innerRadius = document.getElementById('innerRadius');\r\n            \r\n            if (vOpening.value) {\r\n                const value = parseFloat(vOpening.value);\r\n                if (unit === 'inch') {\r\n                    vOpening.value = (value \/ 25.4).toFixed(3);\r\n                } else {\r\n                    vOpening.value = (value * 25.4).toFixed(2);\r\n                }\r\n            }\r\n            \r\n            if (innerRadius.value) {\r\n                const value = parseFloat(innerRadius.value);\r\n                if (unit === 'inch') {\r\n                    innerRadius.value = (value \/ 25.4).toFixed(3);\r\n                } else {\r\n                    innerRadius.value = (value * 25.4).toFixed(2);\r\n                }\r\n            }\r\n\r\n            validateInputs();\r\n        }\r\n\r\n        \/\/ Add unit change event listeners\r\n        document.addEventListener('DOMContentLoaded', function() {\r\n            const unitRadios = document.querySelectorAll('input[name=\"unit\"]');\r\n            unitRadios.forEach(radio => {\r\n                radio.addEventListener('change', (e) => {\r\n                    updateUnits(e.target.value);\r\n                });\r\n            });\r\n\r\n            document.getElementById('bendAngle').addEventListener('input', validateInputs);\r\n            document.getElementById('vOpening').addEventListener('input', validateInputs);\r\n        });\r\n\r\n        function validateInputs() {\r\n            const bendAngle = parseFloat(document.getElementById('bendAngle').value);\r\n            const vOpening = parseFloat(document.getElementById('vOpening').value);\r\n            \r\n            \/\/ Validate Bend Angle\r\n            const bendAngleValidation = document.getElementById('bendAngle-validation');\r\n            if (bendAngle && bendAngle < 80) {\r\n                bendAngleValidation.classList.add('show');\r\n            } else {\r\n                bendAngleValidation.classList.remove('show');\r\n            }\r\n\r\n            \/\/ Validate V-Opening\r\n            const vOpeningValidation = document.getElementById('vOpening-validation');\r\n            const minVOpening = currentUnit === 'mm' ? 6 : 0.236;\r\n            if (vOpening && vOpening < minVOpening) {\r\n                vOpeningValidation.classList.add('show');\r\n            } else {\r\n                vOpeningValidation.classList.remove('show');\r\n            }\r\n        }\r\n\r\n        function calculateResults() {\r\n            \/\/ Get input values\r\n            const bendAngle = parseFloat(document.getElementById('bendAngle').value);\r\n            const vOpening = parseFloat(document.getElementById('vOpening').value);\r\n            const innerRadius = parseFloat(document.getElementById('innerRadius').value);\r\n\r\n            \/\/ Convert to mm for calculations if needed\r\n            const vOpeningMM = currentUnit === 'inch' ? vOpening * 25.4 : vOpening;\r\n            const innerRadiusMM = currentUnit === 'inch' ? innerRadius * 25.4 : innerRadius;\r\n            const minVOpening = currentUnit === 'mm' ? 6 : 0.236;\r\n\r\n            \/\/ Validate inputs\r\n            if (!bendAngle || !vOpening || !innerRadius || bendAngle < 80 || vOpening < minVOpening) {\r\n                \/\/ Clear results if inputs are invalid\r\n                document.getElementById('radiusPitch-result').textContent = '0';\r\n                document.getElementById('bendStep-result').textContent = '0';\r\n                document.getElementById('singleBendAngle-result').textContent = '0\u00b0';\r\n                document.getElementById('results').classList.remove('visible');\r\n                return;\r\n            }\r\n\r\n            \/\/ Calculate Radius Pitch (p = V\/2)\r\n            const radiusPitch = vOpeningMM \/ 2;\r\n\r\n            \/\/ Calculate Bend Step\r\n            const bendStepCalc = Math.round((innerRadiusMM * bendAngle * Math.PI) \/ (180 * radiusPitch));\r\n            const bendStep = Math.max(3, bendStepCalc);\r\n\r\n            \/\/ Calculate Single Bend Angle\r\n            let singleBendAngle = 180 - (4.775 * vOpeningMM);\r\n\r\n            \/\/ Handle edge cases\r\n            if (bendStep <= 1) {\r\n                singleBendAngle = bendAngle;\r\n            }\r\n\r\n            \/\/ Display results with proper units\r\n            const radiusPitchValue = currentUnit === 'inch' ? radiusPitch \/ 25.4 : radiusPitch;\r\n            document.getElementById('radiusPitch-result').textContent = `${currentUnit === 'inch' ? radiusPitchValue.toFixed(3) : radiusPitchValue.toFixed(2)} ${currentUnit}`;\r\n            document.getElementById('bendStep-result').textContent = `${bendStep}`;\r\n            document.getElementById('singleBendAngle-result').textContent = `${singleBendAngle.toFixed(2)}\u00b0`;\r\n\r\n            \/\/ Show results section\r\n            document.getElementById('results').classList.add('visible');\r\n        }\r\n    <\/script>\r\n<\/body>\r\n<\/html> \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Questo calcolatore di piegatura a urto ti aiuta a stimare il passo del raggio, i passaggi di piegatura e l&#039;angolo di piegatura singolo necessari per formare un raggio ampio<\/p>","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-66012","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.harsle.com\/it\/wp-json\/wp\/v2\/pages\/66012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.harsle.com\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.harsle.com\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.harsle.com\/it\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.harsle.com\/it\/wp-json\/wp\/v2\/comments?post=66012"}],"version-history":[{"count":0,"href":"https:\/\/www.harsle.com\/it\/wp-json\/wp\/v2\/pages\/66012\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.harsle.com\/it\/wp-json\/wp\/v2\/media?parent=66012"}],"curies":[{"name":"parola chiave","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}