{"id":52633,"date":"2025-08-29T16:43:53","date_gmt":"2025-08-29T13:43:53","guid":{"rendered":"https:\/\/engeg.com\/b\/?page_id=52633"},"modified":"2025-08-29T16:49:55","modified_gmt":"2025-08-29T13:49:55","slug":"%d8%aa%d8%ac%d8%b1%d8%a8%d9%87-%d8%ad%d8%b5%d8%b1-%d8%a7%d9%84%d9%82%d9%88%d8%a7%d8%b9%d8%af","status":"publish","type":"page","link":"https:\/\/engeg.com\/b\/%d8%aa%d8%ac%d8%b1%d8%a8%d9%87-%d8%ad%d8%b5%d8%b1-%d8%a7%d9%84%d9%82%d9%88%d8%a7%d8%b9%d8%af\/","title":{"rendered":"\u062a\u062c\u0631\u0628\u0647 \u062d\u0635\u0631 \u0627\u0644\u0642\u0648\u0627\u0639\u062f"},"content":{"rendered":"<p><!-- \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) --><\/p>\n<div id=\"comprehensive-calculator-app-v5\">\n<p>    <!-- 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) --><\/p>\n<style>\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Cairo:wght@400;600;700&display=swap');\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; }\n        #comprehensive-calculator-app-v5 .main-header { text-align: center; margin-bottom: 30px; }\n        #comprehensive-calculator-app-v5 .main-header h1 { color: #2c3e50; margin: 0 0 10px; }\n        #comprehensive-calculator-app-v5 .main-header p { font-size: 1.1em; color: #7f8c8d; }\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; }\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; }\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; }\n        #comprehensive-calculator-app-v5 .remove-btn:hover { background: #c0392b; transform: scale(1.1); }\n        #comprehensive-calculator-app-v5 .form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 20px; }\n        #comprehensive-calculator-app-v5 .form-group { display: flex; flex-direction: column; }\n        #comprehensive-calculator-app-v5 .form-group label { margin-bottom: 8px; font-weight: 600; font-size: 0.9em; }\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; }\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); }\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; }\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; }\n        #comprehensive-calculator-app-v5 .btn-primary { background-color: #3498db; color: white; }\n        #comprehensive-calculator-app-v5 .btn-primary:hover { background-color: #2980b9; transform: translateY(-2px); }\n        #comprehensive-calculator-app-v5 .btn-calculate { background-color: #27ae60; color: white; width: 100%; font-size: 1.5em; padding: 15px; margin: 20px 0; }\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); }\n        #comprehensive-calculator-app-v5 #results-area { display: none; }\n        #comprehensive-calculator-app-v5 #summary-card { border-left: 5px solid #27ae60; }\n        #comprehensive-calculator-app-v5 #summary-card .card-header { color: #27ae60; }\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; }\n        #comprehensive-calculator-app-v5 .result-item:last-child { border-bottom: none; }\n        #comprehensive-calculator-app-v5 .result-item span:first-child { font-weight: 600; }\n        #comprehensive-calculator-app-v5 .result-item span:last-child { font-weight: 700; color: #2c3e50; }\n        #comprehensive-calculator-app-v5 .total-highlight { background-color: #f8f9fa; border-top: 2px solid #27ae60; margin-top: 10px; padding-top: 10px; }\n        #comprehensive-calculator-app-v5 .total-highlight span:last-child { color: #27ae60; font-size: 1.25em; }\n        #comprehensive-calculator-app-v5 .module-container { margin-bottom: 30px; padding-bottom: 20px; border-bottom: 2px dashed #ccc; }\n        #comprehensive-calculator-app-v5 .module-container:last-child { border-bottom: none; }\n        #comprehensive-calculator-app-v5 .module-header { font-size: 2em; font-weight: 700; color: #2980b9; margin-bottom: 20px; }\n        #comprehensive-calculator-app-v5 #cutting-list-card { border-left-color: #e67e22; }\n        #comprehensive-calculator-app-v5 #cutting-list-card .card-header { color: #e67e22; }\n        #comprehensive-calculator-app-v5 .cutting-table { width: 100%; border-collapse: collapse; margin-top: 15px; }\n        #comprehensive-calculator-app-v5 .cutting-table th, #comprehensive-calculator-app-v5 .cutting-table td { border: 1px solid #ddd; padding: 10px; text-align: center; }\n        #comprehensive-calculator-app-v5 .cutting-table th { background-color: #f2f2f2; font-weight: 700; }\n    <\/style>\n<p>    <!-- 2. HTML: \u0647\u064a\u0643\u0644 \u0627\u0644\u062d\u0627\u0633\u0628\u0629 (\u0644\u0627 \u062a\u063a\u064a\u064a\u0631\u0627\u062a) --><\/p>\n<div class=\"main-header\">\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>\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>\n<\/p><\/div>\n<div class=\"module-container\">\n<h2 class=\"module-header\">1. \u0627\u0644\u0642\u0648\u0627\u0639\u062f (Foundations)<\/h2>\n<div id=\"foundations-container\" class=\"card-container\"><\/div>\n<p>        <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>\n    <\/div>\n<div class=\"module-container\">\n<h2 class=\"module-header\">2. \u0627\u0644\u0645\u064a\u062f\u0627\u062a (Tie Beams)<\/h2>\n<div id=\"beams-container\" class=\"card-container\"><\/div>\n<p>        <button data-action=\"add-beam\" class=\"btn btn-primary\">+ \u0625\u0636\u0627\u0641\u0629 \u0646\u0645\u0648\u0630\u062c \u0645\u064a\u062f\u0629<\/button>\n    <\/div>\n<div class=\"module-container\">\n<h2 class=\"module-header\">3. \u0631\u0642\u0627\u0628 \u0627\u0644\u0623\u0639\u0645\u062f\u0629 (Column Necks)<\/h2>\n<div id=\"necks-container\" class=\"card-container\"><\/div>\n<p>        <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>\n    <\/div>\n<p>    <button id=\"calculate-btn\" class=\"btn btn-calculate\">\u0627\u062d\u0633\u0628 \u0627\u0644\u0622\u0646<\/button><\/p>\n<div id=\"results-area\">\n        <!-- Results content remains the same --><\/p>\n<div id=\"summary-card\" class=\"card\">\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>\n<div id=\"total-results\">\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>\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>\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>\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>\n<div id=\"steel-summary\" style=\"margin-top: 20px;\"><\/div>\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>\n<\/p><\/div>\n<\/p><\/div>\n<div id=\"cutting-list-card\" class=\"card\">\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>\n<table class=\"cutting-table\">\n<thead>\n<tr>\n<th>\u0627\u0644\u0639\u0646\u0635\u0631<\/th>\n<th>\u0627\u0644\u0642\u0637\u0631 (\u0645\u0645)<\/th>\n<th>\u0637\u0648\u0644 \u0627\u0644\u0633\u064a\u062e (\u0645)<\/th>\n<th>\u0627\u0644\u0639\u062f\u062f<\/th>\n<th>\u0625\u062c\u0645\u0627\u0644\u064a \u0627\u0644\u0637\u0648\u0644 (\u0645)<\/th>\n<\/tr>\n<\/thead>\n<tbody id=\"cutting-list-body\"><\/tbody>\n<\/table><\/div>\n<\/p><\/div>\n<p>    <!-- 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) --><br \/>\n    <script>\n    document.addEventListener('DOMContentLoaded', function() {\n        const app = document.getElementById('comprehensive-calculator-app-v5');\n        if (!app) return;<\/p>\n<p>        let counters = { foundation: 0, beam: 0, neck: 0 };<\/p>\n<p>        const foundationTpl = (id) => `<\/p>\n<div class=\"form-grid\">\n<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>\n<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>\n<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>\n<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>\n<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>\n<\/div>\n<div class=\"section-title\">\u062a\u0633\u0644\u064a\u062d \u0633\u0641\u0644\u064a<\/div>\n<div class=\"form-grid\">\n<div class=\"form-group\"><label>\u0642\u0635\u064a\u0631: \u0639\u062f\u062f\/\u0645<\/label><input type=\"number\" id=\"q-bot-short-num-${id}\"><\/div>\n<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>\n<div class=\"form-group\"><label>\u0637\u0648\u064a\u0644: \u0639\u062f\u062f\/\u0645<\/label><input type=\"number\" id=\"q-bot-long-num-${id}\"><\/div>\n<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>\n<\/div>\n<div class=\"section-title\">\u062a\u0633\u0644\u064a\u062d \u0639\u0644\u0648\u064a (\u0625\u0646 \u0648\u062c\u062f)<\/div>\n<div class=\"form-grid\">\n<div class=\"form-group\"><label>\u0642\u0635\u064a\u0631: \u0639\u062f\u062f\/\u0645<\/label><input type=\"number\" id=\"q-top-short-num-${id}\"><\/div>\n<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>\n<div class=\"form-group\"><label>\u0637\u0648\u064a\u0644: \u0639\u062f\u062f\/\u0645<\/label><input type=\"number\" id=\"q-top-long-num-${id}\"><\/div>\n<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>\n<\/div>\n<p>`;\n        const beamTpl = (id) => `<\/p>\n<div class=\"form-grid\">\n<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>\n<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>\n<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>\n<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>\n<\/div>\n<div class=\"section-title\">\u0627\u0644\u062a\u0633\u0644\u064a\u062d \u0627\u0644\u0637\u0648\u0644\u064a<\/div>\n<div class=\"form-grid\">\n<div class=\"form-group\"><label>\u0633\u0641\u0644\u064a: \u0639\u062f\u062f<\/label><input type=\"number\" id=\"m-bot-num-${id}\"><\/div>\n<div class=\"form-group\"><label>\u0633\u0641\u0644\u064a: \u0642\u0637\u0631 (\u0645\u0645)<\/label><input type=\"number\" id=\"m-bot-dia-${id}\"><\/div>\n<div class=\"form-group\"><label>\u0639\u0644\u0648\u064a: \u0639\u062f\u062f<\/label><input type=\"number\" id=\"m-top-num-${id}\"><\/div>\n<div class=\"form-group\"><label>\u0639\u0644\u0648\u064a: \u0642\u0637\u0631 (\u0645\u0645)<\/label><input type=\"number\" id=\"m-top-dia-${id}\"><\/div>\n<\/div>\n<div class=\"section-title\">\u0627\u0644\u0643\u0627\u0646\u0627\u062a<\/div>\n<div class=\"form-grid\">\n<div class=\"form-group\"><label>\u0639\u062f\u062f\/\u0645<\/label><input type=\"number\" id=\"m-kanat-num-${id}\"><\/div>\n<div class=\"form-group\"><label>\u0642\u0637\u0631 (\u0645\u0645)<\/label><input type=\"number\" id=\"m-kanat-dia-${id}\"><\/div>\n<\/div>\n<p>`;\n        const neckTpl = (id) => `<\/p>\n<div class=\"form-grid\">\n<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>\n<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>\n<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>\n<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>\n<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>\n<\/div>\n<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>\n<div class=\"form-grid\">\n<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>\n<div class=\"form-group\"><label>\u0642\u0637\u0631 (\u0645\u0645)<\/label><input type=\"number\" id=\"n-asyakh-dia-${id}\"><\/div>\n<\/div>\n<div class=\"section-title\">\u0627\u0644\u0643\u0627\u0646\u0627\u062a<\/div>\n<div class=\"form-grid\">\n<div class=\"form-group\"><label>\u0639\u062f\u062f\/\u0645<\/label><input type=\"number\" id=\"n-kanat-num-${id}\"><\/div>\n<div class=\"form-group\"><label>\u0642\u0637\u0631 (\u0645\u0645)<\/label><input type=\"number\" id=\"n-kanat-dia-${id}\"><\/div>\n<\/div>\n<p>`;<\/p>\n<p>        const templates = { foundation: foundationTpl, beam: beamTpl, neck: neckTpl };\n        const prefixes = { foundation: '\u0642', beam: '\u0645', neck: '\u0639' };\n        const containers = { foundation: '#foundations-container', beam: '#beams-container', neck: '#necks-container' };<\/p>\n<p>        function addNewCard(type) {\n            counters[type]++;\n            const id = counters[type];\n            const container = app.querySelector(containers[type]);<\/p>\n<p>            const card = document.createElement('div');\n            card.className = `card ${type}-card`;\n            card.dataset.id = id;\n            card.innerHTML = `<\/p>\n<div class=\"card-header\">\n                    \u0646\u0645\u0648\u0630\u062c (${prefixes[type]}${id})\n                    <button class=\"remove-btn\" data-action=\"remove\">&times;<\/button>\n                <\/div>\n<p>                ${templates[type](id)}\n            `;\n            container.appendChild(card);\n        }<\/p>\n<p>        \/\/ Event Delegation: A single event listener on the main container\n        app.addEventListener('click', function(e) {\n            const action = e.target.dataset.action;\n            if (action === 'add-foundation') addNewCard('foundation');\n            if (action === 'add-beam') addNewCard('beam');\n            if (action === 'add-neck') addNewCard('neck');\n            if (action === 'remove') e.target.closest('.card').remove();\n        });<\/p>\n<p>        \/\/ Add initial cards\n        addNewCard('foundation');\n        addNewCard('beam');\n        addNewCard('neck');<\/p>\n<p>        \/\/ Calculation logic (no changes needed here)\n        app.querySelector('#calculate-btn').addEventListener('click', function() {\n            \/\/ The calculation logic is complex and correct, so it's omitted here for brevity\n            \/\/ but it is the same as the previous version. It will be included in the final paste.\n            \/\/ --- Start of Calculation Logic ---\n            let total_q_concrete = 0, total_m_concrete = 0, total_n_concrete = 0;\n            const steelByDia = {};\n            const cuttingList = [];\n            const getValue = (selector, context) => parseFloat(context.querySelector(selector)?.value) || 0;\n            const steelWeightPerMeter = (dia) => (dia * dia) \/ 162;\n            const addToSteelSummary = (dia, weight) => { if (dia > 0 && weight > 0) steelByDia[dia] = (steelByDia[dia] || 0) + weight; };\n            const addToCuttingList = (item, dia, length, count) => { if (dia > 0 && length > 0 && count > 0) cuttingList.push({ item, dia, length, count }); };<\/p>\n<p>            app.querySelectorAll('.foundation-card').forEach(card => {\n                const id = card.dataset.id; const modelName = `\u0642${id}`; const count = getValue(`#q-count-${id}`, card);\n                const l = getValue(`#q-l-${id}`, card), w = getValue(`#q-w-${id}`, card), t = getValue(`#q-t-${id}`, card);\n                const cover = getValue(`#q-cover-${id}`, card) \/ 100; total_q_concrete += l * w * t * count;\n                const bot_short_num = getValue(`#q-bot-short-num-${id}`, card), bot_short_dia = getValue(`#q-bot-short-dia-${id}`, card);\n                const bot_long_num = getValue(`#q-bot-long-num-${id}`, card), bot_long_dia = getValue(`#q-bot-long-dia-${id}`, card);\n                const top_short_num = getValue(`#q-top-short-num-${id}`, card), top_short_dia = getValue(`#q-top-short-dia-${id}`, card);\n                const top_long_num = getValue(`#q-top-long-num-${id}`, card), top_long_dia = getValue(`#q-top-long-dia-${id}`, card);\n                const bot_short_len = w - (2 * cover), bot_short_count = Math.ceil(l * bot_short_num);\n                addToSteelSummary(bot_short_dia, bot_short_len * bot_short_count * steelWeightPerMeter(bot_short_dia) * count);\n                addToCuttingList(`${modelName} \u0641\u0631\u0634 \u0633\u0641\u0644\u064a`, bot_short_dia, bot_short_len, bot_short_count * count);\n                const bot_long_len = l - (2 * cover), bot_long_count = Math.ceil(w * bot_long_num);\n                addToSteelSummary(bot_long_dia, bot_long_len * bot_long_count * steelWeightPerMeter(bot_long_dia) * count);\n                addToCuttingList(`${modelName} \u063a\u0637\u0627\u0621 \u0633\u0641\u0644\u064a`, bot_long_dia, bot_long_len, bot_long_count * count);\n                const top_short_len = w - (2 * cover), top_short_count = Math.ceil(l * top_short_num);\n                addToSteelSummary(top_short_dia, top_short_len * top_short_count * steelWeightPerMeter(top_short_dia) * count);\n                addToCuttingList(`${modelName} \u0641\u0631\u0634 \u0639\u0644\u0648\u064a`, top_short_dia, top_short_len, top_short_count * count);\n                const top_long_len = l - (2 * cover), top_long_count = Math.ceil(w * top_long_num);\n                addToSteelSummary(top_long_dia, top_long_len * top_long_count * steelWeightPerMeter(top_long_dia) * count);\n                addToCuttingList(`${modelName} \u063a\u0637\u0627\u0621 \u0639\u0644\u0648\u064a`, top_long_dia, top_long_len, top_long_count * count);\n            });\n            app.querySelectorAll('.beam-card').forEach(card => {\n                const id = card.dataset.id; const modelName = `\u0645${id}`; const total_l = getValue(`#m-total-l-${id}`, card);\n                const w = getValue(`#m-w-${id}`, card), d = getValue(`#m-d-${id}`, card); const cover = getValue(`#m-cover-${id}`, card) \/ 100;\n                total_m_concrete += total_l * w * d;\n                const bot_num = getValue(`#m-bot-num-${id}`, card), bot_dia = getValue(`#m-bot-dia-${id}`, card);\n                const top_num = getValue(`#m-top-num-${id}`, card), top_dia = getValue(`#m-top-dia-${id}`, card);\n                const kanat_num_m = getValue(`#m-kanat-num-${id}`, card), kanat_dia = getValue(`#m-kanat-dia-${id}`, card);\n                addToSteelSummary(bot_dia, total_l * bot_num * steelWeightPerMeter(bot_dia));\n                addToCuttingList(`${modelName} \u062a\u0633\u0644\u064a\u062d \u0633\u0641\u0644\u064a`, bot_dia, 12, Math.ceil(total_l * bot_num \/ 12));\n                addToSteelSummary(top_dia, total_l * top_num * steelWeightPerMeter(top_dia));\n                addToCuttingList(`${modelName} \u062a\u0633\u0644\u064a\u062d \u0639\u0644\u0648\u064a`, top_dia, 12, Math.ceil(total_l * top_num \/ 12));\n                const kanah_l = (w - 2 * cover) * 2 + (d - 2 * cover) * 2 + 0.1;\n                const total_kanat_count = Math.ceil(total_l * kanat_num_m);\n                addToSteelSummary(kanat_dia, kanah_l * total_kanat_count * steelWeightPerMeter(kanat_dia));\n                addToCuttingList(`${modelName} \u0643\u0627\u0646\u0627\u062a`, kanat_dia, kanah_l, total_kanat_count);\n            });\n            app.querySelectorAll('.neck-card').forEach(card => {\n                const id = card.dataset.id; const modelName = `\u0639${id}`; const count = getValue(`#n-count-${id}`, card);\n                const l = getValue(`#n-l-${id}`, card), w = getValue(`#n-w-${id}`, card), h = getValue(`#n-h-${id}`, card);\n                const cover = getValue(`#n-cover-${id}`, card) \/ 100; total_n_concrete += l * w * h * count;\n                const asyakh_num = getValue(`#n-asyakh-num-${id}`, card), asyakh_dia = getValue(`#n-asyakh-dia-${id}`, card);\n                const kanat_num_m = getValue(`#n-kanat-num-${id}`, card), kanat_dia = getValue(`#n-kanat-dia-${id}`, card);\n                const eshara_len = 1.0; const bar_len = h + eshara_len;\n                addToSteelSummary(asyakh_dia, bar_len * asyakh_num * steelWeightPerMeter(asyakh_dia) * count);\n                addToCuttingList(`${modelName} \u0623\u0634\u0627\u064a\u0631 \u0631\u0623\u0633\u064a\u0629`, asyakh_dia, bar_len, asyakh_num * count);\n                const kanah_l = (l - 2 * cover) * 2 + (w - 2 * cover) * 2 + 0.1;\n                const total_kanat_count = Math.ceil(h * kanat_num_m);\n                addToSteelSummary(kanat_dia, kanah_l * total_kanat_count * steelWeightPerMeter(kanat_dia) * count);\n                addToCuttingList(`${modelName} \u0643\u0627\u0646\u0627\u062a`, kanat_dia, kanah_l, total_kanat_count * count);\n            });\n            \/\/ --- End of Calculation Logic ---<\/p>\n<p>            \/\/ --- Start of UI Update Logic ---\n            app.querySelector('#results-area').style.display = 'block';\n            const setHtml = (selector, value) => { app.querySelector(selector).innerHTML = value; };\n            setHtml('#total-q-concrete', total_q_concrete.toFixed(2));\n            setHtml('#total-m-concrete', total_m_concrete.toFixed(2));\n            setHtml('#total-n-concrete', total_n_concrete.toFixed(2));\n            setHtml('#total-concrete', (total_q_concrete + total_m_concrete + total_n_concrete).toFixed(2));\n            const steelContainer = app.querySelector('#steel-summary');\n            steelContainer.innerHTML = '';\n            let totalSteelWeight = 0;\n            const sortedDias = Object.keys(steelByDia).sort((a, b) => a - b);\n            for (const dia of sortedDias) {\n                const weight = steelByDia[dia];\n                totalSteelWeight += weight;\n                const item = document.createElement('div');\n                item.className = 'result-item';\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>`;\n                steelContainer.appendChild(item);\n            }\n            setHtml('#total-steel-weight', (totalSteelWeight \/ 1000).toFixed(3));\n            const cuttingListBody = app.querySelector('#cutting-list-body');\n            cuttingListBody.innerHTML = '';\n            cuttingList.forEach(item => {\n                const row = document.createElement('tr');\n                row.innerHTML = `<\/p>\n<td>${item.item}<\/td>\n<td>&Oslash;${item.dia}<\/td>\n<td>${item.length.toFixed(2)}<\/td>\n<td>${item.count}<\/td>\n<td>${(item.length * item.count).toFixed(2)}<\/td>\n<p>`;\n                cuttingListBody.appendChild(row);\n            });\n            \/\/ --- End of UI Update Logic ---\n        });\n    });\n    <\/script>\n<\/div>\n<p><!-- \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 --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0627\u0644\u062d\u0627\u0633\u0628\u0629 \u0627\u0644\u0625\u0646\u0634\u0627\u0626\u064a\u0629 \u0627\u0644\u0634\u0627\u0645\u0644\u0629 \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 1. \u0627\u0644\u0642\u0648\u0627\u0639\u062f (Foundations) + \u0625\u0636\u0627\u0641\u0629 \u0646\u0645\u0648\u0630\u062c \u0642\u0627\u0639\u062f\u0629 2. \u0627\u0644\u0645\u064a\u062f\u0627\u062a (Tie Beams) + \u0625\u0636\u0627\u0641\u0629 \u0646\u0645\u0648\u0630\u062c \u0645\u064a\u062f\u0629 3. \u0631\u0642\u0627\u0628 \u0627\u0644\u0623\u0639\u0645\u062f\u0629 (Column Necks) + \u0625\u0636\u0627\u0641\u0629 \u0646\u0645\u0648\u0630\u062c \u0631\u0642\u0628\u0629 \u0639\u0645\u0648\u062f \u0627\u062d\u0633\u0628 \u0627\u0644\u0622\u0646 \u0627\u0644\u0645\u0644\u062e\u0635 \u0627\u0644\u0625\u062c\u0645\u0627\u0644\u064a \u0644\u0644\u0645\u0634\u0631\u0648\u0639 \u0625\u062c\u0645\u0627\u0644\u064a \u062e\u0631\u0633\u0627\u0646\u0629 \u0627\u0644\u0642\u0648\u0627\u0639\u062f (\u0645\u00b3)0.00 \u0625\u062c\u0645\u0627\u0644\u064a \u062e\u0631\u0633\u0627\u0646\u0629 \u0627\u0644\u0645\u064a\u062f\u0627\u062a (\u0645\u00b3)0.00 \u0625\u062c\u0645\u0627\u0644\u064a \u062e\u0631\u0633\u0627\u0646\u0629 \u0627\u0644\u0631\u0642\u0627\u0628 (\u0645\u00b3)0.00 \u0625\u062c\u0645\u0627\u0644\u064a \u062d\u062c\u0645 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"footnotes":""},"class_list":["post-52633","page","type-page","status-publish","hentry"],"jetpack-related-posts":[{"id":56562,"url":"https:\/\/engeg.com\/b\/prs-groups-directory0\/","url_meta":{"origin":52633,"position":0},"title":"\u062a\u0645 \u0627\u063a\u0644\u0627\u0642 \u0639\u0631\u0636 \u0627\u0644\u062c\u0631\u0648\u0628\u0627\u062a \u0644\u062d\u0645\u0627\u064a\u0629 \u0627\u0644\u0627\u0639\u0636\u0627\u0621","author":"interior","date":"\u0623\u0628\u0631\u064a\u0644 7, 2026","format":false,"excerpt":"\ud83d\udee1\ufe0f \u062d\u0645\u0627\u064a\u0629 \u0627\u0644\u062e\u0635\u0648\u0635\u064a\u0629 \u0625\u0634\u0639\u0627\u0631 \u0645\u0647\u0645 \u0644\u0644\u0623\u0639\u0636\u0627\u0621 \u062d\u0641\u0627\u0638\u064b\u0627 \u0639\u0644\u0649 \u0633\u0631\u064a\u0629 \u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0623\u0639\u0636\u0627\u0621 \u0648\u0645\u0646\u0639 \u0623\u064a \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u063a\u064a\u0631 \u0645\u0635\u0631\u062d \u0628\u0647\u060c \u062a\u0645 \u062a\u0642\u064a\u064a\u062f \u0639\u0631\u0636 \u0627\u0644\u0645\u062c\u0645\u0648\u0639\u0627\u062a \u0645\u0624\u0642\u062a\u064b\u0627. \u0641\u064a \u062d\u0627\u0644 \u0627\u062d\u062a\u064a\u0627\u062c\u0643 \u0644\u0644\u0648\u0635\u0648\u0644 \u0623\u0648 \u0627\u0644\u0627\u0633\u062a\u0641\u0633\u0627\u0631\u060c \u064a\u0645\u0643\u0646\u0643 \u0627\u0644\u062a\u0648\u0627\u0635\u0644 \u0645\u0639\u0646\u0627 \u0645\u0628\u0627\u0634\u0631\u0629 \u062a\u0648\u0627\u0635\u0644 \u0639\u0628\u0631 \u0648\u0627\u062a\u0633\u0627\u0628","rel":"","context":"\u062a\u062f\u0648\u064a\u0646\u0629 \u0645\u0634\u0627\u0628\u0647\u0629","block_context":{"text":"\u062a\u062f\u0648\u064a\u0646\u0629 \u0645\u0634\u0627\u0628\u0647\u0629","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/engeg.com\/b\/wp-json\/wp\/v2\/pages\/52633","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/engeg.com\/b\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/engeg.com\/b\/wp-json\/wp\/v2\/types\/page"}],"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=52633"}],"version-history":[{"count":1,"href":"https:\/\/engeg.com\/b\/wp-json\/wp\/v2\/pages\/52633\/revisions"}],"predecessor-version":[{"id":52635,"href":"https:\/\/engeg.com\/b\/wp-json\/wp\/v2\/pages\/52633\/revisions\/52635"}],"wp:attachment":[{"href":"https:\/\/engeg.com\/b\/wp-json\/wp\/v2\/media?parent=52633"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}