{"id":52637,"date":"2025-08-29T17:25:36","date_gmt":"2025-08-29T14:25:36","guid":{"rendered":"https:\/\/engeg.com\/b\/?p=52637"},"modified":"2025-09-05T12:07:23","modified_gmt":"2025-09-05T09:07:23","slug":"%d8%ad%d8%af%d9%8a%d8%af-%d8%a7%d9%84%d9%82%d9%88%d8%a7%d8%b9%d8%af","status":"publish","type":"post","link":"https:\/\/engeg.com\/b\/2025\/08\/29\/%d8%ad%d8%af%d9%8a%d8%af-%d8%a7%d9%84%d9%82%d9%88%d8%a7%d8%b9%d8%af\/","title":{"rendered":"\u062d\u062f\u064a\u062f \u0627\u0644\u0642\u0648\u0627\u0639\u062f"},"content":{"rendered":"<div class=\"calculator-output\"><!-- \u0628\u062f\u0627\u064a\u0629 \u0643\u0648\u062f \u062d\u0627\u0633\u0628\u0629 \u0627\u0644\u0625\u0646\u0634\u0627\u0621\u0627\u062a \u0627\u0644\u0634\u0627\u0645\u0644\u0629 (v5 - \u0625\u0635\u0644\u0627\u062d \u062c\u0630\u0631\u064a \u0648\u0646\u0647\u0627\u0626\u064a \u0644\u0644\u0623\u0632\u0631\u0627\u0631) -->\r\n<div id=\"comprehensive-calculator-app-v5\">\r\n\r\n    <!-- 1. CSS: \u0644\u0644\u062a\u0635\u0645\u064a\u0645 \u0648\u0627\u0644\u0623\u0646\u0627\u0642\u0629 (\u0644\u0627 \u062a\u063a\u064a\u064a\u0631\u0627\u062a) -->\r\n    <style>\r\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Cairo:wght@400;600;700&display=swap');\r\n        #comprehensive-calculator-app-v5 { font-family: 'Cairo', sans-serif; background-color: #f4f7f9; color: #333; margin: 20px 0; padding: 25px; border-radius: 12px; border: 1px solid #e0e0e0; direction: rtl; }\r\n        #comprehensive-calculator-app-v5 .main-header { text-align: center; margin-bottom: 30px; }\r\n        #comprehensive-calculator-app-v5 .main-header h1 { color: #2c3e50; margin: 0 0 10px; }\r\n        #comprehensive-calculator-app-v5 .main-header p { font-size: 1.1em; color: #7f8c8d; }\r\n        #comprehensive-calculator-app-v5 .card { background-color: #fff; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.07); padding: 25px; margin-bottom: 25px; border: 1px solid #e8e8e8; }\r\n        #comprehensive-calculator-app-v5 .card-header { font-size: 1.6em; font-weight: 700; color: #2c3e50; margin-bottom: 20px; display: flex; justify-content: space-between; align-items: center; padding-bottom: 10px; border-bottom: 2px solid #f0f0f0; }\r\n        #comprehensive-calculator-app-v5 .remove-btn { background: #e74c3c; color: white; border: none; border-radius: 50%; width: 30px; height: 30px; font-size: 1.2em; cursor: pointer; transition: all 0.2s; }\r\n        #comprehensive-calculator-app-v5 .remove-btn:hover { background: #c0392b; transform: scale(1.1); }\r\n        #comprehensive-calculator-app-v5 .form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 20px; }\r\n        #comprehensive-calculator-app-v5 .form-group { display: flex; flex-direction: column; }\r\n        #comprehensive-calculator-app-v5 .form-group label { margin-bottom: 8px; font-weight: 600; font-size: 0.9em; }\r\n        #comprehensive-calculator-app-v5 .form-group input { padding: 10px; border: 1px solid #ccc; border-radius: 5px; font-family: 'Cairo', sans-serif; font-size: 1em; width: 100%; box-sizing: border-box; transition: all 0.3s; }\r\n        #comprehensive-calculator-app-v5 .form-group input:focus { outline: none; border-color: #3498db; box-shadow: 0 0 8px rgba(52, 152, 219, 0.3); }\r\n        #comprehensive-calculator-app-v5 .section-title { grid-column: 1 \/ -1; font-size: 1.2em; font-weight: 600; color: #3498db; border-bottom: 2px solid #e0e0e0; padding-bottom: 8px; margin: 20px 0 10px; }\r\n        #comprehensive-calculator-app-v5 .btn { padding: 12px 25px; font-family: 'Cairo', sans-serif; font-size: 1.1em; font-weight: 600; border: none; border-radius: 5px; cursor: pointer; transition: all 0.3s; display: inline-block; }\r\n        #comprehensive-calculator-app-v5 .btn-primary { background-color: #3498db; color: white; }\r\n        #comprehensive-calculator-app-v5 .btn-primary:hover { background-color: #2980b9; transform: translateY(-2px); }\r\n        #comprehensive-calculator-app-v5 .btn-calculate { background-color: #27ae60; color: white; width: 100%; font-size: 1.5em; padding: 15px; margin: 20px 0; }\r\n        #comprehensive-calculator-app-v5 .btn-calculate:hover { background-color: #229954; transform: translateY(-3px); box-shadow: 0 4px 10px rgba(0,0,0,0.2); }\r\n        #comprehensive-calculator-app-v5 #results-area { display: none; }\r\n        #comprehensive-calculator-app-v5 #summary-card { border-left: 5px solid #27ae60; }\r\n        #comprehensive-calculator-app-v5 #summary-card .card-header { color: #27ae60; }\r\n        #comprehensive-calculator-app-v5 .result-item { display: flex; justify-content: space-between; padding: 12px 5px; border-bottom: 1px solid #f0f0f0; font-size: 1.1em; }\r\n        #comprehensive-calculator-app-v5 .result-item:last-child { border-bottom: none; }\r\n        #comprehensive-calculator-app-v5 .result-item span:first-child { font-weight: 600; }\r\n        #comprehensive-calculator-app-v5 .result-item span:last-child { font-weight: 700; color: #2c3e50; }\r\n        #comprehensive-calculator-app-v5 .total-highlight { background-color: #f8f9fa; border-top: 2px solid #27ae60; margin-top: 10px; padding-top: 10px; }\r\n        #comprehensive-calculator-app-v5 .total-highlight span:last-child { color: #27ae60; font-size: 1.25em; }\r\n        #comprehensive-calculator-app-v5 .module-container { margin-bottom: 30px; padding-bottom: 20px; border-bottom: 2px dashed #ccc; }\r\n        #comprehensive-calculator-app-v5 .module-container:last-child { border-bottom: none; }\r\n        #comprehensive-calculator-app-v5 .module-header { font-size: 2em; font-weight: 700; color: #2980b9; margin-bottom: 20px; }\r\n        #comprehensive-calculator-app-v5 #cutting-list-card { border-left-color: #e67e22; }\r\n        #comprehensive-calculator-app-v5 #cutting-list-card .card-header { color: #e67e22; }\r\n        #comprehensive-calculator-app-v5 .cutting-table { width: 100%; border-collapse: collapse; margin-top: 15px; }\r\n        #comprehensive-calculator-app-v5 .cutting-table th, #comprehensive-calculator-app-v5 .cutting-table td { border: 1px solid #ddd; padding: 10px; text-align: center; }\r\n        #comprehensive-calculator-app-v5 .cutting-table th { background-color: #f2f2f2; font-weight: 700; }\r\n    <\/style>\r\n\r\n    <!-- 2. HTML: \u0647\u064a\u0643\u0644 \u0627\u0644\u062d\u0627\u0633\u0628\u0629 (\u0644\u0627 \u062a\u063a\u064a\u064a\u0631\u0627\u062a) -->\r\n    <div class=\"main-header\">\r\n        <h1>\u0627\u0644\u062d\u0627\u0633\u0628\u0629 \u0627\u0644\u0625\u0646\u0634\u0627\u0626\u064a\u0629 \u0627\u0644\u0634\u0627\u0645\u0644\u0629<\/h1>\r\n        <p>\u0644\u062d\u0635\u0631 \u0643\u0645\u064a\u0627\u062a \u0627\u0644\u062e\u0631\u0633\u0627\u0646\u0629 \u0648\u0627\u0644\u062d\u062f\u064a\u062f \u0644\u0644\u0642\u0648\u0627\u0639\u062f \u0648\u0627\u0644\u0645\u064a\u062f\u0627\u062a \u0648\u0631\u0642\u0627\u0628 \u0627\u0644\u0623\u0639\u0645\u062f\u0629<\/p>\r\n    <\/div>\r\n    <div class=\"module-container\">\r\n        <h2 class=\"module-header\">1. \u0627\u0644\u0642\u0648\u0627\u0639\u062f (Foundations)<\/h2>\r\n        <div id=\"foundations-container\" class=\"card-container\"><\/div>\r\n        <button data-action=\"add-foundation\" class=\"btn btn-primary\">+ \u0625\u0636\u0627\u0641\u0629 \u0646\u0645\u0648\u0630\u062c \u0642\u0627\u0639\u062f\u0629<\/button>\r\n    <\/div>\r\n    <div class=\"module-container\">\r\n        <h2 class=\"module-header\">2. \u0627\u0644\u0645\u064a\u062f\u0627\u062a (Tie Beams)<\/h2>\r\n        <div id=\"beams-container\" class=\"card-container\"><\/div>\r\n        <button data-action=\"add-beam\" class=\"btn btn-primary\">+ \u0625\u0636\u0627\u0641\u0629 \u0646\u0645\u0648\u0630\u062c \u0645\u064a\u062f\u0629<\/button>\r\n    <\/div>\r\n    <div class=\"module-container\">\r\n        <h2 class=\"module-header\">3. \u0631\u0642\u0627\u0628 \u0627\u0644\u0623\u0639\u0645\u062f\u0629 (Column Necks)<\/h2>\r\n        <div id=\"necks-container\" class=\"card-container\"><\/div>\r\n        <button data-action=\"add-neck\" class=\"btn btn-primary\">+ \u0625\u0636\u0627\u0641\u0629 \u0646\u0645\u0648\u0630\u062c \u0631\u0642\u0628\u0629 \u0639\u0645\u0648\u062f<\/button>\r\n    <\/div>\r\n    <button id=\"calculate-btn\" class=\"btn btn-calculate\">\u0627\u062d\u0633\u0628 \u0627\u0644\u0622\u0646<\/button>\r\n    <div id=\"results-area\">\r\n        <!-- Results content remains the same -->\r\n        <div id=\"summary-card\" class=\"card\">\r\n            <div class=\"card-header\">\u0627\u0644\u0645\u0644\u062e\u0635 \u0627\u0644\u0625\u062c\u0645\u0627\u0644\u064a \u0644\u0644\u0645\u0634\u0631\u0648\u0639<\/div>\r\n            <div id=\"total-results\">\r\n                <div class=\"result-item\"><span>\u0625\u062c\u0645\u0627\u0644\u064a \u062e\u0631\u0633\u0627\u0646\u0629 \u0627\u0644\u0642\u0648\u0627\u0639\u062f (\u0645\u00b3)<\/span><span id=\"total-q-concrete\">0.00<\/span><\/div>\r\n                <div class=\"result-item\"><span>\u0625\u062c\u0645\u0627\u0644\u064a \u062e\u0631\u0633\u0627\u0646\u0629 \u0627\u0644\u0645\u064a\u062f\u0627\u062a (\u0645\u00b3)<\/span><span id=\"total-m-concrete\">0.00<\/span><\/div>\r\n                <div class=\"result-item\"><span>\u0625\u062c\u0645\u0627\u0644\u064a \u062e\u0631\u0633\u0627\u0646\u0629 \u0627\u0644\u0631\u0642\u0627\u0628 (\u0645\u00b3)<\/span><span id=\"total-n-concrete\">0.00<\/span><\/div>\r\n                <div class=\"result-item total-highlight\" style=\"font-size: 1.2em;\"><span>\u0625\u062c\u0645\u0627\u0644\u064a \u062d\u062c\u0645 \u0627\u0644\u062e\u0631\u0633\u0627\u0646\u0629 (\u0645\u00b3)<\/span><span id=\"total-concrete\">0.00<\/span><\/div>\r\n                <div id=\"steel-summary\" style=\"margin-top: 20px;\"><\/div>\r\n                <div class=\"result-item total-highlight\"><span>\u0627\u0644\u0648\u0632\u0646 \u0627\u0644\u0625\u062c\u0645\u0627\u0644\u064a \u0644\u0644\u062d\u062f\u064a\u062f (\u0637\u0646)<\/span><span id=\"total-steel-weight\">0.00<\/span><\/div>\r\n            <\/div>\r\n        <\/div>\r\n        <div id=\"cutting-list-card\" class=\"card\">\r\n            <div class=\"card-header\">\u062c\u062f\u0648\u0644 \u062a\u0641\u0631\u064a\u062f \u0648\u062a\u0642\u0637\u064a\u0639 \u0627\u0644\u062d\u062f\u064a\u062f (Cutting List)<\/div>\r\n            <table class=\"cutting-table\">\r\n                <thead>\r\n                    <tr><th>\u0627\u0644\u0639\u0646\u0635\u0631<\/th><th>\u0627\u0644\u0642\u0637\u0631 (\u0645\u0645)<\/th><th>\u0637\u0648\u0644 \u0627\u0644\u0633\u064a\u062e (\u0645)<\/th><th>\u0627\u0644\u0639\u062f\u062f<\/th><th>\u0625\u062c\u0645\u0627\u0644\u064a \u0627\u0644\u0637\u0648\u0644 (\u0645)<\/th><\/tr>\r\n                <\/thead>\r\n                <tbody id=\"cutting-list-body\"><\/tbody>\r\n            <\/table>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- 3. JavaScript: \u0627\u0644\u0639\u0642\u0644 \u0627\u0644\u0645\u062f\u0628\u0631 \u0644\u0644\u062d\u0627\u0633\u0628\u0629 (\u0628\u0646\u0627\u0621 \u062c\u062f\u064a\u062f \u0648\u0645\u062e\u062a\u0644\u0641) -->\r\n    <script>\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n        const app = document.getElementById('comprehensive-calculator-app-v5');\r\n        if (!app) return;\r\n\r\n        let counters = { foundation: 0, beam: 0, neck: 0 };\r\n\r\n        const foundationTpl = (id) => `<div class=\"form-grid\"><div class=\"form-group\"><label for=\"q-count-${id}\">\u0627\u0644\u0639\u062f\u062f<\/label><input type=\"number\" id=\"q-count-${id}\" value=\"1\"><\/div><div class=\"form-group\"><label for=\"q-l-${id}\">\u0627\u0644\u0637\u0648\u0644 (\u0645)<\/label><input type=\"number\" id=\"q-l-${id}\" step=\"0.01\"><\/div><div class=\"form-group\"><label for=\"q-w-${id}\">\u0627\u0644\u0639\u0631\u0636 (\u0645)<\/label><input type=\"number\" id=\"q-w-${id}\" step=\"0.01\"><\/div><div class=\"form-group\"><label for=\"q-t-${id}\">\u0627\u0644\u0633\u0645\u0643 (\u0645)<\/label><input type=\"number\" id=\"q-t-${id}\" step=\"0.01\"><\/div><div class=\"form-group\"><label for=\"q-cover-${id}\">\u0627\u0644\u063a\u0637\u0627\u0621 (\u0633\u0645)<\/label><input type=\"number\" id=\"q-cover-${id}\" value=\"5\"><\/div><\/div><div class=\"section-title\">\u062a\u0633\u0644\u064a\u062d \u0633\u0641\u0644\u064a<\/div><div class=\"form-grid\"><div class=\"form-group\"><label>\u0642\u0635\u064a\u0631: \u0639\u062f\u062f\/\u0645<\/label><input type=\"number\" id=\"q-bot-short-num-${id}\"><\/div><div class=\"form-group\"><label>\u0642\u0635\u064a\u0631: \u0642\u0637\u0631 (\u0645\u0645)<\/label><input type=\"number\" id=\"q-bot-short-dia-${id}\"><\/div><div class=\"form-group\"><label>\u0637\u0648\u064a\u0644: \u0639\u062f\u062f\/\u0645<\/label><input type=\"number\" id=\"q-bot-long-num-${id}\"><\/div><div class=\"form-group\"><label>\u0637\u0648\u064a\u0644: \u0642\u0637\u0631 (\u0645\u0645)<\/label><input type=\"number\" id=\"q-bot-long-dia-${id}\"><\/div><\/div><div class=\"section-title\">\u062a\u0633\u0644\u064a\u062d \u0639\u0644\u0648\u064a (\u0625\u0646 \u0648\u062c\u062f)<\/div><div class=\"form-grid\"><div class=\"form-group\"><label>\u0642\u0635\u064a\u0631: \u0639\u062f\u062f\/\u0645<\/label><input type=\"number\" id=\"q-top-short-num-${id}\"><\/div><div class=\"form-group\"><label>\u0642\u0635\u064a\u0631: \u0642\u0637\u0631 (\u0645\u0645)<\/label><input type=\"number\" id=\"q-top-short-dia-${id}\"><\/div><div class=\"form-group\"><label>\u0637\u0648\u064a\u0644: \u0639\u062f\u062f\/\u0645<\/label><input type=\"number\" id=\"q-top-long-num-${id}\"><\/div><div class=\"form-group\"><label>\u0637\u0648\u064a\u0644: \u0642\u0637\u0631 (\u0645\u0645)<\/label><input type=\"number\" id=\"q-top-long-dia-${id}\"><\/div><\/div>`;\r\n        const beamTpl = (id) => `<div class=\"form-grid\"><div class=\"form-group\"><label for=\"m-total-l-${id}\">\u0625\u062c\u0645\u0627\u0644\u064a \u0627\u0644\u0637\u0648\u0644 (\u0645)<\/label><input type=\"number\" id=\"m-total-l-${id}\" step=\"0.01\"><\/div><div class=\"form-group\"><label for=\"m-w-${id}\">\u0627\u0644\u0639\u0631\u0636 (\u0645)<\/label><input type=\"number\" id=\"m-w-${id}\" step=\"0.01\"><\/div><div class=\"form-group\"><label for=\"m-d-${id}\">\u0627\u0644\u0639\u0645\u0642 (\u0645)<\/label><input type=\"number\" id=\"m-d-${id}\" step=\"0.01\"><\/div><div class=\"form-group\"><label for=\"m-cover-${id}\">\u0627\u0644\u063a\u0637\u0627\u0621 (\u0633\u0645)<\/label><input type=\"number\" id=\"m-cover-${id}\" value=\"2.5\"><\/div><\/div><div class=\"section-title\">\u0627\u0644\u062a\u0633\u0644\u064a\u062d \u0627\u0644\u0637\u0648\u0644\u064a<\/div><div class=\"form-grid\"><div class=\"form-group\"><label>\u0633\u0641\u0644\u064a: \u0639\u062f\u062f<\/label><input type=\"number\" id=\"m-bot-num-${id}\"><\/div><div class=\"form-group\"><label>\u0633\u0641\u0644\u064a: \u0642\u0637\u0631 (\u0645\u0645)<\/label><input type=\"number\" id=\"m-bot-dia-${id}\"><\/div><div class=\"form-group\"><label>\u0639\u0644\u0648\u064a: \u0639\u062f\u062f<\/label><input type=\"number\" id=\"m-top-num-${id}\"><\/div><div class=\"form-group\"><label>\u0639\u0644\u0648\u064a: \u0642\u0637\u0631 (\u0645\u0645)<\/label><input type=\"number\" id=\"m-top-dia-${id}\"><\/div><\/div><div class=\"section-title\">\u0627\u0644\u0643\u0627\u0646\u0627\u062a<\/div><div class=\"form-grid\"><div class=\"form-group\"><label>\u0639\u062f\u062f\/\u0645<\/label><input type=\"number\" id=\"m-kanat-num-${id}\"><\/div><div class=\"form-group\"><label>\u0642\u0637\u0631 (\u0645\u0645)<\/label><input type=\"number\" id=\"m-kanat-dia-${id}\"><\/div><\/div>`;\r\n        const neckTpl = (id) => `<div class=\"form-grid\"><div class=\"form-group\"><label for=\"n-count-${id}\">\u0627\u0644\u0639\u062f\u062f<\/label><input type=\"number\" id=\"n-count-${id}\" value=\"1\"><\/div><div class=\"form-group\"><label for=\"n-l-${id}\">\u0627\u0644\u0637\u0648\u0644 (\u0645)<\/label><input type=\"number\" id=\"n-l-${id}\" step=\"0.01\"><\/div><div class=\"form-group\"><label for=\"n-w-${id}\">\u0627\u0644\u0639\u0631\u0636 (\u0645)<\/label><input type=\"number\" id=\"n-w-${id}\" step=\"0.01\"><\/div><div class=\"form-group\"><label for=\"n-h-${id}\">\u0627\u0644\u0627\u0631\u062a\u0641\u0627\u0639 (\u0645)<\/label><input type=\"number\" id=\"n-h-${id}\" step=\"0.01\"><\/div><div class=\"form-group\"><label for=\"n-cover-${id}\">\u0627\u0644\u063a\u0637\u0627\u0621 (\u0633\u0645)<\/label><input type=\"number\" id=\"n-cover-${id}\" value=\"2.5\"><\/div><\/div><div class=\"section-title\">\u0627\u0644\u062a\u0633\u0644\u064a\u062d \u0627\u0644\u0631\u0623\u0633\u064a (\u0627\u0644\u0623\u0634\u0627\u064a\u0631)<\/div><div class=\"form-grid\"><div class=\"form-group\"><label>\u0625\u062c\u0645\u0627\u0644\u064a \u0627\u0644\u0639\u062f\u062f<\/label><input type=\"number\" id=\"n-asyakh-num-${id}\"><\/div><div class=\"form-group\"><label>\u0642\u0637\u0631 (\u0645\u0645)<\/label><input type=\"number\" id=\"n-asyakh-dia-${id}\"><\/div><\/div><div class=\"section-title\">\u0627\u0644\u0643\u0627\u0646\u0627\u062a<\/div><div class=\"form-grid\"><div class=\"form-group\"><label>\u0639\u062f\u062f\/\u0645<\/label><input type=\"number\" id=\"n-kanat-num-${id}\"><\/div><div class=\"form-group\"><label>\u0642\u0637\u0631 (\u0645\u0645)<\/label><input type=\"number\" id=\"n-kanat-dia-${id}\"><\/div><\/div>`;\r\n\r\n        const templates = { foundation: foundationTpl, beam: beamTpl, neck: neckTpl };\r\n        const prefixes = { foundation: '\u0642', beam: '\u0645', neck: '\u0639' };\r\n        const containers = { foundation: '#foundations-container', beam: '#beams-container', neck: '#necks-container' };\r\n\r\n        function addNewCard(type) {\r\n            counters[type]++;\r\n            const id = counters[type];\r\n            const container = app.querySelector(containers[type]);\r\n            \r\n            const card = document.createElement('div');\r\n            card.className = `card ${type}-card`;\r\n            card.dataset.id = id;\r\n            card.innerHTML = `\r\n                <div class=\"card-header\">\r\n                    \u0646\u0645\u0648\u0630\u062c (${prefixes[type]}${id})\r\n                    <button class=\"remove-btn\" data-action=\"remove\">&times;<\/button>\r\n                <\/div>\r\n                ${templates[type](id)}\r\n            `;\r\n            container.appendChild(card);\r\n        }\r\n\r\n        \/\/ Event Delegation: A single event listener on the main container\r\n        app.addEventListener('click', function(e) {\r\n            const action = e.target.dataset.action;\r\n            if (action === 'add-foundation') addNewCard('foundation');\r\n            if (action === 'add-beam') addNewCard('beam');\r\n            if (action === 'add-neck') addNewCard('neck');\r\n            if (action === 'remove') e.target.closest('.card').remove();\r\n        });\r\n\r\n        \/\/ Add initial cards\r\n        addNewCard('foundation');\r\n        addNewCard('beam');\r\n        addNewCard('neck');\r\n        \r\n        \/\/ Calculation logic (no changes needed here)\r\n        app.querySelector('#calculate-btn').addEventListener('click', function() {\r\n            \/\/ The calculation logic is complex and correct, so it's omitted here for brevity\r\n            \/\/ but it is the same as the previous version. It will be included in the final paste.\r\n            \/\/ --- Start of Calculation Logic ---\r\n            let total_q_concrete = 0, total_m_concrete = 0, total_n_concrete = 0;\r\n            const steelByDia = {};\r\n            const cuttingList = [];\r\n            const getValue = (selector, context) => parseFloat(context.querySelector(selector)?.value) || 0;\r\n            const steelWeightPerMeter = (dia) => (dia * dia) \/ 162;\r\n            const addToSteelSummary = (dia, weight) => { if (dia > 0 && weight > 0) steelByDia[dia] = (steelByDia[dia] || 0) + weight; };\r\n            const addToCuttingList = (item, dia, length, count) => { if (dia > 0 && length > 0 && count > 0) cuttingList.push({ item, dia, length, count }); };\r\n\r\n            app.querySelectorAll('.foundation-card').forEach(card => {\r\n                const id = card.dataset.id; const modelName = `\u0642${id}`; const count = getValue(`#q-count-${id}`, card);\r\n                const l = getValue(`#q-l-${id}`, card), w = getValue(`#q-w-${id}`, card), t = getValue(`#q-t-${id}`, card);\r\n                const cover = getValue(`#q-cover-${id}`, card) \/ 100; total_q_concrete += l * w * t * count;\r\n                const bot_short_num = getValue(`#q-bot-short-num-${id}`, card), bot_short_dia = getValue(`#q-bot-short-dia-${id}`, card);\r\n                const bot_long_num = getValue(`#q-bot-long-num-${id}`, card), bot_long_dia = getValue(`#q-bot-long-dia-${id}`, card);\r\n                const top_short_num = getValue(`#q-top-short-num-${id}`, card), top_short_dia = getValue(`#q-top-short-dia-${id}`, card);\r\n                const top_long_num = getValue(`#q-top-long-num-${id}`, card), top_long_dia = getValue(`#q-top-long-dia-${id}`, card);\r\n                const bot_short_len = w - (2 * cover), bot_short_count = Math.ceil(l * bot_short_num);\r\n                addToSteelSummary(bot_short_dia, bot_short_len * bot_short_count * steelWeightPerMeter(bot_short_dia) * count);\r\n                addToCuttingList(`${modelName} \u0641\u0631\u0634 \u0633\u0641\u0644\u064a`, bot_short_dia, bot_short_len, bot_short_count * count);\r\n                const bot_long_len = l - (2 * cover), bot_long_count = Math.ceil(w * bot_long_num);\r\n                addToSteelSummary(bot_long_dia, bot_long_len * bot_long_count * steelWeightPerMeter(bot_long_dia) * count);\r\n                addToCuttingList(`${modelName} \u063a\u0637\u0627\u0621 \u0633\u0641\u0644\u064a`, bot_long_dia, bot_long_len, bot_long_count * count);\r\n                const top_short_len = w - (2 * cover), top_short_count = Math.ceil(l * top_short_num);\r\n                addToSteelSummary(top_short_dia, top_short_len * top_short_count * steelWeightPerMeter(top_short_dia) * count);\r\n                addToCuttingList(`${modelName} \u0641\u0631\u0634 \u0639\u0644\u0648\u064a`, top_short_dia, top_short_len, top_short_count * count);\r\n                const top_long_len = l - (2 * cover), top_long_count = Math.ceil(w * top_long_num);\r\n                addToSteelSummary(top_long_dia, top_long_len * top_long_count * steelWeightPerMeter(top_long_dia) * count);\r\n                addToCuttingList(`${modelName} \u063a\u0637\u0627\u0621 \u0639\u0644\u0648\u064a`, top_long_dia, top_long_len, top_long_count * count);\r\n            });\r\n            app.querySelectorAll('.beam-card').forEach(card => {\r\n                const id = card.dataset.id; const modelName = `\u0645${id}`; const total_l = getValue(`#m-total-l-${id}`, card);\r\n                const w = getValue(`#m-w-${id}`, card), d = getValue(`#m-d-${id}`, card); const cover = getValue(`#m-cover-${id}`, card) \/ 100;\r\n                total_m_concrete += total_l * w * d;\r\n                const bot_num = getValue(`#m-bot-num-${id}`, card), bot_dia = getValue(`#m-bot-dia-${id}`, card);\r\n                const top_num = getValue(`#m-top-num-${id}`, card), top_dia = getValue(`#m-top-dia-${id}`, card);\r\n                const kanat_num_m = getValue(`#m-kanat-num-${id}`, card), kanat_dia = getValue(`#m-kanat-dia-${id}`, card);\r\n                addToSteelSummary(bot_dia, total_l * bot_num * steelWeightPerMeter(bot_dia));\r\n                addToCuttingList(`${modelName} \u062a\u0633\u0644\u064a\u062d \u0633\u0641\u0644\u064a`, bot_dia, 12, Math.ceil(total_l * bot_num \/ 12));\r\n                addToSteelSummary(top_dia, total_l * top_num * steelWeightPerMeter(top_dia));\r\n                addToCuttingList(`${modelName} \u062a\u0633\u0644\u064a\u062d \u0639\u0644\u0648\u064a`, top_dia, 12, Math.ceil(total_l * top_num \/ 12));\r\n                const kanah_l = (w - 2 * cover) * 2 + (d - 2 * cover) * 2 + 0.1;\r\n                const total_kanat_count = Math.ceil(total_l * kanat_num_m);\r\n                addToSteelSummary(kanat_dia, kanah_l * total_kanat_count * steelWeightPerMeter(kanat_dia));\r\n                addToCuttingList(`${modelName} \u0643\u0627\u0646\u0627\u062a`, kanat_dia, kanah_l, total_kanat_count);\r\n            });\r\n            app.querySelectorAll('.neck-card').forEach(card => {\r\n                const id = card.dataset.id; const modelName = `\u0639${id}`; const count = getValue(`#n-count-${id}`, card);\r\n                const l = getValue(`#n-l-${id}`, card), w = getValue(`#n-w-${id}`, card), h = getValue(`#n-h-${id}`, card);\r\n                const cover = getValue(`#n-cover-${id}`, card) \/ 100; total_n_concrete += l * w * h * count;\r\n                const asyakh_num = getValue(`#n-asyakh-num-${id}`, card), asyakh_dia = getValue(`#n-asyakh-dia-${id}`, card);\r\n                const kanat_num_m = getValue(`#n-kanat-num-${id}`, card), kanat_dia = getValue(`#n-kanat-dia-${id}`, card);\r\n                const eshara_len = 1.0; const bar_len = h + eshara_len;\r\n                addToSteelSummary(asyakh_dia, bar_len * asyakh_num * steelWeightPerMeter(asyakh_dia) * count);\r\n                addToCuttingList(`${modelName} \u0623\u0634\u0627\u064a\u0631 \u0631\u0623\u0633\u064a\u0629`, asyakh_dia, bar_len, asyakh_num * count);\r\n                const kanah_l = (l - 2 * cover) * 2 + (w - 2 * cover) * 2 + 0.1;\r\n                const total_kanat_count = Math.ceil(h * kanat_num_m);\r\n                addToSteelSummary(kanat_dia, kanah_l * total_kanat_count * steelWeightPerMeter(kanat_dia) * count);\r\n                addToCuttingList(`${modelName} \u0643\u0627\u0646\u0627\u062a`, kanat_dia, kanah_l, total_kanat_count * count);\r\n            });\r\n            \/\/ --- End of Calculation Logic ---\r\n\r\n            \/\/ --- Start of UI Update Logic ---\r\n            app.querySelector('#results-area').style.display = 'block';\r\n            const setHtml = (selector, value) => { app.querySelector(selector).innerHTML = value; };\r\n            setHtml('#total-q-concrete', total_q_concrete.toFixed(2));\r\n            setHtml('#total-m-concrete', total_m_concrete.toFixed(2));\r\n            setHtml('#total-n-concrete', total_n_concrete.toFixed(2));\r\n            setHtml('#total-concrete', (total_q_concrete + total_m_concrete + total_n_concrete).toFixed(2));\r\n            const steelContainer = app.querySelector('#steel-summary');\r\n            steelContainer.innerHTML = '';\r\n            let totalSteelWeight = 0;\r\n            const sortedDias = Object.keys(steelByDia).sort((a, b) => a - b);\r\n            for (const dia of sortedDias) {\r\n                const weight = steelByDia[dia];\r\n                totalSteelWeight += weight;\r\n                const item = document.createElement('div');\r\n                item.className = 'result-item';\r\n                item.innerHTML = `<span>\u0648\u0632\u0646 \u062d\u062f\u064a\u062f \u0642\u0637\u0631 ${dia} \u0645\u0645 (\u0643\u062c\u0645)<\/span><span>${weight.toFixed(2)}<\/span>`;\r\n                steelContainer.appendChild(item);\r\n            }\r\n            setHtml('#total-steel-weight', (totalSteelWeight \/ 1000).toFixed(3));\r\n            const cuttingListBody = app.querySelector('#cutting-list-body');\r\n            cuttingListBody.innerHTML = '';\r\n            cuttingList.forEach(item => {\r\n                const row = document.createElement('tr');\r\n                row.innerHTML = `<td>${item.item}<\/td><td>&Oslash;${item.dia}<\/td><td>${item.length.toFixed(2)}<\/td><td>${item.count}<\/td><td>${(item.length * item.count).toFixed(2)}<\/td>`;\r\n                cuttingListBody.appendChild(row);\r\n            });\r\n            \/\/ --- End of UI Update Logic ---\r\n        });\r\n    });\r\n    <\/script>\r\n<\/div>\r\n<!-- \u0646\u0647\u0627\u064a\u0629 \u0643\u0648\u062f \u062d\u0627\u0633\u0628\u0629 \u0627\u0644\u0625\u0646\u0634\u0627\u0621\u0627\u062a \u0627\u0644\u0634\u0627\u0645\u0644\u0629 -->\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[24128],"tags":[],"class_list":["post-52637","post","type-post","status-publish","format-standard","hentry","category-24128"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":52693,"url":"https:\/\/engeg.com\/b\/2025\/08\/30\/%d8%ad%d8%a7%d8%b3%d8%a8%d9%87-%d8%ad%d8%af%d9%8a%d8%af-%d8%a7%d9%84%d9%82%d9%88%d8%a7%d8%b9%d8%af\/","url_meta":{"origin":52637,"position":0},"title":"\u062d\u0627\u0633\u0628\u0647 \u062d\u062f\u064a\u062f \u0627\u0644\u0642\u0648\u0627\u0639\u062f","author":"interior","date":"\u0623\u063a\u0633\u0637\u0633 30, 2025","format":false,"excerpt":"","rel":"","context":"\u0641\u064a &quot;\u062d\u0633\u0627\u0628\u0627\u062a \u062a\u0647\u0645\u0643 \u0641\u064a \u0628\u064a\u062a \u0627\u0644\u0648\u0637\u0646&quot;","block_context":{"text":"\u062d\u0633\u0627\u0628\u0627\u062a \u062a\u0647\u0645\u0643 \u0641\u064a \u0628\u064a\u062a \u0627\u0644\u0648\u0637\u0646","link":"https:\/\/engeg.com\/b\/category\/%d8%ad%d8%b3%d8%a7%d8%a8%d8%a7%d8%aa-%d8%aa%d9%87%d9%85%d9%83-%d9%81%d9%8a-%d8%a8%d9%8a%d8%aa-%d8%a7%d9%84%d9%88%d8%b7%d9%86\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":52724,"url":"https:\/\/engeg.com\/b\/2025\/08\/31\/%d8%b5%d8%a8-%d9%a3\/","url_meta":{"origin":52637,"position":1},"title":"\u0635\u0628 \u0663","author":"interior","date":"\u0623\u063a\u0633\u0637\u0633 31, 2025","format":false,"excerpt":"","rel":"","context":"\u0641\u064a &quot;\u062d\u0633\u0627\u0628\u0627\u062a \u062a\u0647\u0645\u0643 \u0641\u064a \u0628\u064a\u062a \u0627\u0644\u0648\u0637\u0646&quot;","block_context":{"text":"\u062d\u0633\u0627\u0628\u0627\u062a \u062a\u0647\u0645\u0643 \u0641\u064a \u0628\u064a\u062a \u0627\u0644\u0648\u0637\u0646","link":"https:\/\/engeg.com\/b\/category\/%d8%ad%d8%b3%d8%a7%d8%a8%d8%a7%d8%aa-%d8%aa%d9%87%d9%85%d9%83-%d9%81%d9%8a-%d8%a8%d9%8a%d8%aa-%d8%a7%d9%84%d9%88%d8%b7%d9%86\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":52740,"url":"https:\/\/engeg.com\/b\/2025\/08\/31\/%d9%83%d9%85%d9%8a%d8%a7%d8%aa-%d8%b5%d8%a8-%d9%a4\/","url_meta":{"origin":52637,"position":2},"title":"\u0643\u0645\u064a\u0627\u062a \u0635\u0628 \u0664","author":"interior","date":"\u0623\u063a\u0633\u0637\u0633 31, 2025","format":false,"excerpt":"","rel":"","context":"\u0641\u064a &quot;\u062d\u0633\u0627\u0628\u0627\u062a \u062a\u0647\u0645\u0643 \u0641\u064a \u0628\u064a\u062a \u0627\u0644\u0648\u0637\u0646&quot;","block_context":{"text":"\u062d\u0633\u0627\u0628\u0627\u062a \u062a\u0647\u0645\u0643 \u0641\u064a \u0628\u064a\u062a \u0627\u0644\u0648\u0637\u0646","link":"https:\/\/engeg.com\/b\/category\/%d8%ad%d8%b3%d8%a7%d8%a8%d8%a7%d8%aa-%d8%aa%d9%87%d9%85%d9%83-%d9%81%d9%8a-%d8%a8%d9%8a%d8%aa-%d8%a7%d9%84%d9%88%d8%b7%d9%86\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":55756,"url":"https:\/\/engeg.com\/b\/2026\/01\/19\/seramek\/","url_meta":{"origin":52637,"position":3},"title":"\u062d\u0627\u0633\u0628\u0629 \u0627\u0644\u0633\u064a\u0631\u0627\u0645\u064a\u0643","author":"interior","date":"\u064a\u0646\u0627\u064a\u0631 19, 2026","format":false,"excerpt":"","rel":"","context":"\u0641\u064a &quot;\u062d\u0633\u0627\u0628\u0627\u062a \u062a\u0647\u0645\u0643 \u0641\u064a \u0628\u064a\u062a \u0627\u0644\u0648\u0637\u0646&quot;","block_context":{"text":"\u062d\u0633\u0627\u0628\u0627\u062a \u062a\u0647\u0645\u0643 \u0641\u064a \u0628\u064a\u062a \u0627\u0644\u0648\u0637\u0646","link":"https:\/\/engeg.com\/b\/category\/%d8%ad%d8%b3%d8%a7%d8%a8%d8%a7%d8%aa-%d8%aa%d9%87%d9%85%d9%83-%d9%81%d9%8a-%d8%a8%d9%8a%d8%aa-%d8%a7%d9%84%d9%88%d8%b7%d9%86\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":54236,"url":"https:\/\/engeg.com\/b\/2025\/09\/14\/%d8%ad%d8%a7%d8%b3%d8%a8%d8%a9-%d8%a7%d9%84%d8%ad%d8%af%d9%8a%d8%af-%d8%a8%d8%a7%d9%84%d9%85%d9%88%d9%82%d8%b9\/","url_meta":{"origin":52637,"position":4},"title":"\u062d\u0627\u0633\u0628\u0629 \u0627\u0644\u062d\u062f\u064a\u062f \u0628\u0627\u0644\u0645\u0648\u0642\u0639","author":"interior","date":"\u0633\u0628\u062a\u0645\u0628\u0631 14, 2025","format":false,"excerpt":"","rel":"","context":"\u0641\u064a &quot;\u062d\u0633\u0627\u0628\u0627\u062a \u062a\u0647\u0645\u0643 \u0641\u064a \u0628\u064a\u062a \u0627\u0644\u0648\u0637\u0646&quot;","block_context":{"text":"\u062d\u0633\u0627\u0628\u0627\u062a \u062a\u0647\u0645\u0643 \u0641\u064a \u0628\u064a\u062a \u0627\u0644\u0648\u0637\u0646","link":"https:\/\/engeg.com\/b\/category\/%d8%ad%d8%b3%d8%a7%d8%a8%d8%a7%d8%aa-%d8%aa%d9%87%d9%85%d9%83-%d9%81%d9%8a-%d8%a8%d9%8a%d8%aa-%d8%a7%d9%84%d9%88%d8%b7%d9%86\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":52685,"url":"https:\/\/engeg.com\/b\/2025\/08\/30\/%d8%ae%d8%b1%d8%b3%d8%a7%d9%86%d9%87\/","url_meta":{"origin":52637,"position":5},"title":"\u062a\u0642\u0627\u0631\u064a\u0631 \u0648\u062d\u0633\u0627\u0628\u0627\u062a \u0635\u0628 \u0627\u0644\u062e\u0631\u0633\u0627\u0646\u0629 \u0628\u0627\u0644\u0645\u0648\u0642\u0639","author":"interior","date":"\u0623\u063a\u0633\u0637\u0633 30, 2025","format":false,"excerpt":"","rel":"","context":"\u0641\u064a &quot;\u062d\u0633\u0627\u0628\u0627\u062a \u062a\u0647\u0645\u0643 \u0641\u064a \u0628\u064a\u062a \u0627\u0644\u0648\u0637\u0646&quot;","block_context":{"text":"\u062d\u0633\u0627\u0628\u0627\u062a \u062a\u0647\u0645\u0643 \u0641\u064a \u0628\u064a\u062a \u0627\u0644\u0648\u0637\u0646","link":"https:\/\/engeg.com\/b\/category\/%d8%ad%d8%b3%d8%a7%d8%a8%d8%a7%d8%aa-%d8%aa%d9%87%d9%85%d9%83-%d9%81%d9%8a-%d8%a8%d9%8a%d8%aa-%d8%a7%d9%84%d9%88%d8%b7%d9%86\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/engeg.com\/b\/wp-json\/wp\/v2\/posts\/52637","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/engeg.com\/b\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/engeg.com\/b\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/engeg.com\/b\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/engeg.com\/b\/wp-json\/wp\/v2\/comments?post=52637"}],"version-history":[{"count":1,"href":"https:\/\/engeg.com\/b\/wp-json\/wp\/v2\/posts\/52637\/revisions"}],"predecessor-version":[{"id":52638,"href":"https:\/\/engeg.com\/b\/wp-json\/wp\/v2\/posts\/52637\/revisions\/52638"}],"wp:attachment":[{"href":"https:\/\/engeg.com\/b\/wp-json\/wp\/v2\/media?parent=52637"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/engeg.com\/b\/wp-json\/wp\/v2\/categories?post=52637"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/engeg.com\/b\/wp-json\/wp\/v2\/tags?post=52637"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}