{"id":17213,"date":"2026-07-07T02:18:44","date_gmt":"2026-07-07T02:18:44","guid":{"rendered":"https:\/\/www.dgcrane.com\/?p=17213"},"modified":"2026-07-07T02:18:48","modified_gmt":"2026-07-07T02:18:48","slug":"overhead-and-gantry-crane-deflection-calculator","status":"publish","type":"post","link":"https:\/\/www.dgcrane.com\/sv\/overhead-and-gantry-crane-deflection-calculator\/","title":{"rendered":"Kalkylator f\u00f6r nedb\u00f6jning f\u00f6r travers- och portalkranar"},"content":{"rendered":"<!-- WordPress \u53ef\u76f4\u63a5\u7c98\u8d34\u5b8c\u6574\u4ee3\u7801\u5757 -->\n<div id=\"calculator\">\n    <style>\n        \/* \u4ec5\u4f5c\u7528\u4e8e #calculator \u5185\u90e8\uff0c\u65e0\u5168\u5c40\u6837\u5f0f\u6c61\u67d3 *\/\n        #calculator {\n            --primary-color: #0a3487;\n            --primary-hover: #F58423;\n            --error-color: #e53935;\n            --bg-color: #EAEEF7;\n            --text-color: #4a4a4a;\n            max-width: 545px;\n            padding: 30px;\n            background-color: var(--bg-color);\n            color: var(--text-color);\n            box-sizing: border-box;\n        }\n        #calculator .calc-title {\n            font-size: 18px;\n            margin: 0 0 24px 0;\n            font-weight: 600;\n        }\n        #calculator .field-wrap {\n            margin-bottom: 18px;\n        }\n        #calculator label {\n            display: block;\n            font-size: 14px;\n            margin-bottom: 6px;\n        }\n        #calculator input {\n            width: 100%;\n            box-sizing: border-box;\n            height: 36px;\n            font-size: 16px;\n            border: 1px solid #ccc;\n            border-radius: 0;\n            padding: 0 10px;\n            transition: 0.2s ease;\n        }\n        #calculator input:focus {\n            border: 2px solid var(--primary-color);\n            outline: none;\n        }\n        #calculator input.error {\n            border: 2px solid var(--error-color);\n        }\n        #calculator .error-msg {\n            display: none;\n            font-size: 12px;\n            color: var(--error-color);\n            margin-top: 4px;\n        }\n        #calculator .btn-group {\n            display: flex;\n            gap: 12px;\n            margin: 24px 0;\n        }\n        #calculator button {\n            flex: 1;\n            height: 34px;\n            line-height: 34px;\n            font-size: 14px;\n            border: none;\n            border-radius: 0;\n            cursor: pointer;\n            transition: 0.2s ease;\n        }\n        #calculator .calc-btn {\n            background-color: var(--primary-color);\n            color: #fff;\n        }\n        #calculator .calc-btn:hover {\n            background-color: var(--primary-hover);\n        }\n        #calculator .reset-btn {\n            background-color: #999;\n            color: #fff;\n        }\n        #calculator .result-wrap {\n            margin-top: 16px;\n        }\n        #calculator .result-label {\n            font-size: 14px;\n        }\n        #calculator .result-value {\n            font-size: 40px;\n            font-weight: bold;\n            margin-top: 4px;\n            word-break: break-all;\n        }\n        \/* \u79fb\u52a8\u7aef\u9002\u914d max-width:768px *\/\n        @media (max-width: 768px) {\n            #calculator input,\n            #calculator button {\n                height: 0.7rem;\n            }\n            #calculator label,\n            #calculator button,\n            #calculator .result-label {\n                font-size: 0.28rem;\n            }\n            #calculator .btn-group {\n                flex-direction: column;\n            }\n            #calculator button {\n                width: 100%;\n            }\n            #calculator .result-value {\n                font-size: 0.8rem;\n            }\n        }\n    <\/style>\n\n    <div class=\"field-wrap\">\n        <label for=\"calculator-P\">Koncentrerad belastning P (N)<\/label>\n        <input type=\"number\" id=\"calculator-P\" placeholder=\"Ing\u00e5ngsbelastningsv\u00e4rde\">\n        <span class=\"error-msg\"><\/span>\n    <\/div>\n    <div class=\"field-wrap\">\n        <label for=\"calculator-L\">Sp\u00e4nnvidd L (m)<\/label>\n        <input type=\"number\" id=\"calculator-L\" placeholder=\"Ing\u00e5ngsspannl\u00e4ngd\">\n        <span class=\"error-msg\"><\/span>\n    <\/div>\n    <div class=\"field-wrap\">\n        <label for=\"calculator-I\">Tr\u00f6ghetsmoment I (cm\u2074)<\/label>\n        <input type=\"number\" id=\"calculator-I\" placeholder=\"Inmatningstr\u00f6ghetsv\u00e4rde\">\n        <span class=\"error-msg\"><\/span>\n    <\/div>\n\n    <div class=\"btn-group\">\n        <button id=\"calculator-calcBtn\" class=\"calc-btn\">Kalkylera<\/button>\n        <button id=\"calculator-resetBtn\" class=\"reset-btn\">\u00c5terst\u00e4lla<\/button>\n    <\/div>\n\n    <div class=\"result-wrap\">\n        <div class=\"result-label\">Nedb\u00f6jning (m)<\/div>\n        <div id=\"calculator-result\" class=\"result-value\">&#8212;<\/div>\n    <\/div>\n\n    <script>\n        (function() {\n            const fieldIds = ['P', 'L', 'I'];\n            const inputEls = {};\n            const errorMsgEls = {};\n            const resultEl = document.getElementById('calculator-result');\n            const calcBtn = document.getElementById('calculator-calcBtn');\n            const resetBtn = document.getElementById('calculator-resetBtn');\n            \/\/ \u94a2\u6750\u6807\u51c6\u5f39\u6027\u6a21\u91cf\u56fa\u5b9a\u503c 2.06\u00d710\u00b9\u00b9 Pa\n            const STEEL_E = 2.06e11;\n\n            \/\/ \u521d\u59cb\u5316DOM\u6620\u5c04\n            function initDomRefs() {\n                fieldIds.forEach(key => {\n                    inputEls[key] = document.getElementById(`calculator-${key}`);\n                    errorMsgEls[key] = inputEls[key].nextElementSibling;\n                    \/\/ \u8f93\u5165\u65f6\u6e05\u9664\u9519\u8bef\n                    inputEls[key].addEventListener('input', () => clearError(inputEls[key], errorMsgEls[key]));\n                });\n            }\n\n            \/\/ \u8bbe\u7f6e\u9519\u8bef\u63d0\u793a\n            function setError(inputEl, msgEl, message) {\n                inputEl.classList.add('error');\n                msgEl.textContent = message;\n                msgEl.style.display = 'block';\n            }\n\n            \/\/ \u6e05\u9664\u9519\u8bef\u63d0\u793a\n            function clearError(inputEl, msgEl) {\n                inputEl.classList.remove('error');\n                msgEl.textContent = '';\n                msgEl.style.display = 'none';\n            }\n\n            \/\/ \u6821\u9a8c\u5355\u4e2a\u8f93\u5165\n            function validateInput(inputEl, msgEl, fieldName) {\n                const val = parseFloat(inputEl.value.trim());\n                if(inputEl.value.trim() === '') {\n                    setError(inputEl, msgEl, `${fieldName} field cannot be empty`);\n                    return false;\n                }\n                if(isNaN(val) || val <= 0) {\n                    setError(inputEl, msgEl, `${fieldName} must be positive number`);\n                    return false;\n                }\n                clearError(inputEl, msgEl);\n                return true;\n            }\n\n            \/\/ \u6279\u91cf\u6821\u9a8c\u5168\u90e8\u5b57\u6bb5\n            function validateAllFields() {\n                let isValid = true;\n                const fieldNames = {\n                    P: 'Load P',\n                    L: 'Span L',\n                    I: 'Inertia I'\n                };\n                fieldIds.forEach(key => {\n                    const pass = validateInput(inputEls[key], errorMsgEls[key], fieldNames[key]);\n                    if(!pass) isValid = false;\n                });\n                return isValid;\n            }\n\n            \/\/ \u6838\u5fc3\u8ba1\u7b97\u903b\u8f91\n            \/\/ I\u8f93\u5165cm\u2074\uff0c\u8f6c\u6362 m\u2074\uff1a1 cm\u2074 = 1e-8 m\u2074\n            \/\/ f = (P * L^3) \/ (48 * E * I_m4)\n            function runCalculation() {\n                if(!validateAllFields()) {\n                    resultEl.textContent = '--';\n                    return;\n                }\n                const P = parseFloat(inputEls.P.value);\n                const L = parseFloat(inputEls.L.value);\n                const I_cm4 = parseFloat(inputEls.I.value);\n                \/\/ cm\u2074 \u8f6c m\u2074\n                const I_m4 = I_cm4 * Math.pow(10, -8);\n\n                const numerator = P * Math.pow(L, 3);\n                const denominator = 48 * STEEL_E * I_m4;\n                const deflection = numerator \/ denominator;\n                \/\/ \u7ed3\u679c\u4fdd\u75592\u4f4d\u5c0f\u6570\n                resultEl.textContent = deflection.toFixed(2);\n            }\n\n            \/\/ \u91cd\u7f6e\u5168\u90e8\n            function resetAll() {\n                fieldIds.forEach(key => {\n                    inputEls[key].value = '';\n                    clearError(inputEls[key], errorMsgEls[key]);\n                });\n                resultEl.textContent = '--';\n            }\n\n            \/\/ \u7ed1\u5b9a\u4e8b\u4ef6\n            function bindEvents() {\n                calcBtn.addEventListener('click', runCalculation);\n                resetBtn.addEventListener('click', resetAll);\n            }\n\n            \/\/ \u521d\u59cb\u5316\u5165\u53e3\n            function init() {\n                initDomRefs();\n                bindEvents();\n            }\n\n            window.BeamDeflectionCalc = {\n                init: init\n            };\n        })();\n\n        \/\/ \u9875\u9762\u52a0\u8f7d\u5b8c\u6210\u521d\u59cb\u5316\u8ba1\u7b97\u5668\n        document.addEventListener('DOMContentLoaded', function() {\n            BeamDeflectionCalc.init();\n        });\n    <\/script>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Formel f\u00f6r ber\u00e4kning av nedb\u00f6jning f\u00f6r travers- och portalkranar<\/h2>\n\n\n\n<style>\n    .formula {\n        font-family: \"Microsoft YaHei\", sans-serif;\n        font-size: 1.2em;\n        margin: 20px 0;\n        padding: 15px;\n        background: #ffffff;\n        border-radius: 8px;\n        text-align: left;\n    }\n    .math-frac {\n        display: inline-block;\n        vertical-align: middle;\n        text-align: center;\n        margin: 0 6px;\n    }\n    .frac-numerator {\n        display: block;\n        padding: 0 10px;\n        border-bottom: 2px solid #222;\n    }\n    .frac-denominator {\n        display: block;\n        padding: 0 10px;\n    }\n    .sup-pow {\n        font-size: 0.6em;\n        line-height: 0;\n        position: relative;\n        top: -0.6em;\n    }\n<\/style>\n<div class=\"formula\">\n    f = <span class=\"math-frac\">\n        <span class=\"frac-numerator\">PL<span class=\"sup-pow\">3<\/span><\/span>\n        <span class=\"frac-denominator\">48EI<\/span>\n    <\/span>\n<\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>f: Maximal nedb\u00f6jning (enhet: m)<\/li>\n\n\n\n<li>P: Hjullast (enhet: N)<\/li>\n\n\n\n<li>L: Sp\u00e4nnvidd f\u00f6r huvudbalk (enhet: m)<\/li>\n\n\n\n<li>E: Elasticitetsmodul (enhet: Pa, vanligtvis tagen som 2,06 \u00d7 10\u00b9\u00b9 Pa)<\/li>\n\n\n\n<li>I: Tr\u00f6ghetsmoment (enhet: m<sup>4<\/sup>) <\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Anteckningar<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>I internationella standardber\u00e4kningar omvandlas enheten f\u00f6r st\u00e5ls elasticitetsmodul automatiskt till Pa.<\/li>\n\n\n\n<li>Ber\u00e4kningsresultaten fr\u00e5n <a href=\"https:\/\/www.dgcrane.com\/sv\/crane-main-girder-section-moment-of-inertia-calculator\/\">Tr\u00f6ghetsmomentber\u00e4knaren f\u00f6r kranens huvudbalksektion<\/a> \u00e4r i cm\u2074, men konverteras automatiskt till SI-enheten m\u2074 under ber\u00e4kningsprocessen.<\/li>\n\n\n\n<li>Denna kalkylator f\u00f6r nedb\u00f6jning f\u00f6r travers- och portalkranar \u00e4r fr\u00e4mst till\u00e4mplig p\u00e5 huvudbalkar med rektangul\u00e4ra ih\u00e5liga profiler.<\/li>\n\n\n\n<li>Lasten som anv\u00e4nds i denna kalkylator f\u00f6r nedb\u00f6jning f\u00f6r travers- och portalkranar \u00e4r en koncentrerad last i mitten av spannet (med l\u00f6pvagnen placerad p\u00e5 den mest ogynnsamma platsen).<\/li>\n\n\n\n<li>Endast vertikal statisk nedb\u00f6jning ber\u00e4knas, och den dynamiska lastkoefficienten beaktas inte.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Till\u00e4mpliga kranar<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Brokranar (spannvidd \u2264 30 m)<\/li>\n\n\n\n<li>Portalkranar (spannvidd \u2264 30 m och utan utkragning, eller utkragningsl\u00e4ngd \u2264 0,15 L)<\/li>\n\n\n\n<li>Halvportalkranar (spannvidd \u2264 30 m och utan utkragning, eller utkragningsl\u00e4ngd \u2264 0,15 L)<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"Kalkylatorn f\u00f6r nedb\u00f6jning av travers- och portalkranar s\u00e4kerst\u00e4ller driftss\u00e4kerheten, minskar konstruktionsutmattning och f\u00f6rl\u00e4nger livsl\u00e4ngden. Den ber\u00e4knar noggrant den vertikala nedb\u00f6jningen av belastade balkar, utv\u00e4rderar balkstyvhet och konstruktionsprestanda genom att mata in parametrar f\u00f6r lyftkapacitet, sp\u00e4nnvidd, vagnvikt och sektion. Denna kalkylator f\u00f6r nedb\u00f6jning av travers- och portalkranar f\u00f6rhindrar \u00e4ven r\u00e4lsgnistning, permanent deformation och instabil drift, samt optimerar konstruktionsdesign och vikt. Slutligen verifierar den om nedb\u00f6jningsv\u00e4rdena \u00f6verensst\u00e4mmer med de gr\u00e4nser som fastst\u00e4llts av ISO- och FEM-standarder.","protected":false},"author":8,"featured_media":17216,"parent":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"single-onlinetools.php","format":"standard","meta":{"_acf_changed":false,"rank_math_lock_modified_date":false,"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[1059],"tags":[],"class_list":["post-17213","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-online-tools"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/posts\/17213"}],"collection":[{"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/comments?post=17213"}],"version-history":[{"count":4,"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/posts\/17213\/revisions"}],"predecessor-version":[{"id":17219,"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/posts\/17213\/revisions\/17219"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/media\/17216"}],"wp:attachment":[{"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/media?parent=17213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/categories?post=17213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/tags?post=17213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}