Пример #1
0
        public GraphicsPath Add_Estribos(double EscalaX, double EscalaY, float rec, float Dx, float Dy)
        {
            GraphicsPath path = new GraphicsPath();
            CCirculo     circulo1, circulo2;
            double       r1 = (radio - rec) * 100;
            double       r2 = (r1 + FunctionsProject.Find_Diametro(Estribo.NoEstribo));

            double[] pCentro = new double[] { Centro[0] + Dx, Centro[1] + Dy };

            MAT_CONCRETE material = new MAT_CONCRETE
            {
                FC   = 4220,
                Name = "FY4220"
            };

            circulo1 = new CCirculo("Refuerzo", r1, pCentro, material, TipodeSeccion.Circle, pCoord: null);
            circulo1.Set_puntos(50, r1 * EscalaX);

            circulo2 = new CCirculo("Refuerzo", r2, pCentro, material, TipodeSeccion.Circle, pCoord: null);
            circulo2.Set_puntos(50, r2 * EscalaX);

            path.AddClosedCurve(circulo1.Puntos.ToArray());
            path.AddClosedCurve(circulo2.Puntos.ToArray());

            return(path);
        }
Пример #2
0
        private void EditEndCell(int IndiceR, int IndiceC)
        {
            ISeccion seccioni = null;
            string   piso     = "";

            float Separacion;

            try
            {
                Separacion = Convert.ToSingle(Info_Es_Col.Rows[IndiceR].Cells["S_value"].Value);
            }
            catch
            {
                Separacion = 0;
            }

            int    NoBarra  = Convert.ToInt32(Info_Es_Col.Rows[IndiceR].Cells["NoEstribo"].Value);
            string Story    = Info_Es_Col.Rows[IndiceR].Cells[0].Value.ToString();
            int    IndiceaM = Form1.Proyecto_.ColumnaSelect.Seccions.FindIndex(x => x.Item2 == Story);

            piso     = Form1.Proyecto_.ColumnaSelect.Seccions[IndiceaM].Item2;
            seccioni = FunctionsProject.DeepClone(Form1.Proyecto_.ColumnaSelect.Seccions[IndiceaM].Item1);

            seccioni.Estribo.NoEstribo  = NoBarra;
            seccioni.Estribo.Separacion = Separacion;
            seccioni.Estribo.CalcularArea();

            CalCuantiaVol(seccioni, false, IndiceaM);

            Form1.Proyecto_.ColumnaSelect.Seccions[IndiceaM] = new Tuple <ISeccion, string>(seccioni, piso);
            Form1.Proyecto_.ColumnaSelect.CantidadEstribos(IndiceR - 1);

            CambiosDataGridView(IndiceaM);
            try { Form1.mIntefazSeccion.Get_section(true); Form1.mIntefazSeccion.Invalidate(); } catch { }
        }
Пример #3
0
        public static void Crear_archivo()
        {
            string Ruta_Carpeta;
            string Ruta_Archivo;
            string Ruta_Completa;

            Ruta_Carpeta  = AppDomain.CurrentDomain.BaseDirectory;
            Ruta_Archivo  = "Secciones.sec";
            Ruta_Completa = Ruta_Carpeta + Ruta_Archivo;

            bool Encuentra = false;

            DirectoryInfo directory_seccion = new DirectoryInfo(Ruta_Carpeta);

            foreach (FileInfo Archivo in directory_seccion.GetFiles())
            {
                if (Archivo.Name == Ruta_Archivo)
                {
                    Encuentra = true;
                    FunctionsProject.Deserealizar_Secciones(Ruta_Completa, ref Lista_Secciones);
                    break;
                }
            }

            if (Encuentra == false)
            {
                Lista_Secciones = new CLista_Secciones();
                Crear_Secciones();
                FunctionsProject.Serializar_Secciones(Ruta_Completa, Lista_Secciones);
            }

            Form1.secciones_predef = Lista_Secciones;
        }
Пример #4
0
        private void CalcularCantidad()
        {
            float xii;
            float yii; float xff;
            float yff;
            float ss;

            if (Single.TryParse(Xi.Text, out xii) && Single.TryParse(Xf.Text, out xff) &&
                Single.TryParse(Yi.Text, out yii) && Single.TryParse(Yf.Text, out yff) && cbDiametros.Text != "" && Single.TryParse(Se.Text, out ss))
            {
                Xii        = xii;
                Yii        = yii;
                Xff        = xff;
                Yff        = yff;
                Diametro   = cbDiametros.Text;
                Separacion = ss;
                float x  = Xii + (Dx / (float)EscalaX);
                float y  = Yii - (Dy / (float)EscalaY);
                float xf = Xff + (Dx / (float)EscalaX);
                float yf = Yff - (Dy / (float)EscalaY);
                float DistanciaDiagonal = FunctionsProject.DistanciaEntrePuntos(x, y, xf, yf);
                int   CantBarras        = (int)Math.Round(DistanciaDiagonal / Separacion);
                CantBarrasBox.Text = (CantBarras + 1).ToString();
            }
        }
Пример #5
0
        public void Set_Refuerzo_Seccion(int[] Refuerzos_temp, double Recubrimiento)
        {
            double Long_arco         = 0;
            double Theta             = 0;
            double Radio_interno     = 0;
            double Perimetro_interno = 0;

            double[]  Coord     = new double[2];
            int       id        = 0;
            CRefuerzo refuerzoi = null;

            Refuerzos.Clear();

            Radio_interno     = ((2 * radio * 100) - 2 * Recubrimiento - 2) / 2;
            Perimetro_interno = 2 * Math.PI * Radio_interno;
            Long_arco         = Perimetro_interno / Refuerzos_temp.Count();

            foreach (int Diametroi in Refuerzos_temp)
            {
                Coord[0]         = Radio_interno * Math.Cos((Math.PI / 2) - Theta);
                Coord[1]         = Radio_interno * Math.Sin((Math.PI / 2) - Theta);
                refuerzoi        = FunctionsProject.DeepClone(new CRefuerzo(id, "#" + Diametroi, Coord, TipodeRefuerzo.longitudinal));
                refuerzoi.Alzado = 1;
                Refuerzos.Add(refuerzoi);
                id++;
                Theta += Long_arco / Radio_interno;
            }
        }
Пример #6
0
        public void Paint(PaintEventArgs e, float SX, float SY, float HeighForm, float YI, float XI)
        {
            if (Coord_Alzado_PB != null)
            {
                List <PointF> Cord_Escala = new List <PointF>();
                Coord_Alzado_PB_Escal = new List <float[]>();

                for (int i = 0; i < Coord_Alzado_PB.Count; i++)
                {
                    PointF  point = new PointF(XI + Coord_Alzado_PB[i][0] * SX, HeighForm - Coord_Alzado_PB[i][1] * SY - YI);
                    float[] XY    = new float[] { XI + Coord_Alzado_PB[i][0] * SX, HeighForm - Coord_Alzado_PB[i][1] * SY - YI };
                    Coord_Alzado_PB_Escal.Add(XY);
                    Cord_Escala.Add(point);
                }

                if (Cord_Escala.Count != 0)
                {
                    SolidBrush brush = FunctionsProject.ColorBarra(NoBarra);
                    e.Graphics.DrawLines(new Pen(brush, 2), Cord_Escala.ToArray());
                }

                if (FormBarra == null)
                {
                    FormBarra = new Form_Barra();
                }

                if (FormBarra.Disposing)
                {
                    FormBarra = new Form_Barra();
                }

                FormBarra.Location        = new Point((int)MouseX, (int)MouseY);
                FormBarra.CantBarras.Text = Convert.ToString(CantBarras);
                FormBarra.D_Barra.Text    = Convert.ToString(NoBarra);
                FormBarra.Ld_Barra.Text   = Convert.ToString(Traslapo);

                if (Coord_Alzado_PB.Count != 0)
                {
                    Longitud = CalcularLongitudRefuerzo(Coord_Alzado_PB);

                    FormBarra.L_Barra.Text = String.Format("{0:0.00}", Math.Round(Longitud, 2));
                }

                if (MoveBarra)
                {
                    try
                    {
                        FormBarra.Visible = true;
                    }
                    catch { FormBarra = new Form_Barra(); FormBarra.Visible = true; }
                    Form1.m_Despiece.Invalidate();
                }
                else
                {
                    FormBarra.Visible = false;
                }
            }
        }
Пример #7
0
        public CRefuerzo(int pid, string pdiametro, double[] pcoord, TipodeRefuerzo ptipo)
        {
            int d1;

            id             = pid;
            Diametro       = pdiametro;
            Coord          = pcoord;
            TipodeRefuerzo = ptipo;
            d1             = Convert.ToInt32(Diametro.Substring(1));
            As_Long        = FunctionsProject.Find_As(d1) * Math.Pow(100, 2);
            Alzado         = 1;
        }
        private void Reload_Seccion()
        {
            CRefuerzo refuerzo;
            DataGridViewComboBoxCell boxCell;
            string diametro;
            int    id, indice;
            double x, y;

            double[] coord;
            Seccion.Refuerzos.Clear();

            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                boxCell  = (DataGridViewComboBoxCell)dataGridView1.Rows[i].Cells[2];
                id       = Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value);
                diametro = boxCell.Value.ToString();
                try
                {
                    int EnteroDiametro = Convert.ToInt32(diametro.Substring(1)); FunctionsProject.Find_As(EnteroDiametro);

                    if (EnteroDiametro > 10 | EnteroDiametro < 0)
                    {
                        diametro = "#4";
                    }
                    else
                    {
                        diametro = "#" + EnteroDiametro;
                    }
                }
                catch { diametro = "#4"; }

                x     = Convert.ToDouble(dataGridView1.Rows[i].Cells[3].Value);
                y     = Convert.ToDouble(dataGridView1.Rows[i].Cells[4].Value);
                coord = new double[] { x, y };

                refuerzo        = new CRefuerzo(id, diametro, coord, TipodeRefuerzo.longitudinal);
                refuerzo.Alzado = Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value);
                Seccion.Refuerzos.Add(refuerzo);
            }

            Seccion.Acero_Long = Seccion.Refuerzos.Sum(x1 => x1.As_Long);
            Seccion.Editado    = true;

            if (FInterfaz_.edicion == Tipo_Edicion.Secciones_modelo)
            {
                indice = Form1.Proyecto_.ColumnaSelect.Seccions.FindIndex(x1 => x1.Item2 == piso);
                Form1.Proyecto_.ColumnaSelect.Seccions[indice] = new Tuple <ISeccion, string>(Seccion, piso);
            }
        }
Пример #9
0
 private void CreateDataGrid()
 {
     D_MnPn.Rows.Clear();
     if (Seccion != null)
     {
         for (int i = 0; i < MP3D.Count; i++)
         {
             D_MnPn.Rows.Add();
             D_MnPn.Rows[D_MnPn.Rows.Count - 1].Cells[0].Value = String.Format("{0:0.00}", MP3D[i][2] * FC1);
             D_MnPn.Rows[D_MnPn.Rows.Count - 1].Cells[1].Value = String.Format("{0:0.00}", MP3D[i][0] * FC2);
             D_MnPn.Rows[D_MnPn.Rows.Count - 1].Cells[2].Value = String.Format("{0:0.00}", MP3D[i][1] * FC2);
         }
     }
     FunctionsProject.EstiloDatGridView(D_MnPn);
 }
        private void CopyRefuerzo(DataGridView data)
        {
            List <int> IDRefuerzos = new List <int>();

            RefuerzosACopiar.Clear();
            if (data.SelectedRows.Count != 0)
            {
                for (int i = 0; i < data.SelectedRows.Count; i++)
                {
                    IDRefuerzos.Add((int)data.Rows[data.SelectedRows[i].Index].Cells[0].Value);
                }
            }
            for (int i = 0; i < data.SelectedRows.Count; i++)
            {
                RefuerzosACopiar.Add(FunctionsProject.DeepClone(Seccion.Refuerzos.Find(x => x.id == IDRefuerzos[i])));
            }
            RefuerzosACopiar = RefuerzosACopiar.OrderBy(x => x.id).ToList();
        }
Пример #11
0
        public void Add_Ref_graph(double EscalaX, double EscalaY, double EscalaR, float Dx, float Dy)
        {
            GraphicsPath path;
            double       r = 0;

            double[] pcentro;
            double   xc, yc;
            CCirculo circulo;

            if (Shapes_ref != null)
            {
                Shapes_ref.Clear();
            }
            else
            {
                Shapes_ref = new List <GraphicsPath>();
            }

            foreach (CRefuerzo refuerzoi in Refuerzos)
            {
                path = new GraphicsPath();
                r    = FunctionsProject.Find_Diametro(Convert.ToInt32(refuerzoi.Diametro.Substring(1))) / 2;
                r    = r * EscalaR;

                xc      = Dx + refuerzoi.Coord[0] * EscalaX;
                yc      = Dy - refuerzoi.Coord[1] * EscalaY;
                pcentro = new double[] { xc, yc };

                MAT_CONCRETE material = new MAT_CONCRETE
                {
                    FC   = 4220,
                    Name = "FY4220"
                };

                circulo = new CCirculo("Refuerzo", r, pcentro, material, TipodeSeccion.Circle, pCoord: null);
                circulo.Set_puntos(10, r);

                path.AddClosedCurve(circulo.Puntos.ToArray());
                Shapes_ref.Add(path);
            }
        }
Пример #12
0
        public void HallarCantidadVertical()
        {
            float DisVert = FunctionsProject.DistanciaEntrePuntos(0, YInicial, 0, YFinal);

            float EspaciosFloat = (DisVert / SMax_Vertical) - 1;
            int   EspaciosY     = (int)Math.Ceiling(DisVert / SMax_Vertical) - 1;

            float Porcentaje1 = EspaciosFloat / EspaciosY;

            if (Porcentaje1 > 0.98)
            {
                EspaciosY = EspaciosY + 1;
            }

            int CantBarrasY = EspaciosY;

            //Re calcular Separación
            Sreal_Vertical        = (float)Math.Round(DisVert / EspaciosY, 2);
            Cantidad_VerticalUsar = CantBarrasY;
            //Mostrar
            Cantidad_Vertical = CantBarrasY - 1;
        }
Пример #13
0
        public void HallarCantidadHorizontal()
        {
            float DisHo = FunctionsProject.DistanciaEntrePuntos(XInicial, 0, XFinal, 0);


            float EspaciosFloat = (DisHo / SMax_Horizontal) - 1;
            int   EspaciosX     = (int)Math.Ceiling(DisHo / SMax_Horizontal) - 1;
            float Porcentaje1   = EspaciosFloat / EspaciosX;

            if (Porcentaje1 > 0.98f | Porcentaje1.ToString() == "NaN")
            {
                EspaciosX = EspaciosX + 1;
            }



            int CantBarrasX = EspaciosX + 1;

            //Re calcular Separación
            Sreal_Horizontal    = (float)Math.Round(DisHo / (CantBarrasX - 1), 2);
            Cantidad_Horizontal = CantBarrasX;
        }
Пример #14
0
        private void Reload_Seccion()
        {
            CRefuerzo refuerzo;
            string    diametro;
            int       Alzado = 0;
            double    x, y;

            double[] coord;
            int      indice = 0;

            diametro = cbDiametros.Text;
            Alzado   = Convert.ToInt32(tbAlzado.Text);
            x        = Convert.ToDouble(tbXc.Text);
            y        = Convert.ToDouble(tbYc.Text);
            coord    = new double[] { x, y };

            refuerzo                 = new CRefuerzo(Seccion.Refuerzos[index].id, diametro, coord, TipodeRefuerzo.longitudinal);
            refuerzo.Alzado          = Alzado;
            Seccion.Refuerzos[index] = FunctionsProject.DeepClone(refuerzo);
            Seccion.Editado          = true;

            if (FInterfaz_.edicion == Tipo_Edicion.Secciones_modelo)
            {
                indice = Form1.Proyecto_.ColumnaSelect.Seccions.FindIndex(x1 => x1.Item2 == piso);
                Form1.Proyecto_.ColumnaSelect.Seccions[indice] = new Tuple <ISeccion, string>(Seccion, piso);
            }

            if (FInterfaz_.edicion == Tipo_Edicion.Secciones_predef & GDE == GDE.DMO)
            {
                indice = Form1.secciones_predef.Secciones_DMO.FindIndex(x1 => x1.ToString() == Seccion.ToString());
                Form1.secciones_predef.Secciones_DMO[indice] = Seccion;
            }

            if (FInterfaz_.edicion == Tipo_Edicion.Secciones_predef & GDE == GDE.DES)
            {
                indice = Form1.secciones_predef.Secciones_DES.FindIndex(x1 => x1.ToString() == Seccion.ToString());
                Form1.secciones_predef.Secciones_DES[indice] = Seccion;
            }
        }
Пример #15
0
        private void DeterminarSeparacion()
        {
            float xii;
            float yii; float xff;
            float yff;
            int   CantBarras;

            if (Single.TryParse(Xi.Text, out xii) && Single.TryParse(Xf.Text, out xff) &&
                Single.TryParse(Yi.Text, out yii) && Single.TryParse(Yf.Text, out yff) && cbDiametros.Text != "" &&
                Int32.TryParse(CantBarrasBox.Text, out CantBarras))
            {
                Xii = xii;
                Yii = yii;
                Xff = xff;
                Yff = yff;
                float x  = Xii + (Dx / (float)EscalaX);
                float y  = Yii - (Dy / (float)EscalaY);
                float xf = Xff + (Dx / (float)EscalaX);
                float yf = Yff - (Dy / (float)EscalaY);
                float DistanciaDiagonal = FunctionsProject.DistanciaEntrePuntos(x, y, xf, yf);
                Separacion = DistanciaDiagonal / (CantBarras - 1);
                Se.Text    = (String.Format("{0:0.00}", Separacion).ToString());
            }
        }
Пример #16
0
        public static void Crear_Secciones()
        {
            string Nombre_Seccion = "";

            int[]    Diametros_seccion;
            int      CapasX, CapasY, CapasXw, CapasYw;
            ISeccion seccioni;

            List <MAT_CONCRETE> Lista_materiales = new List <MAT_CONCRETE>();

            MAT_CONCRETE Material1 = new MAT_CONCRETE
            {
                Name = "H210",
                FC   = 210
            };

            MAT_CONCRETE Material2 = new MAT_CONCRETE
            {
                Name = "H280",
                FC   = 280
            };

            MAT_CONCRETE Material4 = new MAT_CONCRETE
            {
                Name = "H420",
                FC   = 420
            };

            MAT_CONCRETE Material3 = new MAT_CONCRETE
            {
                Name = "H350",
                FC   = 350
            };

            MAT_CONCRETE Material5 = new MAT_CONCRETE
            {
                Name = "H490",
                FC   = 490
            };

            Lista_materiales.AddRange(new MAT_CONCRETE[] { Material1, Material2, Material3, Material4, Material5 });

            foreach (MAT_CONCRETE material in Lista_materiales)
            {
                #region Seccion30X30

                Nombre_Seccion    = "C30x30" + material.Name;
                Diametros_seccion = new int[] { 4, 4, 4, 4, 4, 4, 4, 4 };
                CapasX            = 3; CapasY = 3; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 30F, 30F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 30F, 30F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion30X30

                #region Seccion30X40

                Nombre_Seccion    = "C30x40" + material.Name;
                Diametros_seccion = new int[] { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 };
                CapasX            = 3; CapasY = 4; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 30F, 40F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 30F, 40F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion30X40

                #region Seccion30X50

                Nombre_Seccion    = "C30x50" + material.Name;
                Diametros_seccion = new int[] { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 };
                CapasX            = 3; CapasY = 5; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 30F, 50F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 30F, 50F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion30X50

                #region Seccion 30X60

                Nombre_Seccion    = "C30x60" + material.Name;
                Diametros_seccion = new int[] { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 };
                CapasX            = 3; CapasY = 6; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 30F, 60F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 30F, 60F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion 30X60

                #region Seccion30X70

                Nombre_Seccion    = "C30x70" + material.Name;
                Diametros_seccion = new int[] { 5, 5, 4, 4, 5, 5, 5, 5, 4, 4, 5, 5 };
                CapasX            = 2; CapasY = 6; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 30F, 70F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 30F, 70F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion30X70

                #region Seccion30X80

                Nombre_Seccion    = "C30x80" + material.Name;
                Diametros_seccion = new int[] { 5, 5, 4, 5, 4, 5, 5, 5, 5, 4, 5, 4, 5, 5 };
                CapasX            = 2; CapasY = 7; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 30F, 80F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 30F, 80F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion30X80

                #region Seccion30X100

                Nombre_Seccion    = "C30x100" + material.Name;
                Diametros_seccion = new int[] { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 };
                CapasX            = 2; CapasY = 8; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 30F, 100F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 30F, 100F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion30X100

                #region Seccion30X120

                Nombre_Seccion    = "C30x120" + material.Name;
                Diametros_seccion = new int[] { 5, 5, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 4, 5, 4, 5, 4, 5, 5, 5 };
                CapasX            = 2; CapasY = 10; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 30F, 120F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 30F, 100F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion30X120

                #region Seccion35X35

                Nombre_Seccion    = "C35x35" + material.Name;
                Diametros_seccion = new int[] { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 };
                CapasX            = 4; CapasY = 4; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 35F, 35F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 35F, 35F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion35X35

                #region Seccion35X40

                Nombre_Seccion    = "C35x40" + material.Name;
                Diametros_seccion = new int[] { 4, 4, 4, 4, 5, 5, 4, 4, 4, 4 };
                CapasX            = 3; CapasY = 4; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 35F, 40F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 35F, 40F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion35X40

                #region Seccion35X50

                Nombre_Seccion    = "C35x50" + material.Name;
                Diametros_seccion = new int[] { 4, 4, 5, 4, 4, 5, 5, 4, 4, 5, 4, 4 };
                CapasX            = 3; CapasY = 5; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 35F, 50F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 35F, 50F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion35X50

                #region Seccion35X60

                Nombre_Seccion    = "C35x60" + material.Name;
                Diametros_seccion = new int[] { 4, 4, 5, 5, 4, 4, 5, 5, 4, 4, 5, 5, 4, 4 };
                CapasX            = 3; CapasY = 6; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 35F, 60F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 35F, 60F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion35X60

                #region Seccion35X80

                Nombre_Seccion    = "C35x80" + material.Name;
                Diametros_seccion = new int[] { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 };
                CapasX            = 3; CapasY = 6; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 35F, 80F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 35F, 80F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion35X80

                #region Seccion40X40

                Nombre_Seccion    = "C40x40" + material.Name;
                Diametros_seccion = new int[] { 5, 5, 5, 5, 5, 5, 5, 5 };
                CapasX            = 3; CapasY = 3; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 40F, 40F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 40F, 40F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion40X40

                #region Seccion40X50

                Nombre_Seccion    = "C40x50" + material.Name;
                Diametros_seccion = new int[] { 5, 4, 5, 4, 5, 4, 4, 5, 4, 5, 4, 5 };
                CapasX            = 3; CapasY = 5; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 40F, 50F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 40F, 50F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion40X50

                #region Seccion40X60

                Nombre_Seccion    = "C40x60" + material.Name;
                Diametros_seccion = new int[] { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 };
                CapasX            = 3; CapasY = 5; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 40F, 60F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 40F, 60F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion40X60

                #region Seccion40X70

                Nombre_Seccion    = "C40x70" + material.Name;
                Diametros_seccion = new int[] { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 };
                CapasX            = 3; CapasY = 6; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 40F, 70F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 40F, 70F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion40X70

                #region Seccion40X80

                Nombre_Seccion    = "C40x80" + material.Name;
                Diametros_seccion = new int[] { 5, 5, 6, 6, 5, 5, 6, 6, 5, 5, 6, 6, 5, 5 };
                CapasX            = 3; CapasY = 6; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 40F, 80F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 40F, 80F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion40X80

                #region Seccion40X90

                Nombre_Seccion    = "C40x90" + material.Name;
                Diametros_seccion = new int[] { 5, 5, 6, 6, 6, 5, 5, 5, 5, 5, 5, 6, 6, 6, 5, 5 };
                CapasX            = 3; CapasY = 7; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 40F, 90F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 40F, 90F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion40X90

                #region Seccion40X120

                Nombre_Seccion    = "C40x120" + material.Name;
                Diametros_seccion = new int[] { 6, 6, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 6, 6 };
                CapasX            = 3; CapasY = 9; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 40F, 120F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 40F, 120F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion40X120

                #region Seccion40X140

                Nombre_Seccion    = "C40x140" + material.Name;
                Diametros_seccion = new int[] { 6, 6, 6, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 6, 6, 6 };
                CapasX            = 3; CapasY = 10; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 40F, 140F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 40F, 140F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion40X140

                #region Seccion45X110

                Nombre_Seccion    = "C45x110" + material.Name;
                Diametros_seccion = new int[] { 6, 6, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 6, 6 };
                CapasX            = 4; CapasY = 8; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 45F, 110F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 45F, 110F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion45X110

                #region Seccion50X60

                Nombre_Seccion    = "C50x60" + material.Name;
                Diametros_seccion = new int[] { 5, 5, 4, 4, 5, 5, 4, 4, 5, 5, 4, 4, 5, 5, 4, 4, 5, 5 };
                CapasX            = 5; CapasY = 6; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 50F, 60F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 50F, 60F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion50X60

                #region Seccion50X70

                Nombre_Seccion    = "C50x70" + material.Name;
                Diametros_seccion = new int[] { 6, 5, 5, 5, 6, 6, 6, 6, 6, 6, 5, 5, 5, 6 };
                CapasX            = 4; CapasY = 5; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 50F, 70F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 50F, 70F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion50X70

                #region Seccion50X80

                Nombre_Seccion    = "C50x80" + material.Name;
                Diametros_seccion = new int[] { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 };
                CapasX            = 5; CapasY = 7; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 50F, 80F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 50F, 80F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion50X80

                #region Seccion50X100

                Nombre_Seccion    = "C50x100" + material.Name;
                Diametros_seccion = new int[] { 6, 6, 5, 5, 5, 6, 6, 6, 6, 5, 5, 6, 6, 6, 6, 5, 5, 5, 6, 6 };
                CapasX            = 5; CapasY = 7; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 50F, 100F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 50F, 100F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion50X100

                #region Seccion50X120

                Nombre_Seccion    = "C50x120" + material.Name;
                Diametros_seccion = new int[] { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 };
                CapasX            = 5; CapasY = 8; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 50F, 120F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 50F, 120F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion50X120

                #region Seccion60X60

                Nombre_Seccion    = "C60x60" + material.Name;
                Diametros_seccion = new int[] { 5, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 5 };
                CapasX            = 5; CapasY = 5; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 60F, 60F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 60F, 60F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion60X60

                #region Seccion60X90

                Nombre_Seccion    = "C60x90" + material.Name;
                Diametros_seccion = new int[] { 6, 6, 6, 5, 6, 6, 6, 6, 6, 5, 5, 6, 6, 6, 6, 6, 5, 6, 6, 6 };
                CapasX            = 5; CapasY = 7; CapasXw = 0; CapasYw = 0;
                seccioni          = FunctionsProject.DeepClone(Crear_Seccion_DMO(Nombre_Seccion, 60F, 90F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DMO.Add(seccioni);
                seccioni = FunctionsProject.DeepClone(Crear_Seccion_DES(Nombre_Seccion, 60F, 90F, 0, 0, material, Diametros_seccion, CapasX, CapasY, CapasXw, CapasYw));
                Lista_Secciones.Secciones_DES.Add(seccioni);

                #endregion Seccion60X90
            }
        }
Пример #17
0
        public void Refuerzo_Base(double recub)
        {
            int    Num_Barras = 0;
            int    Barra_aux  = 0;
            int    Diametro1  = 0;
            int    Diametro2  = 0;
            double As_min;
            double As_i;
            double p_error;
            int    Cont_Aux1 = 0;
            int    Cont_Aux2 = 0;
            int    X1        = 0; //Cantidad de barras para diametro1
            int    X2        = 0; //Cantida de barras para diametro2

            Refuerzos.Clear();
            Num_Barras = 4;
            As_min     = 0.01 * Area;
            As_i       = As_min / Num_Barras;

            while (As_i > FunctionsProject.Find_As(6))
            {
                Num_Barras += 2;
                As_i        = (As_min / Num_Barras);
            }

            //Asociar As_i a un diametro de barra
            Barra_aux = FunctionsProject.Find_Barra(As_i);

            //Encontrar Combinatoria optima para el acero base mas aproximado al 1%
            p_error = Math.Abs(((FunctionsProject.Find_As(Barra_aux) * Num_Barras) - As_min) / As_min) * 100;

            if (p_error >= 1.05)

            {
                if (FunctionsProject.Find_As(Barra_aux) * Num_Barras > As_min)
                {
                    Diametro1 = Barra_aux;
                    if (Diametro1 == 4)
                    {
                        Diametro2 = 0;
                    }
                    else
                    {
                        Diametro2 = Barra_aux - 1;
                    }
                }
                else
                {
                    Diametro1 = Barra_aux;
                    Diametro2 = Barra_aux + 1;
                }

                if (Diametro2 > 0)
                {
                    X2 = Convert.ToInt32((As_min - FunctionsProject.Find_As(Diametro1) * Num_Barras) / (FunctionsProject.Find_As(Diametro2) - FunctionsProject.Find_As(Diametro1)));
                }
                else
                {
                    X2 = 0;
                }

                if (X2 % 2 != 0)
                {
                    X2 = FunctionsProject.Redondear_Entero(X2, 4, true);
                }

                X1 = Num_Barras - X2;
            }
            else
            {
                Diametro1 = Barra_aux;
                Diametro2 = 0;
                X1        = Num_Barras;
                X2        = 0;
            }

            int[] Aux_Refuerzos  = new int[Num_Barras];
            int   Aux_num_barras = Num_Barras;
            int   i = 0;

            Cont_Aux1 = X1;
            Cont_Aux2 = X2;

            while (Aux_num_barras > 0)
            {
                if (X2 > 0)
                {
                    if (Cont_Aux1 > 0)
                    {
                        if (Cont_Aux1 > 0)
                        {
                            Aux_Refuerzos[i] = Diametro1;
                            Cont_Aux1       -= 1;
                            Aux_num_barras  -= 1;
                        }

                        if (Cont_Aux1 > 0)
                        {
                            Aux_Refuerzos[i + (Num_Barras / 2) - 1] = Diametro1;
                            Cont_Aux1      -= 1;
                            Aux_num_barras -= 1;
                        }
                    }
                    else
                    {
                        if (Aux_Refuerzos[i] == 0)
                        {
                            Aux_Refuerzos[i] = Diametro2;
                            Cont_Aux2       -= 1;
                            Aux_num_barras  -= 1;
                        }
                    }
                }
                else
                {
                    Aux_Refuerzos[i] = Diametro1;
                    Cont_Aux1       -= 1;
                    Aux_num_barras  -= 1;
                }
                i++;
            }
            Set_Refuerzo_Seccion(Aux_Refuerzos, recub);
        }
        private void Button1_Click(object sender, EventArgs e)
        {
            if (Form1.Proyecto_ != null)
            {
                if (Form1.Proyecto_.Lista_Columnas != null)
                {
                    for (int i = 0; i < D_ColSim.Rows.Count; i++)
                    {
                        Form1.Proyecto_.Lista_Columnas[i].Maestro = (bool)D_ColSim.Rows[i].Cells[1].Value;

                        if (D_ColSim.Rows[i].Cells[2].Value != null)
                        {
                            if (D_ColSim.Rows[i].Cells[2].Value.ToString() != "")
                            {
                                if (Form1.Proyecto_.Lista_Columnas[i].resultadosETABs.Count == Form1.Proyecto_.Lista_Columnas.Find(x => x.Name == D_ColSim.Rows[i].Cells[2].Value.ToString()).resultadosETABs.Count)
                                {
                                    for (int j = 0; j < Form1.Proyecto_.Lista_Columnas[i].resultadosETABs.Count; j++)
                                    {
                                        Form1.Proyecto_.Lista_Columnas[i].resultadosETABs[j].As_asignado = Form1.Proyecto_.Lista_Columnas.Find(x => x.Name == D_ColSim.Rows[i].Cells[2].Value.ToString()).resultadosETABs[j].As_asignado;
                                        // Form1.Proyecto_.Lista_Columnas[i].resultadosETABs[j].Porct_Refuerzo = Form1.Proyecto_.Lista_Columnas.Find(x => x.Name == D_ColSim.Rows[i].Cells[2].Value.ToString()).resultadosETABs[j].Porct_Refuerzo;
                                    }

                                    Form1.Proyecto_.Lista_Columnas[i].ColSimilName = Form1.Proyecto_.Lista_Columnas.Find(x => x.Name == D_ColSim.Rows[i].Cells[2].Value.ToString()).Name;
                                    Form1.Proyecto_.Lista_Columnas[i].Alzados      = Form1.Proyecto_.Lista_Columnas.Find(x => x.Name == D_ColSim.Rows[i].Cells[2].Value.ToString()).Alzados;
                                    Form1.Proyecto_.Lista_Columnas[i].Seccions     = Form1.Proyecto_.Lista_Columnas.Find(x => x.Name == D_ColSim.Rows[i].Cells[2].Value.ToString()).Seccions;
                                }
                                else
                                {
                                    MessageBox.Show("La columna " + Form1.Proyecto_.Lista_Columnas[i].Name +
                                                    " que quiere asignar como similitud de la Columna " + D_ColSim.Rows[i].Cells[2].Value.ToString() +
                                                    " no tiene la misma cantidad de pisos.", Form1.Proyecto_.Empresa, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                                    return;
                                }
                            }
                            else
                            {
                                List <Alzado> Aux = FunctionsProject.DeepClone(Form1.Proyecto_.Lista_Columnas[i].Alzados);
                                List <Tuple <ISeccion, string> > SeccionsAux = FunctionsProject.DeepClone(Form1.Proyecto_.Lista_Columnas[i].Seccions);
                                Form1.Proyecto_.Lista_Columnas[i].Alzados      = null;
                                Form1.Proyecto_.Lista_Columnas[i].Alzados      = Aux;
                                Form1.Proyecto_.Lista_Columnas[i].Seccions     = SeccionsAux;
                                Form1.Proyecto_.Lista_Columnas[i].ColSimilName = "";

                                for (int j = 0; j < Form1.Proyecto_.Lista_Columnas[i].resultadosETABs.Count; j++)
                                {
                                    float[] Aux_AsAsing         = FunctionsProject.DeepClone(Form1.Proyecto_.Lista_Columnas[i].resultadosETABs[j].As_asignado);
                                    float[] Aux_Porcet_Refuerzo = FunctionsProject.DeepClone(Form1.Proyecto_.Lista_Columnas[i].resultadosETABs[j].Porct_Refuerzo);
                                    Form1.Proyecto_.Lista_Columnas[i].resultadosETABs[j].As_asignado    = null;
                                    Form1.Proyecto_.Lista_Columnas[i].resultadosETABs[j].Porct_Refuerzo = null;
                                    Form1.Proyecto_.Lista_Columnas[i].resultadosETABs[j].As_asignado    = Aux_AsAsing;
                                    Form1.Proyecto_.Lista_Columnas[i].resultadosETABs[j].Porct_Refuerzo = Aux_Porcet_Refuerzo;
                                }
                            }
                        }
                        else
                        {
                            List <Alzado> Aux = FunctionsProject.DeepClone(Form1.Proyecto_.Lista_Columnas[i].Alzados);
                            List <Tuple <ISeccion, string> > SeccionsAux = FunctionsProject.DeepClone(Form1.Proyecto_.Lista_Columnas[i].Seccions);
                            Form1.Proyecto_.Lista_Columnas[i].Alzados      = null;
                            Form1.Proyecto_.Lista_Columnas[i].Alzados      = Aux;
                            Form1.Proyecto_.Lista_Columnas[i].Seccions     = SeccionsAux;
                            Form1.Proyecto_.Lista_Columnas[i].ColSimilName = "";

                            for (int j = 0; j < Form1.Proyecto_.Lista_Columnas[i].resultadosETABs.Count; j++)
                            {
                                float[] Aux_AsAsing         = FunctionsProject.DeepClone(Form1.Proyecto_.Lista_Columnas[i].resultadosETABs[j].As_asignado);
                                float[] Aux_Porcet_Refuerzo = FunctionsProject.DeepClone(Form1.Proyecto_.Lista_Columnas[i].resultadosETABs[j].Porct_Refuerzo);
                                Form1.Proyecto_.Lista_Columnas[i].resultadosETABs[j].As_asignado    = null;
                                Form1.Proyecto_.Lista_Columnas[i].resultadosETABs[j].Porct_Refuerzo = null;
                                Form1.Proyecto_.Lista_Columnas[i].resultadosETABs[j].As_asignado    = Aux_AsAsing;
                                Form1.Proyecto_.Lista_Columnas[i].resultadosETABs[j].Porct_Refuerzo = Aux_Porcet_Refuerzo;
                            }
                        }
                    }
                }
                for (int i = 0; i < Form1.Proyecto_.Lista_Columnas.Count; i++)
                {
                    Form1.Proyecto_.Lista_Columnas[i].ActualizarRefuerzo();
                    Form1.Proyecto_.Lista_Columnas[i].KgRefuerzoforColumAlzado.Clear();
                    Form1.Proyecto_.Lista_Columnas[i].CrearListaPesosRefuerzos(0);
                    Form1.Proyecto_.Lista_Columnas[i].CalcularPesoAcero();
                }
                Form1.mFormPrincipal.Invalidate();
                Form1.m_Informacion.Invalidate();
            }

            Close();
        }
Пример #19
0
 public void CalcularArea()
 {
     Area = FunctionsProject.Find_As(NoEstribo);
 }