{"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\/no\/overhead-and-gantry-crane-deflection-calculator\/","title":{"rendered":"Kalkulator for nedb\u00f8yning for travers- og portalkraner"},"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\">Konsentrert belastning P (N)<\/label>\n        <input type=\"number\" id=\"calculator-P\" placeholder=\"Inngangslastverdi\">\n        <span class=\"error-msg\"><\/span>\n    <\/div>\n    <div class=\"field-wrap\">\n        <label for=\"calculator-L\">Spennvidde L (m)<\/label>\n        <input type=\"number\" id=\"calculator-L\" placeholder=\"Inngangsspennlengde\">\n        <span class=\"error-msg\"><\/span>\n    <\/div>\n    <div class=\"field-wrap\">\n        <label for=\"calculator-I\">Treghetsmoment I (cm\u2074)<\/label>\n        <input type=\"number\" id=\"calculator-I\" placeholder=\"Inndata treghetsverdi\">\n        <span class=\"error-msg\"><\/span>\n    <\/div>\n\n    <div class=\"btn-group\">\n        <button id=\"calculator-calcBtn\" class=\"calc-btn\">Kalkulere<\/button>\n        <button id=\"calculator-resetBtn\" class=\"reset-btn\">Tilbakestill<\/button>\n    <\/div>\n\n    <div class=\"result-wrap\">\n        <div class=\"result-label\">Nedb\u00f8yning (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 for kalkulator for avb\u00f8yning for travers- og portalkraner<\/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: Maksimal nedb\u00f8yning (enhet: m)<\/li>\n\n\n\n<li>P: Hjullast (enhet: N)<\/li>\n\n\n\n<li>L: Spennvidde for hovedbjelke (enhet: m)<\/li>\n\n\n\n<li>E: Elastisitetsmodul (enhet: Pa, vanligvis tatt som 2,06 \u00d7 10\u00b9\u00b9 Pa)<\/li>\n\n\n\n<li>I: Treghetsmoment (enhet: m<sup>4<\/sup>) <\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Notater<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>I internasjonale standardberegninger blir enheten for st\u00e5ls elastisitetsmodul automatisk konvertert til Pa.<\/li>\n\n\n\n<li>Beregningsresultatene fra <a href=\"https:\/\/www.dgcrane.com\/no\/crane-main-girder-section-moment-of-inertia-calculator\/\">Treghetsmomentkalkulatoren for kranens hovedbjelkeseksjon<\/a> er i cm\u2074, men konverteres automatisk til SI-enheten m\u2074 under beregningsprosessen.<\/li>\n\n\n\n<li>Denne kalkulatoren for nedb\u00f8yning for travers- og portalkraner er prim\u00e6rt anvendelig for hovedbjelker med rektangul\u00e6re hulprofiler.<\/li>\n\n\n\n<li>Lasten som brukes i denne kalkulatoren for nedb\u00f8yning for travers- og portalkraner er en konsentrert last midt i spennet (med l\u00f8pekatt plassert p\u00e5 det mest ugunstige stedet).<\/li>\n\n\n\n<li>Kun vertikal statisk nedb\u00f8yning beregnes, og den dynamiske lastkoeffisienten tas ikke i betraktning.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Gjeldende kraner<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Brokraner (spenn \u2264 30 m)<\/li>\n\n\n\n<li>Portalkraner (spenn \u2264 30 m og uten utkragning, eller utkragningslengde \u2264 0,15 L)<\/li>\n\n\n\n<li>Halvportalkraner (spenn \u2264 30 m og uten utkragning, eller utkragningslengde \u2264 0,15 L)<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"Kalkulatoren for nedb\u00f8yning av travers- og portalkraner sikrer driftssikkerhet, reduserer strukturell utmatting og forlenger levetiden. Den beregner n\u00f8yaktig den vertikale nedb\u00f8yningen av belastede bjelker, evaluerer bjelkens stivhet og strukturelle ytelse ved \u00e5 legge inn l\u00f8ftekapasitet, spennvidde, l\u00f8pekattvekt og seksjonsparametere. Denne kalkulatoren for nedb\u00f8yning av travers- og portalkraner forhindrer ogs\u00e5 skinnegnaging, permanent deformasjon og ustabil drift, og optimaliserer strukturell design og vekt. Til slutt verifiserer den om nedb\u00f8yningsverdiene overholder grensene satt av ISO- og 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\/no\/wp-json\/wp\/v2\/posts\/17213"}],"collection":[{"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/comments?post=17213"}],"version-history":[{"count":4,"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/posts\/17213\/revisions"}],"predecessor-version":[{"id":17219,"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/posts\/17213\/revisions\/17219"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/media\/17216"}],"wp:attachment":[{"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/media?parent=17213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/categories?post=17213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/tags?post=17213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}