Cálculo De Concreto

Calculadora de Concreto: Cálculo Preciso de Volumen y Materiales :root { –primary-color: #004a99; –success-color: #28a745; –background-color: #f8f9fa; –text-color: #333; –border-color: #ddd; –card-background: #fff; –shadow: 0 2px 5px rgba(0,0,0,0.1); } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: var(–background-color); color: var(–text-color); line-height: 1.6; margin: 0; padding: 0; display: flex; flex-direction: column; align-items: center; padding-top: 20px; padding-bottom: 40px; } .container { width: 100%; max-width: 960px; margin: 0 auto; padding: 20px; background-color: var(–card-background); border-radius: 8px; box-shadow: var(–shadow); display: flex; flex-direction: column; align-items: center; } h1, h2, h3 { color: var(–primary-color); text-align: center; margin-bottom: 20px; } h1 { font-size: 2.2em; margin-bottom: 30px; } h2 { font-size: 1.8em; margin-top: 40px; border-bottom: 2px solid var(–primary-color); padding-bottom: 5px; } h3 { font-size: 1.4em; margin-top: 30px; color: #555; } .loan-calc-container { width: 100%; max-width: 600px; background-color: var(–card-background); padding: 30px; border-radius: 8px; box-shadow: var(–shadow); margin-bottom: 30px; display: flex; flex-direction: column; align-items: center; } .input-group { width: 100%; margin-bottom: 20px; text-align: left; } .input-group label { display: block; margin-bottom: 8px; font-weight: bold; color: #555; } .input-group input[type="number"], .input-group select { width: calc(100% – 20px); padding: 12px 10px; border: 1px solid var(–border-color); border-radius: 4px; font-size: 1em; box-sizing: border-box; transition: border-color 0.3s ease; } .input-group input[type="number"]:focus, .input-group select:focus { border-color: var(–primary-color); outline: none; } .input-group .helper-text { font-size: 0.85em; color: #777; margin-top: 5px; display: block; } .input-group .error-message { color: #dc3545; font-size: 0.8em; margin-top: 5px; display: none; /* Hidden by default */ height: 1.2em; /* Reserve space */ } .input-group .error-message.visible { display: block; } .button-group { display: flex; justify-content: space-between; width: 100%; margin-top: 25px; } button { padding: 12px 25px; border: none; border-radius: 5px; cursor: pointer; font-size: 1em; font-weight: bold; transition: background-color 0.3s ease, transform 0.2s ease; margin: 0 5px; } button.primary { background-color: var(–primary-color); color: white; } button.primary:hover { background-color: #003366; transform: translateY(-1px); } button.secondary { background-color: #6c757d; color: white; } button.secondary:hover { background-color: #5a6268; transform: translateY(-1px); } button.success { background-color: var(–success-color); color: white; } button.success:hover { background-color: #218838; transform: translateY(-1px); } #results { width: 100%; max-width: 600px; margin-top: 30px; padding: 30px; background-color: var(–card-background); border-radius: 8px; box-shadow: var(–shadow); text-align: center; display: none; /* Hidden by default */ } #results.visible { display: block; } #results h3 { margin-top: 0; color: var(–primary-color); border-bottom: 1px solid var(–border-color); padding-bottom: 10px; margin-bottom: 20px; } .result-item { margin-bottom: 15px; font-size: 1.1em; } .result-item strong { color: var(–primary-color); font-size: 1.3em; display: block; margin-bottom: 5px; } .result-item span { font-size: 0.9em; color: #666; } .formula-explanation { margin-top: 20px; font-size: 0.9em; color: #555; border-top: 1px solid var(–border-color); padding-top: 15px; } .chart-container { width: 100%; max-width: 600px; margin-top: 30px; padding: 30px; background-color: var(–card-background); border-radius: 8px; box-shadow: var(–shadow); text-align: center; } .chart-container canvas { max-width: 100%; height: auto; } .chart-caption { font-size: 0.9em; color: #666; margin-top: 10px; } table { width: 100%; max-width: 600px; margin-top: 30px; border-collapse: collapse; background-color: var(–card-background); box-shadow: var(–shadow); border-radius: 8px; overflow: hidden; /* For rounded corners on table */ } th, td { padding: 12px 15px; text-align: left; border-bottom: 1px solid var(–border-color); } thead th { background-color: var(–primary-color); color: white; font-weight: bold; } tbody tr:nth-child(even) { background-color: #f2f2f2; } tbody tr:hover { background-color: #e9ecef; } .table-caption { font-size: 0.9em; color: #666; margin-top: 10px; margin-bottom: 20px; text-align: center; } .article-section { width: 100%; max-width: 960px; margin-top: 40px; padding: 30px; background-color: var(–card-background); border-radius: 8px; box-shadow: var(–shadow); text-align: left; } .article-section h2 { text-align: left; margin-bottom: 20px; border-bottom: 2px solid var(–primary-color); } .article-section h3 { text-align: left; margin-top: 30px; color: #004a99; } .article-section p, .article-section ul, .article-section ol { margin-bottom: 15px; font-size: 1.05em; } .article-section ul, .article-section ol { padding-left: 25px; } .article-section li { margin-bottom: 8px; } .faq-item { margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px dashed var(–border-color); } .faq-item:last-child { border-bottom: none; } .faq-item strong { display: block; color: var(–primary-color); margin-bottom: 5px; font-size: 1.1em; } .internal-links { margin-top: 30px; padding: 20px; background-color: #e9ecef; border-radius: 5px; } .internal-links h3 { margin-top: 0; color: #333; border-bottom: none; text-align: left; } .internal-links ul { list-style: none; padding: 0; margin: 0; } .internal-links li { margin-bottom: 10px; } .internal-links a { color: var(–primary-color); text-decoration: none; font-weight: bold; } .internal-links a:hover { text-decoration: underline; } .internal-links p { font-size: 0.9em; color: #555; margin-top: 5px; } .highlighted-result { background-color: var(–success-color); color: white; padding: 15px 20px; border-radius: 5px; font-size: 1.8em; font-weight: bold; margin-bottom: 15px; box-shadow: inset 0 0 10px rgba(0,0,0,0.2); } .copy-button { background-color: #6c757d; color: white; padding: 10px 20px; border-radius: 5px; cursor: pointer; font-size: 0.9em; margin-top: 15px; transition: background-color 0.3s ease; } .copy-button:hover { background-color: #5a6268; } .tooltip { position: relative; display: inline-block; cursor: help; border-bottom: 1px dotted #004a99; } .tooltip .tooltiptext { visibility: hidden; width: 220px; background-color: #555; color: #fff; text-align: center; border-radius: 6px; padding: 5px 0; position: absolute; z-index: 1; bottom: 125%; left: 50%; margin-left: -110px; opacity: 0; transition: opacity 0.3s; font-size: 0.8em; line-height: 1.4; } .tooltip .tooltiptext::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: #555 transparent transparent transparent; } .tooltip:hover .tooltiptext { visibility: visible; opacity: 1; }

Calculadora de Concreto

Calcula la cantidad exacta de concreto, cemento, arena, grava y agua para tu proyecto de construcción de forma rápida y sencilla.

Calculadora de Volumen de Concreto

Introduce la longitud de la zona a cubrir en metros.
Introduce el ancho de la zona a cubrir en metros.
Introduce la profundidad o espesor del concreto en metros.
1:2:3 (Común para pavimentos) 1:2:4 (Uso general) 1:3:5 (Bajo esfuerzo) 1:1.5:2.5 (Alta resistencia) Selecciona la proporción de los materiales.
Introduce la relación entre el peso del agua y el peso del cemento (ej: 0.5 significa 0.5 kg de agua por cada kg de cemento).
Porcentaje adicional para compensar pérdidas (generalmente 5-10%).

Resultados del Cálculo de Concreto

— m³
Volumen de Concreto (m³) Volumen total requerido, incluyendo merma.
Cemento Requerido (kg) — kg
Arena Requerida (kg) — kg
Grava Requerida (kg) — kg
Agua Requerida (L) — L
Fórmula Principal: Volumen = Largo × Ancho × Profundidad. Los materiales se calculan basándose en la relación de mezcla y la densidad teórica del concreto (aprox. 2400 kg/m³). El agua se determina por la relación Agua/Cemento. Se añade un factor de merma.

Distribución de Materiales

Gráfico de la proporción de materiales en la mezcla.
Resumen de Materiales por m³ de Concreto (Mezcla 1:2:4, A/C=0.5)
Material Cantidad por m³ (kg) Unidad
Cemento 350 kg
Arena 700 kg
Grava 1050 kg
Agua 175 L
Volumen Total (aprox.) 1.00

¿Qué es el Cálculo de Concreto?

El cálculo de concreto se refiere al proceso de determinar las cantidades exactas de los componentes necesarios para producir una mezcla de concreto específica para un proyecto de construcción. Esto incluye el volumen total de concreto requerido y las cantidades precisas de cemento, agregados (arena y grava), y agua. Un cálculo de concreto preciso es fundamental para asegurar la resistencia, durabilidad y viabilidad económica de cualquier obra.

Este cálculo es esencial para contratistas, ingenieros, arquitectos y constructores, ya que permite planificar la compra de materiales, optimizar el uso de recursos y evitar desperdicios o escasez. Un cálculo de concreto bien ejecutado garantiza que la mezcla final cumpla con las especificaciones técnicas requeridas para la estructura.

¿Quién debe usar esta calculadora de concreto?

  • Constructores y Contratistas: Para presupuestar materiales y gestionar inventarios.
  • Propietarios de Viviendas: Para proyectos de bricolaje como cimentaciones, aceras o pequeñas losas.
  • Ingenieros Civiles: Para verificar cantidades y diseñar mezclas específicas.
  • Estudiantes de Ingeniería y Arquitectura: Como herramienta de aprendizaje y verificación.

Errores Comunes en el Cálculo de Concreto

  • Ignorar la Merma: No considerar el material perdido durante el transporte, vertido y compactación.
  • Errores en Unidades: Mezclar metros cúbicos con pies cúbicos, o kilogramos con libras.
  • No Ajustar por Humedad: No tener en cuenta la humedad natural de los agregados.
  • Selección Incorrecta de la Mezcla: Usar una relación C:A:G inadecuada para la aplicación.
  • Subestimar el Volumen: Calcular solo el volumen geométrico sin considerar desperdicios.

Realizar un cálculo de concreto detallado ayuda a mitigar estos errores y asegura un resultado óptimo.

Fórmula y Explicación Matemática del Cálculo de Concreto

El proceso de cálculo de concreto se basa en principios de volumen y proporciones de mezcla. A continuación, se detalla la metodología:

1. Cálculo del Volumen Geométrico

Primero, se determina el volumen bruto de la estructura a llenar. Si la forma es simple (rectangular, cuadrada), la fórmula es:

Volumen Geométrico = Largo × Ancho × Profundidad

Las unidades deben ser consistentes (metros para todas las dimensiones, resultando en metros cúbicos).

2. Aplicación del Factor de Merma

El concreto sufre pérdidas durante su manejo. Se aplica un factor de merma (generalmente 5-10%) para asegurar que la cantidad calculada sea suficiente.

Volumen Total = Volumen Geométrico × (1 + Factor de Merma / 100)

3. Determinación de Cantidades de Materiales (Basado en Densidad y Proporción)

La cantidad de cada material se calcula a partir del volumen total y la relación de mezcla (Cemento:Arena:Grava). Se asume una densidad teórica del concreto fresco de aproximadamente 2400 kg/m³.

Sea la relación de mezcla R = C + A + G (suma de las partes). Por ejemplo, para 1:2:4, R = 1 + 2 + 4 = 7.

Peso Total del Concreto = Volumen Total × Densidad Teórica

Peso del Cemento = (Peso Total del Concreto) × (Parte de Cemento / R)

Peso de la Arena = (Peso Total del Concreto) × (Parte de Arena / R)

Peso de la Grava = (Peso Total del Concreto) × (Parte de Grava / R)

4. Cálculo del Agua

El agua se determina mediante la relación Agua/Cemento (A/C) especificada.

Peso del Agua = Peso del Cemento × Relación Agua/Cemento

Dado que la densidad del agua es aproximadamente 1 kg/L, el peso en kg es numéricamente igual al volumen en Litros.

Tabla de Variables

Variables clave en el cálculo de concreto
Variable Significado Unidad Rango Típico
Largo, Ancho, Profundidad Dimensiones de la estructura m Variable según proyecto
Volumen Geométrico Espacio a llenar sin considerar pérdidas ≥ 0
Factor de Merma Porcentaje de material perdido % 5 – 10%
Volumen Total Volumen final requerido con merma ≥ 0
Relación de Mezcla (C:A:G) Proporción de cemento, arena y grava Adimensional Ej: 1:2:4, 1:3:5
Relación Agua/Cemento (A/C) Ratio de agua respecto al cemento Adimensional 0.4 – 0.6
Densidad Teórica del Concreto Masa por unidad de volumen kg/m³ ~2400
Cemento Aglutinante principal kg Calculado
Arena Agregado fino kg Calculado
Grava Agregado grueso kg Calculado
Agua Reactivo para el cemento y plasticidad L (o kg) Calculado

Ejemplos Prácticos de Cálculo de Concreto

Ejemplo 1: Construcción de una Losa de Garaje

Se necesita construir una losa de garaje de 6 metros de largo, 4 metros de ancho y 0.15 metros (15 cm) de espesor. Se utilizará una mezcla estándar 1:2:4 con una relación Agua/Cemento de 0.5 y se considera un factor de merma del 7%.

Inputs:

  • Largo: 6 m
  • Ancho: 4 m
  • Profundidad: 0.15 m
  • Relación de Mezcla: 1:2:4
  • Relación A/C: 0.5
  • Factor de Merma: 7%

Cálculos:

  • Volumen Geométrico = 6 m × 4 m × 0.15 m = 3.6 m³
  • Volumen Total = 3.6 m³ × (1 + 7/100) = 3.6 m³ × 1.07 = 3.852 m³
  • Peso Total (aprox.) = 3.852 m³ × 2400 kg/m³ = 9244.8 kg
  • Relación Suma (1+2+4) = 7
  • Cemento = (9244.8 kg) × (1 / 7) ≈ 1320.7 kg
  • Arena = (9244.8 kg) × (2 / 7) ≈ 2641.4 kg
  • Grava = (9244.8 kg) × (4 / 7) ≈ 5282.8 kg
  • Agua = 1320.7 kg (cemento) × 0.5 = 660.35 kg ≈ 660.4 L

Resultados:

  • Volumen de Concreto Requerido: 3.85 m³
  • Cemento: 1321 kg
  • Arena: 2641 kg
  • Grava: 5283 kg
  • Agua: 660 L

Este cálculo de concreto asegura que se compren los materiales suficientes para completar la losa sin excesos significativos.

Ejemplo 2: Construcción de una Columna de Concreto

Se requiere calcular los materiales para una columna de sección cuadrada de 0.4m x 0.4m y 3 metros de altura. Se usará una mezcla de alta resistencia 1:1.5:2.5, con A/C = 0.45 y un factor de merma del 10%.

Inputs:

  • Largo: 0.4 m
  • Ancho: 0.4 m
  • Profundidad: 3 m
  • Relación de Mezcla: 1:1.5:2.5
  • Relación A/C: 0.45
  • Factor de Merma: 10%

Cálculos:

  • Volumen Geométrico = 0.4 m × 0.4 m × 3 m = 0.48 m³
  • Volumen Total = 0.48 m³ × (1 + 10/100) = 0.48 m³ × 1.10 = 0.528 m³
  • Peso Total (aprox.) = 0.528 m³ × 2400 kg/m³ = 1267.2 kg
  • Relación Suma (1+1.5+2.5) = 5
  • Cemento = (1267.2 kg) × (1 / 5) ≈ 253.4 kg
  • Arena = (1267.2 kg) × (1.5 / 5) ≈ 380.2 kg
  • Grava = (1267.2 kg) × (2.5 / 5) ≈ 633.6 kg
  • Agua = 253.4 kg (cemento) × 0.45 = 114.03 kg ≈ 114.0 L

Resultados:

  • Volumen de Concreto Requerido: 0.53 m³
  • Cemento: 253 kg
  • Arena: 380 kg
  • Grava: 634 kg
  • Agua: 114 L

Este cálculo de concreto es vital para asegurar la resistencia necesaria en elementos estructurales como columnas.

Cómo Usar Esta Calculadora de Concreto

Nuestra calculadora de concreto está diseñada para ser intuitiva y fácil de usar. Sigue estos pasos para obtener tus resultados:

  1. Introduce las Dimensiones: En los campos "Largo (m)", "Ancho (m)" y "Profundidad/Espesor (m)", ingresa las medidas exactas del área o volumen que necesitas llenar con concreto. Asegúrate de usar metros para todas las dimensiones.
  2. Selecciona la Relación de Mezcla: Elige la proporción de Cemento:Arena:Grava que mejor se adapte a tu proyecto. Las opciones comunes están predefinidas, pero puedes ajustar según las especificaciones técnicas.
  3. Define la Relación Agua/Cemento (A/C): Ingresa el valor deseado para la relación Agua/Cemento. Un valor más bajo generalmente indica mayor resistencia pero menor trabajabilidad. El valor por defecto es 0.5.
  4. Ajusta el Factor de Merma: Introduce el porcentaje estimado de desperdicio de material. Un valor común es 5% o 10%.
  5. Haz Clic en "Calcular": Una vez que hayas ingresado todos los datos, presiona el botón "Calcular".

Interpretación de los Resultados

  • Volumen de Concreto (m³): Este es el resultado principal, indicando la cantidad total de concreto que necesitarás, ya incluyendo el factor de merma.
  • Cemento, Arena, Grava (kg): Muestra las cantidades en peso de cada agregado y del cemento necesarias.
  • Agua (L): Indica el volumen de agua requerido para la mezcla.
  • Gráfico y Tabla: Visualiza la distribución de los materiales y consulta una tabla de referencia para mezclas comunes.

Guía para la Toma de Decisiones

Utiliza los resultados para:

  • Comprar Materiales: Realiza tus pedidos de cemento, arena y grava basándote en las cantidades calculadas. Es recomendable redondear ligeramente al alza para asegurar suficiente material.
  • Optimizar Costos: Un cálculo de concreto preciso evita comprar material de más, reduciendo costos innecesarios.
  • Asegurar Calidad: Al seguir las proporciones correctas, garantizas que el concreto tenga la resistencia y durabilidad esperadas.

Si tienes dudas sobre la relación de mezcla o la relación A/C, consulta a un profesional o revisa las especificaciones de tu proyecto. El uso de esta calculadora de concreto simplifica enormemente este proceso.

Factores Clave que Afectan los Resultados del Cálculo de Concreto

Varios factores pueden influir en las cantidades finales y el rendimiento del concreto. Un cálculo de concreto inicial es una estimación, y estos factores deben considerarse:

  1. Tipo y Tamaño de Agregados: La granulometría y la forma de la arena y la grava afectan la densidad y el volumen de aire en la mezcla. Agregados más gruesos pueden requerir menos cemento para un mismo volumen.
  2. Densidad Real de los Materiales: Las densidades teóricas son aproximadas. La densidad real de los agregados y del cemento puede variar ligeramente entre fabricantes, afectando el peso final.
  3. Contenido de Aire Atrapado: Durante el mezclado y la compactación, se puede incorporar aire a la mezcla. Un contenido de aire más alto reduce la resistencia y el peso por m³. Las mezclas con aditivos inclusores de aire están diseñadas para controlar esto.
  4. Compactación y Vibrado: La eficiencia con la que se compacta el concreto influye en la densidad final y el volumen real ocupado. Una mala compactación deja huecos.
  5. Temperatura y Humedad Ambiental: Estas condiciones afectan el tiempo de fraguado y la evaporación del agua, lo que puede requerir ajustes en la cantidad de agua o el uso de aditivos.
  6. Aditivos Químicos: Plastificantes, superplastificantes, acelerantes o retardantes pueden modificar la trabajabilidad, el tiempo de fraguado y la resistencia, y a veces afectan el volumen o la cantidad de agua necesaria.
  7. Absorción de los Agregados: Los agregados secos pueden absorber agua de la mezcla, reduciendo la cantidad disponible para la hidratación del cemento. Los cálculos más precisos consideran la absorción y humedad superficial de los agregados.

Considerar estos elementos en tu cálculo de concreto te permitirá obtener resultados más precisos y un producto final de mayor calidad.

Preguntas Frecuentes (FAQ) sobre Cálculo de Concreto

¿Qué es la relación de mezcla en el concreto?

La relación de mezcla (ej. 1:2:4) indica las partes proporcionales de cemento, arena y grava, respectivamente, que se usan para crear el concreto. Define las características de resistencia y durabilidad de la mezcla.

¿Por qué es importante la relación Agua/Cemento (A/C)?

Esta relación es crucial porque determina la resistencia y la durabilidad del concreto. Una relación A/C baja (menos agua) resulta en un concreto más fuerte y resistente, pero más difícil de trabajar. Una relación alta da más trabajabilidad pero menor resistencia.

¿Cuánto concreto necesito para una acera?

Depende del tamaño de la acera. Usa la calculadora ingresando el largo, ancho y el espesor deseado (generalmente entre 0.10m y 0.15m). Nuestra calculadora de concreto te dará la cantidad exacta.

¿Puedo usar esta calculadora para concreto premezclado?

Esta calculadora es para mezclas hechas en sitio. Si usas concreto premezclado (de camión), solo necesitas calcular el volumen total requerido (incluyendo merma) y pedir esa cantidad.

¿Qué pasa si calculo mal la cantidad de concreto?

Si calculas de menos, te quedarás sin material y podrías tener juntas frías o un acabado irregular. Si calculas de más, desperdiciarás dinero y material.

¿Cómo afecta el tipo de cemento al cálculo?

El tipo de cemento (ej. Portland, Puzolánico) puede influir en la resistencia final y el tiempo de fraguado, pero las proporciones básicas de agregados y agua suelen mantenerse similares para una resistencia dada. Nuestra calculadora asume cemento Portland común.

¿Es necesario añadir aditivos?

No siempre. Los aditivos se usan para mejorar propiedades específicas (trabajabilidad, resistencia al hielo, etc.). Si los usas, consulta las recomendaciones del fabricante, ya que pueden alterar ligeramente las proporciones de agua o cemento.

¿Qué significa "m³" en el cálculo de concreto?

"m³" es la abreviatura de metro cúbico, la unidad estándar para medir volumen en la mayoría de los países y en esta calculadora.

Herramientas Relacionadas y Recursos Internos

var lengthInput = document.getElementById('length'); var widthInput = document.getElementById('width'); var depthInput = document.getElementById('depth'); var mixRatioInput = document.getElementById('mixRatio'); var waterCementRatioInput = document.getElementById('waterCementRatio'); var wasteFactorInput = document.getElementById('wasteFactor'); var resultsDiv = document.getElementById('results'); var mainResultDiv = document.getElementById('mainResult'); var cementResultSpan = document.getElementById('cementResult'); var sandResultSpan = document.getElementById('sandResult'); var gravelResultSpan = document.getElementById('gravelResult'); var waterResultSpan = document.getElementById('waterResult'); var lengthError = document.getElementById('lengthError'); var widthError = document.getElementById('widthError'); var depthError = document.getElementById('depthError'); var mixRatioError = document.getElementById('mixRatioError'); var waterCementRatioError = document.getElementById('waterCementRatioError'); var wasteFactorError = document.getElementById('wasteFactorError'); var chart = null; var materialsChartCanvas = document.getElementById('materialsChart').getContext('2d'); function validateInput(inputElement, errorElement, minValue = 0, maxValue = Infinity) { var value = parseFloat(inputElement.value); var isValid = true; errorElement.classList.remove('visible'); errorElement.textContent = "; if (isNaN(value)) { errorElement.textContent = 'Por favor, introduce un número válido.'; isValid = false; } else if (value maxValue) { errorElement.textContent = 'El valor es demasiado alto.'; isValid = false; } if (isValid) { inputElement.style.borderColor = '#ced4da'; } else { inputElement.style.borderColor = '#dc3545'; } return isValid; } function calculateConcrete() { var isValid = true; isValid &= validateInput(lengthInput, lengthError, 0); isValid &= validateInput(widthInput, widthError, 0); isValid &= validateInput(depthInput, depthError, 0); isValid &= validateInput(waterCementRatioInput, waterCementRatioError, 0, 1); // A/C typically 0.4-0.6, allow up to 1 isValid &= validateInput(wasteFactorInput, wasteFactorError, 0, 100); // Waste factor 0-100% if (!isValid) { resultsDiv.classList.remove('visible'); return; } var length = parseFloat(lengthInput.value); var width = parseFloat(widthInput.value); var depth = parseFloat(depthInput.value); var mixRatioStr = mixRatioInput.value; var waterCementRatio = parseFloat(waterCementRatioInput.value); var wasteFactor = parseFloat(wasteFactorInput.value); var geometricVolume = length * width * depth; var totalVolume = geometricVolume * (1 + wasteFactor / 100); var mixParts = mixRatioStr.split(':').map(function(part) { return parseFloat(part); }); var cementPart = mixParts[0]; var sandPart = mixParts[1]; var gravelPart = mixParts[2]; var totalParts = cementPart + sandPart + gravelPart; var concreteDensity = 2400; // kg/m³ (typical for fresh concrete) var totalWeight = totalVolume * concreteDensity; var cementWeight = (totalWeight * (cementPart / totalParts)); var sandWeight = (totalWeight * (sandPart / totalParts)); var gravelWeight = (totalWeight * (gravelPart / totalParts)); var waterWeight = cementWeight * waterCementRatio; // kg var waterVolume = waterWeight; // L, since density of water is ~1 kg/L mainResultDiv.textContent = totalVolume.toFixed(2) + ' m³'; cementResultSpan.textContent = cementWeight.toFixed(0) + ' kg'; sandResultSpan.textContent = sandWeight.toFixed(0) + ' kg'; gravelResultSpan.textContent = gravelWeight.toFixed(0) + ' kg'; waterResultSpan.textContent = waterVolume.toFixed(1) + ' L'; resultsDiv.classList.add('visible'); updateChart(cementWeight, sandWeight, gravelWeight, waterVolume); } function updateChart(cement, sand, gravel, water) { if (chart) { chart.destroy(); } var totalMaterialWeight = cement + sand + gravel; // Exclude water for weight-based chart if desired, or include as volume // For simplicity, let's chart the main components by weight var chartData = { labels: ['Cemento', 'Arena', 'Grava'], datasets: [{ label: 'Peso (kg)', data: [cement, sand, gravel], backgroundColor: [ 'rgba(153, 102, 255, 0.7)', // Cemento 'rgba(255, 159, 64, 0.7)', // Arena 'rgba(75, 192, 192, 0.7)' // Grava ], borderColor: [ 'rgba(153, 102, 255, 1)', 'rgba(255, 159, 64, 1)', 'rgba(75, 192, 192, 1)' ], borderWidth: 1 }] }; // Add water as a separate series or adjust labels/data if needed // For this example, we'll keep it simple with the 3 main solids. chart = new Chart(materialsChartCanvas, { type: 'bar', // or 'pie' data: chartData, options: { responsive: true, maintainAspectRatio: false, plugins: { legend: { position: 'top', }, title: { display: true, text: 'Distribución de Materiales Sólidos por Peso' } }, scales: { y: { beginAtZero: true, title: { display: true, text: 'Peso (kg)' } } } } }); } function copyResults() { var length = parseFloat(lengthInput.value); var width = parseFloat(widthInput.value); var depth = parseFloat(depthInput.value); var mixRatioStr = mixRatioInput.options[mixRatioInput.selectedIndex].text; var waterCementRatio = parseFloat(waterCementRatioInput.value); var wasteFactor = parseFloat(wasteFactorInput.value); var mainResultText = mainResultDiv.textContent; var cementResultText = cementResultSpan.textContent; var sandResultText = sandResultSpan.textContent; var gravelResultText = gravelResultSpan.textContent; var waterResultText = waterResultSpan.textContent; var copyText = "— Resultados del Cálculo de Concreto —\n\n"; copyText += "Dimensiones:\n"; copyText += "- Largo: " + length + " m\n"; copyText += "- Ancho: " + width + " m\n"; copyText += "- Profundidad: " + depth + " m\n\n"; copyText += "Mezcla:\n"; copyText += "- Relación: " + mixRatioStr + "\n"; copyText += "- Agua/Cemento: " + waterCementRatio + "\n"; copyText += "- Merma: " + wasteFactor + "%\n\n"; copyText += "Resultados:\n"; copyText += "- Volumen Total: " + mainResultText + "\n"; copyText += "- Cemento: " + cementResultText + "\n"; copyText += "- Arena: " + sandResultText + "\n"; copyText += "- Grava: " + gravelResultText + "\n"; copyText += "- Agua: " + waterResultText + "\n"; navigator.clipboard.writeText(copyText).then(function() { alert('Resultados copiados al portapapeles!'); }).catch(function(err) { console.error('Error al copiar: ', err); alert('Error al copiar los resultados. Inténtalo manualmente.'); }); } function resetCalculator() { lengthInput.value = "; widthInput.value = "; depthInput.value = "; mixRatioInput.value = '1:2:4'; waterCementRatioInput.value = '0.5'; wasteFactorInput.value = '5'; lengthError.classList.remove('visible'); widthError.classList.remove('visible'); depthError.classList.remove('visible'); mixRatioError.classList.remove('visible'); waterCementRatioError.classList.remove('visible'); wasteFactorError.classList.remove('visible'); lengthInput.style.borderColor = '#ced4da'; widthInput.style.borderColor = '#ced4da'; depthInput.style.borderColor = '#ced4da'; waterCementRatioInput.style.borderColor = '#ced4da'; wasteFactorInput.style.borderColor = '#ced4da'; resultsDiv.classList.remove('visible'); mainResultDiv.textContent = '– m³'; cementResultSpan.textContent = '– kg'; sandResultSpan.textContent = '– kg'; gravelResultSpan.textContent = '– kg'; waterResultSpan.textContent = '– L'; if (chart) { chart.destroy(); chart = null; } } // Initial calculation on load if inputs have default values document.addEventListener('DOMContentLoaded', function() { // Add Chart.js library dynamically var script = document.createElement('script'); script.src = 'https://cdn.jsdelivr.net/npm/chart.js'; script.onload = function() { // Set default values and trigger calculation lengthInput.value = '5'; widthInput.value = '4'; depthInput.value = '0.15'; mixRatioInput.value = '1:2:4'; waterCementRatioInput.value = '0.5'; wasteFactorInput.value = '5'; calculateConcrete(); }; document.head.appendChild(script); });

Leave a Comment