Example #1
0
        /// <summary>
        /// Calcula los datos de espesores de losa de todo el
        /// proyecto que se retornan en la listas
        /// (calculoslosas son respectivos mismo indice que le correponde a losas)
        /// Ejemplo: los calculos de la losas[3] estan en calculosLosas[3]
        /// </summary>
        /// <param name="p">Proyecto</param>
        /// <param name="xmlDoc">Documento Xml</param>
        public CalculosProyecto(Proyecto p)
        {
            //inicializando variables
            proyecto = new Proyecto();
            Broker b = new Broker();

            losas          = new List <DatabaseLosa.Losa>();
            cargas         = new List <DatabaseLosa.Carga>();
            calculosLosas  = new List <CalculosLosa>();
            calculosCargas = new List <CalculoCarga>();

            //llenando datos basicos para calculos
            proyecto = p;
            losas    = b.selectLosas(p.Id);
            cargas   = b.selectCargas(p.Id);

            int x = 0;

            //calculando losas
            foreach (DatabaseLosa.Losa losa in losas)
            {
                CalculosLosa cl = new CalculosLosa(losa);
                calculosLosas.Add(cl);
                x++;
            }
        }
Example #2
0
        //
        public CalculoCarga(DatabaseLosa.Losa l, CalculosLosa cl, Proyecto p, Carga ca)
        {
            double lc = 0.0;
            double ll = 0.0;

            if ((l.Lx) <= (l.Ly))
            {
                ll = l.Ly;
                lc = l.Lx;
            }
            else
            {
                ll = l.Lx;
                lc = l.Ly;
            }
            angulo      = Math.Atan(ca.Hinclinacion / lc);
            cargaMuerta = 1.2 * Convert.ToDouble(cl.T) * p.Peso_concreto * Math.Cos(angulo);

            cargaViva   = ca.Carga_viva;
            cargaUltima = 1.2 * Math.Cos(ca.Hinclinacion) * cargaMuerta + 1.6 * cargaViva;

            double alfa = (3 - (lc / ll) * (lc / ll)) / 2;

            reaccion    = (cargaUltima * lc) / 3;
            reaccionAng = reaccion * alfa;
        }
Example #3
0
 private void buttonCalcular_Click(object sender, EventArgs e)
 {
     if ((txtCargaAdicional.Text != "") && (textBoxCarga.Text != "") && (txtInclinacion.Text != ""))
     {
         Carga car = new Carga();
         car.Hinclinacion    = Convert.ToDouble(txtInclinacion.Text);
         car.Xy              = Convert.ToString(comboBoxXY.SelectedItem);
         car.Carga_adicional = Convert.ToDouble(txtCargaAdicional.Text);
         car.Carga_viva      = Convert.ToDouble(cargaV);
         DatabaseLosa.Losa l  = cp.losas[cmbLosas.SelectedIndex];
         CalculosLosa      cl = cp.calculosLosas[cmbLosas.SelectedIndex];
         car.Id_losa = l.Id;
         CalculoCarga caca = new CalculoCarga(l, cl, project, car);
         dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[2].Value = Convert.ToString(car.Hinclinacion) + " " + car.Xy;
         dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[3].Value = caca.angulo;
         dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[4].Value = caca.cargaMuerta;
         dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[5].Value = caca.cargaViva;
         dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[6].Value = car.Carga_adicional;
         dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[7].Value = caca.cargaUltima;
         dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[8].Value = caca.reaccion;
         dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[9].Value = caca.reaccionAng;
     }
     else
     {
         MessageBox.Show("Hay campos vacios", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Example #4
0
        public void calcularCargasDelProyecto()
        {
            Broker b = new Broker();
            int    x = 0;

            cargas = b.selectCargas(proyecto.Id);
            //calculando cargas
            foreach (DatabaseLosa.Losa losa in losas)
            {
                CalculosLosa cl    = new CalculosLosa(losa);
                CalculoCarga ccarg = new CalculoCarga(losa, cl, proyecto, cargas[x]);
                calculosCargas.Add(ccarg);
                x++;
            }
            existCarga = true;
        }
Example #5
0
        public CalculosProyecto(XmlDocument xmlDoc)
        {
            //inicializando variables de listas y proyectos
            proyecto       = new Proyecto();
            losas          = new List <DatabaseLosa.Losa>();
            cargas         = new List <DatabaseLosa.Carga>();
            calculosLosas  = new List <CalculosLosa>();
            calculosCargas = new List <CalculoCarga>();

            proyecto.Id = Convert.ToInt64(DateTime.Now.ToString("yyMMddhhmm")); //asignando a id al proyecto exportado

            XmlNode projectNode = xmlDoc.SelectSingleNode("Proyecto");          //tomando nodo principal proyecto

            //tomando datos del nodo: nombre
            XmlNode nodeData = projectNode.SelectSingleNode("Nombre");

            proyecto.Nombre = nodeData.InnerText;

            //tomando datos del nodo: Usuario
            nodeData         = projectNode.SelectSingleNode("Usuario");
            proyecto.Usuario = nodeData.InnerText;

            //tomando datos del nodo: Tipo_losa
            nodeData           = projectNode.SelectSingleNode("Tipo_losa");
            proyecto.Tipo_losa = nodeData.InnerText;

            //tomando datos del nodo: Pandereta
            nodeData           = projectNode.SelectSingleNode("Pandereta");
            proyecto.Pandereta = Convert.ToDouble(nodeData.InnerText);

            //tomando datos del nodo: Peso_concreto
            nodeData = projectNode.SelectSingleNode("Peso_concreto");
            proyecto.Peso_concreto = Convert.ToDouble(nodeData.InnerText);

            //tomando datos del nodo: Peso_concreto
            nodeData             = projectNode.SelectSingleNode("Terminacion");
            proyecto.Terminacion = Convert.ToDouble(nodeData.InnerText);

            //tomando datos del nodo: Recubrimiento
            nodeData = projectNode.SelectSingleNode("Recubrimiento");
            proyecto.Recubrimiento = Convert.ToDouble(nodeData.InnerText);

            //tomando datos del nodo: Fy
            nodeData    = projectNode.SelectSingleNode("Fy");
            proyecto.Fy = Convert.ToDouble(nodeData.InnerText);

            //tomando datos del nodo: Fc
            nodeData    = projectNode.SelectSingleNode("Fc");
            proyecto.Fc = Convert.ToDouble(nodeData.InnerText);

            //tomando datos del nodo: Estado
            nodeData        = projectNode.SelectSingleNode("Estado");
            proyecto.Estado = nodeData.InnerText;

            //tomando datos del nodo: Tipo_edificio
            nodeData = projectNode.SelectSingleNode("Tipo_edificio");
            proyecto.Tipo_edificio = nodeData.InnerText;

            //tomando datos del nodo: Fecha
            nodeData       = projectNode.SelectSingleNode("Fecha");
            proyecto.Fecha = nodeData.InnerText;

            XmlNode     nodeLosa  = projectNode.SelectSingleNode("Losas");
            XmlNodeList nodeLosas = nodeLosa.SelectNodes("losa");

            foreach (XmlElement item in nodeLosas)
            {
                //variables para add to list
                DatabaseLosa.Losa  losa  = new DatabaseLosa.Losa();
                DatabaseLosa.Carga carga = new DatabaseLosa.Carga();

                //obteniendo datos de losa
                losa.Nombre  = item.SelectSingleNode("Nombre").InnerText;
                losa.Lx      = Convert.ToDouble(item.SelectSingleNode("Lx").InnerText);
                losa.Ly      = Convert.ToDouble(item.SelectSingleNode("Ly").InnerText);
                losa.BordesY = Convert.ToInt32(item.SelectSingleNode("BordesY").InnerText);
                losa.Bordesx = Convert.ToInt32(item.SelectSingleNode("Bordesx").InnerText);

                //obteniendo datos de carga
                carga.Xy              = item.SelectSingleNode("Xy").InnerText;
                carga.Hinclinacion    = Convert.ToDouble(item.SelectSingleNode("Hinclinacion").InnerText);
                carga.Carga_viva      = Convert.ToDouble(item.SelectSingleNode("Carga_viva").InnerText);
                carga.Carga_adicional = Convert.ToDouble(item.SelectSingleNode("Carga_adicional").InnerText);

                losas.Add(losa);
                cargas.Add(carga);
            }


            int x = 0;

            //calculando losas y cargas
            foreach (DatabaseLosa.Losa losa in losas)
            {
                CalculosLosa cl    = new CalculosLosa(losa);
                CalculoCarga ccarg = new CalculoCarga(losa, cl, proyecto, cargas[x]);
                calculosLosas.Add(cl);
                calculosCargas.Add(ccarg);
                x++;
            }
        }
Example #6
0
        private void button1_Click(object sender, EventArgs e)
        {
            almLosas[cmbLosas.SelectedIndex]    = new DatabaseLosa.Losa();
            almLosas[cmbLosas.SelectedIndex].Lx = Convert.ToDouble(txtLx.Text);
            dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[1].Value = txtLx.Text;
            almLosas[cmbLosas.SelectedIndex].Ly = Convert.ToDouble(txtLy.Text);
            dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[2].Value = txtLy.Text;
            double m;

            if ((Convert.ToDouble(txtLx.Text)) <= (Convert.ToDouble(txtLy.Text)))
            {
                m = Convert.ToDouble(txtLx.Text) / Convert.ToDouble(txtLy.Text);
            }
            else
            {
                m = Convert.ToDouble(txtLy.Text) / Convert.ToDouble(txtLx.Text);
            }
            if ((m >= 0.5))
            {
                if (rectangleShapeBordeSup.FillStyle != Microsoft.VisualBasic.PowerPacks.FillStyle.BackwardDiagonal)
                {
                    //bordes++;
                    //bordeX++;
                    almLosas[cmbLosas.SelectedIndex].Bordesx++;
                }
                if (rectangleShapeBordeInf.FillStyle != Microsoft.VisualBasic.PowerPacks.FillStyle.BackwardDiagonal)
                {
                    //bordes++;
                    //bordeX++;
                    almLosas[cmbLosas.SelectedIndex].Bordesx++;
                }
                if (rectangleShapeBordeIzq.FillStyle != Microsoft.VisualBasic.PowerPacks.FillStyle.BackwardDiagonal)
                {
                    //bordes++;
                    //bordeY++;
                    almLosas[cmbLosas.SelectedIndex].BordesY++;
                }
                if (rectangleShapeBordeDer.FillStyle != Microsoft.VisualBasic.PowerPacks.FillStyle.BackwardDiagonal)
                {
                    //bordes++;
                    //bordeY++;
                    almLosas[cmbLosas.SelectedIndex].BordesY++;
                }
            }
            else
            {
                if ((m < 0.5) && (groupBoxEn1DirecX.Visible == true))
                {
                    if (rectangleShapeXArriba.FillStyle != Microsoft.VisualBasic.PowerPacks.FillStyle.BackwardDiagonal)
                    {
                        //bordes++;
                        //bordeX++;
                        almLosas[cmbLosas.SelectedIndex].Bordesx++;
                    }
                    if (rectangleShapeXAbajo.FillStyle != Microsoft.VisualBasic.PowerPacks.FillStyle.BackwardDiagonal)
                    {
                        //bordes++;
                        //bordeX++;
                        almLosas[cmbLosas.SelectedIndex].Bordesx++;
                    }
                    if (rectangleShapeXIzq.BorderStyle == System.Drawing.Drawing2D.DashStyle.Dash)
                    {
                        //bordes++;
                        //bordeY++;
                        almLosas[cmbLosas.SelectedIndex].BordesY++;
                    }
                    if (rectangleShapeXDer.BorderStyle == System.Drawing.Drawing2D.DashStyle.Dash)
                    {
                        //bordes++;
                        //bordeY++;
                        almLosas[cmbLosas.SelectedIndex].BordesY++;
                    }
                }
                else if (((m < 0.5) && (groupBoxEn1DirecY.Visible == true)))
                {
                    if (rectangleShapeYArriba.BorderStyle == System.Drawing.Drawing2D.DashStyle.Dash)
                    {
                        //bordes++;
                        //bordeX++;
                        almLosas[cmbLosas.SelectedIndex].Bordesx++;
                    }
                    if (rectangleShapeYAbajo.BorderStyle == System.Drawing.Drawing2D.DashStyle.Dash)
                    {
                        //bordes++;
                        //bordeX++;
                        almLosas[cmbLosas.SelectedIndex].Bordesx++;
                    }
                    if (rectangleShapeYIzq.FillStyle != Microsoft.VisualBasic.PowerPacks.FillStyle.BackwardDiagonal)
                    {
                        //bordes++;
                        //bordeY++;
                        almLosas[cmbLosas.SelectedIndex].BordesY++;
                    }
                    if (rectangleShapeYDer.FillStyle != Microsoft.VisualBasic.PowerPacks.FillStyle.BackwardDiagonal)
                    {
                        //bordes++;
                        //bordeY++;
                        almLosas[cmbLosas.SelectedIndex].BordesY++;
                    }
                }
            }
            CalculosLosa cl = new CalculosLosa(almLosas[cmbLosas.SelectedIndex]);

            dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[3].Value  = cl.LcLl;
            dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[4].Value  = cl.direccionLosa;
            dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[5].Value  = cl.bordesDiscontinuos;
            dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[6].Value  = cl.losa.Bordesx;
            dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[7].Value  = cl.losa.BordesY;
            dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[8].Value  = cl.apoyoArmadoEnUnaDireccion;
            dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[9].Value  = cl.tmin;
            dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[10].Value = cl.p180;
            dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[11].Value = cl.T;
            dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[12].Value = cl.usar;

            resetRegtangles();
            if ((Convert.ToDouble(cl.T) >= 16.00) && (dataGridView1.Rows[cmbLosas.SelectedIndex].Cells[8].Value != "en voladizo"))
            {
                MessageBox.Show("Es recomendable dividir la losa " + Convert.ToString(cmbLosas.SelectedIndex + 1), "Recomendación", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }