{"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\/vi\/overhead-and-gantry-crane-deflection-calculator\/","title":{"rendered":"M\u00e1y t\u00ednh \u0111\u1ed9 v\u00f5ng c\u1ee7a c\u1ea7n c\u1ea9u tr\u00ean cao v\u00e0 c\u1ea7n c\u1ea9u gi\u00e0n"},"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\">T\u1ea3i tr\u1ecdng t\u1eadp trung P (N)<\/label>\n        <input type=\"number\" id=\"calculator-P\" placeholder=\"Gi\u00e1 tr\u1ecb t\u1ea3i \u0111\u1ea7u v\u00e0o\">\n        <span class=\"error-msg\"><\/span>\n    <\/div>\n    <div class=\"field-wrap\">\n        <label for=\"calculator-L\">Chi\u1ec1u d\u00e0i nh\u1ecbp L (m)<\/label>\n        <input type=\"number\" id=\"calculator-L\" placeholder=\"\u0110\u1ed9 d\u00e0i \u0111o\u1ea1n \u0111\u1ea7u v\u00e0o\">\n        <span class=\"error-msg\"><\/span>\n    <\/div>\n    <div class=\"field-wrap\">\n        <label for=\"calculator-I\">M\u00f4men qu\u00e1n t\u00ednh I (cm\u2074)<\/label>\n        <input type=\"number\" id=\"calculator-I\" placeholder=\"Gi\u00e1 tr\u1ecb qu\u00e1n t\u00ednh \u0111\u1ea7u v\u00e0o\">\n        <span class=\"error-msg\"><\/span>\n    <\/div>\n\n    <div class=\"btn-group\">\n        <button id=\"calculator-calcBtn\" class=\"calc-btn\">T\u00ednh to\u00e1n<\/button>\n        <button id=\"calculator-resetBtn\" class=\"reset-btn\">C\u00e0i l\u1ea1i<\/button>\n    <\/div>\n\n    <div class=\"result-wrap\">\n        <div class=\"result-label\">\u0110\u1ed9 l\u1ec7ch (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\">C\u00f4ng th\u1ee9c t\u00ednh \u0111\u1ed9 v\u00f5ng c\u1ee7a c\u1ea7n c\u1ea9u tr\u00ean cao v\u00e0 c\u1ea7n c\u1ea9u gi\u00e0n<\/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: \u0110\u1ed9 l\u1ec7ch t\u1ed1i \u0111a (\u0111\u01a1n v\u1ecb: m)<\/li>\n\n\n\n<li>P: T\u1ea3i tr\u1ecdng b\u00e1nh xe (\u0111\u01a1n v\u1ecb: N)<\/li>\n\n\n\n<li>L: Nh\u1ecbp d\u1ea7m ch\u00ednh (\u0111\u01a1n v\u1ecb: m)<\/li>\n\n\n\n<li>E: M\u00f4 \u0111un \u0111\u00e0n h\u1ed3i (\u0111\u01a1n v\u1ecb: Pa, th\u01b0\u1eddng \u0111\u01b0\u1ee3c l\u1ea5y l\u00e0 2,06 \u00d7 10\u00b9\u00b9 Pa)<\/li>\n\n\n\n<li>I: M\u00f4men qu\u00e1n t\u00ednh (\u0111\u01a1n v\u1ecb: m\u00b2)<sup>4<\/sup>) <\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Ghi ch\u00fa<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Trong c\u00e1c ph\u00e9p t\u00ednh theo ti\u00eau chu\u1ea9n qu\u1ed1c t\u1ebf, \u0111\u01a1n v\u1ecb c\u1ee7a m\u00f4 \u0111un \u0111\u00e0n h\u1ed3i c\u1ee7a th\u00e9p \u0111\u01b0\u1ee3c t\u1ef1 \u0111\u1ed9ng chuy\u1ec3n \u0111\u1ed5i sang Pa.<\/li>\n\n\n\n<li>K\u1ebft qu\u1ea3 t\u00ednh to\u00e1n t\u1eeb <a href=\"https:\/\/www.dgcrane.com\/vi\/crane-main-girder-section-moment-of-inertia-calculator\/\">M\u00e1y t\u00ednh m\u00f4men qu\u00e1n t\u00ednh c\u1ee7a ti\u1ebft di\u1ec7n d\u1ea7m ch\u00ednh c\u1ea7n c\u1ea9u<\/a> C\u00e1c gi\u00e1 tr\u1ecb n\u00e0y \u0111\u01b0\u1ee3c t\u00ednh b\u1eb1ng cm\u2074, nh\u01b0ng s\u1ebd t\u1ef1 \u0111\u1ed9ng \u0111\u01b0\u1ee3c chuy\u1ec3n \u0111\u1ed5i sang \u0111\u01a1n v\u1ecb SI l\u00e0 m\u2074 trong qu\u00e1 tr\u00ecnh t\u00ednh to\u00e1n.<\/li>\n\n\n\n<li>C\u00f4ng c\u1ee5 t\u00ednh to\u00e1n \u0111\u1ed9 v\u00f5ng c\u1ea7n c\u1ea9u tr\u00ean cao v\u00e0 c\u1ea7n c\u1ea9u gi\u00e0n n\u00e0y ch\u1ee7 y\u1ebfu \u00e1p d\u1ee5ng cho d\u1ea7m ch\u00ednh c\u00f3 ti\u1ebft di\u1ec7n r\u1ed7ng h\u00ecnh ch\u1eef nh\u1eadt.<\/li>\n\n\n\n<li>T\u1ea3i tr\u1ecdng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng trong c\u00f4ng c\u1ee5 t\u00ednh to\u00e1n \u0111\u1ed9 v\u00f5ng c\u1ea7n c\u1ea9u tr\u00ean cao v\u00e0 c\u1ea7n c\u1ea9u gi\u00e0n n\u00e0y l\u00e0 t\u1ea3i tr\u1ecdng t\u1eadp trung \u1edf gi\u1eefa nh\u1ecbp (v\u1edbi xe \u0111\u1ea9y \u0111\u01b0\u1ee3c \u0111\u1eb7t \u1edf v\u1ecb tr\u00ed b\u1ea5t l\u1ee3i nh\u1ea5t).<\/li>\n\n\n\n<li>Ch\u1ec9 t\u00ednh to\u00e1n \u0111\u1ed9 v\u00f5ng t\u0129nh theo ph\u01b0\u01a1ng th\u1eb3ng \u0111\u1ee9ng, v\u00e0 kh\u00f4ng x\u00e9t \u0111\u1ebfn h\u1ec7 s\u1ed1 t\u1ea3i tr\u1ecdng \u0111\u1ed9ng.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">C\u1ea7n c\u1ea9u \u00e1p d\u1ee5ng<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>C\u1ea7n c\u1ea9u c\u1ea7u tr\u1ee5c (nh\u1ecbp \u2264 30 m)<\/li>\n\n\n\n<li>C\u1ea7n c\u1ea9u gi\u00e0n (nh\u1ecbp \u2264 30 m v\u00e0 kh\u00f4ng c\u00f3 c\u1ea7n tr\u1ee5c, ho\u1eb7c chi\u1ec1u d\u00e0i c\u1ea7n tr\u1ee5c \u2264 0,15L)<\/li>\n\n\n\n<li>C\u1ea7n c\u1ea9u b\u00e1n gi\u00e0n (nh\u1ecbp \u2264 30 m v\u00e0 kh\u00f4ng c\u00f3 c\u1ea7n tr\u1ee5c, ho\u1eb7c chi\u1ec1u d\u00e0i c\u1ea7n tr\u1ee5c \u2264 0,15L)<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"Ph\u1ea7n m\u1ec1m t\u00ednh to\u00e1n \u0111\u1ed9 v\u00f5ng c\u1ea7n c\u1ea9u tr\u00ean cao v\u00e0 c\u1ea7n tr\u1ee5c gi\u00e0n gi\u00fap \u0111\u1ea3m b\u1ea3o an to\u00e0n v\u1eadn h\u00e0nh, gi\u1ea3m m\u1ecfi k\u1ebft c\u1ea5u v\u00e0 k\u00e9o d\u00e0i tu\u1ed5i th\u1ecd. N\u00f3 t\u00ednh to\u00e1n ch\u00ednh x\u00e1c \u0111\u1ed9 v\u00f5ng th\u1eb3ng \u0111\u1ee9ng c\u1ee7a d\u1ea7m ch\u1ecbu t\u1ea3i, \u0111\u00e1nh gi\u00e1 \u0111\u1ed9 c\u1ee9ng d\u1ea7m v\u00e0 hi\u1ec7u su\u1ea5t k\u1ebft c\u1ea5u b\u1eb1ng c\u00e1ch nh\u1eadp t\u1ea3i tr\u1ecdng n\u00e2ng, nh\u1ecbp, tr\u1ecdng l\u01b0\u1ee3ng xe \u0111\u1ea9y v\u00e0 c\u00e1c th\u00f4ng s\u1ed1 m\u1eb7t c\u1eaft. Ph\u1ea7n m\u1ec1m n\u00e0y c\u0169ng ng\u0103n ng\u1eeba hi\u1ec7n t\u01b0\u1ee3ng m\u00f2n ray, bi\u1ebfn d\u1ea1ng v\u0129nh vi\u1ec5n v\u00e0 v\u1eadn h\u00e0nh kh\u00f4ng \u1ed5n \u0111\u1ecbnh, \u0111\u1ed3ng th\u1eddi t\u1ed1i \u01b0u h\u00f3a thi\u1ebft k\u1ebf v\u00e0 tr\u1ecdng l\u01b0\u1ee3ng k\u1ebft c\u1ea5u. Cu\u1ed1i c\u00f9ng, n\u00f3 x\u00e1c minh xem c\u00e1c gi\u00e1 tr\u1ecb \u0111\u1ed9 v\u00f5ng c\u00f3 tu\u00e2n th\u1ee7 c\u00e1c gi\u1edbi h\u1ea1n do ti\u00eau chu\u1ea9n ISO v\u00e0 FEM quy \u0111\u1ecbnh hay kh\u00f4ng.","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\/vi\/wp-json\/wp\/v2\/posts\/17213"}],"collection":[{"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/comments?post=17213"}],"version-history":[{"count":4,"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/posts\/17213\/revisions"}],"predecessor-version":[{"id":17219,"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/posts\/17213\/revisions\/17219"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/media\/17216"}],"wp:attachment":[{"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/media?parent=17213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/categories?post=17213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/tags?post=17213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}