/// <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++; } }
// 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; }
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); } }
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; }
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++; } }
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); } }