예제 #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
 public CCirculo(string Nombre, double pradio, double[] pCentro, MAT_CONCRETE Material_, TipodeSeccion Shape_, List <float[]> pCoord)
 {
     Name               = Nombre;
     Material           = Material_;
     Shape              = Shape_;
     radio              = pradio;
     Centro             = pCentro;
     CoordenadasSeccion = pCoord;
     CalcularArea();
 }
예제 #3
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);
            }
        }
        private void Crear_Seccion(string Tipo_Seccion, float b, float h, float tw, float tf, float r)
        {
            ISeccion       N_Seccion = null;
            string         Nombre_Seccion = "";
            GDE            gde = GDE.DMO;
            List <float[]> Vertices_Temp = new List <float[]>();
            List <float[]> Vertices = new List <float[]>();
            double         Xc, Yc;
            double         Numerador, Denominador;

            MAT_CONCRETE material = new MAT_CONCRETE()
            {
                Name = "H" + tbFc.Text,
                FC   = Convert.ToSingle(tbFc.Text)
            };

            if (Radio_Dmo.Checked)
            {
                gde = GDE.DMO;
            }

            if (Radio_Des.Checked)
            {
                gde = GDE.DES;
            }

            if (Tipo_Seccion == TipodeSeccion.Rectangular.ToString())
            {
                Nombre_Seccion = $"C{b}X{h}{material.Name}";
                N_Seccion      = new CRectangulo(Nombre_Seccion, b / 100, h / 100, material, TipodeSeccion.Rectangular, null);
                N_Seccion.Calc_vol_inex(r / 100, 4220, gde);
                N_Seccion.Refuerzo_Base(r);
            }

            if (Tipo_Seccion == TipodeSeccion.Circle.ToString())
            {
                Nombre_Seccion = $"C{b}{material.Name}";
                N_Seccion      = new CCirculo(Nombre_Seccion, b / 200, new double[] { 0, 0 }, material, TipodeSeccion.Circle, null);
                N_Seccion.Calc_vol_inex(r / 100, 4220, gde);
                N_Seccion.Refuerzo_Base(r);
            }

            if (Tipo_Seccion == TipodeSeccion.Tee.ToString() | Tipo_Seccion == TipodeSeccion.L.ToString())
            {
                Nombre_Seccion = $"C{b}X{h}X{tw}X{tf}{Tipo_Seccion}{material.Name}";

                if (Tipo_Seccion == TipodeSeccion.Tee.ToString())
                {
                    Vertices_Temp.Add(new float[] { 0, h / 200 });
                    Vertices_Temp.Add(new float[] { 0, (h - tw) / 200 });
                    Vertices_Temp.Add(new float[] { (b - tf) / 400, (h - tw) / 200 });
                    Vertices_Temp.Add(new float[] { (b - tf) / 400, 0 });
                    Vertices_Temp.Add(new float[] { (b + tf) / 400, 0 });
                    Vertices_Temp.Add(new float[] { (b + tf) / 400, (h - tw) / 200 });
                    Vertices_Temp.Add(new float[] { b / 200, (h - tw) / 200 });
                    Vertices_Temp.Add(new float[] { b / 200, h / 200 });

                    Numerador   = ((b / 2) * b * tw) + ((b / 2) * (tf * (h - tw)));
                    Denominador = (b * tw) + (tf * (h - tw));

                    Xc = b / 200;

                    double y1 = (h - tw) * (h - tw) * tf / 2;
                    double y2 = (h - (tw / 2)) * b * tw;

                    Numerador   = y1 + y2;
                    Denominador = (b * tw) + (tf * (h - tw));

                    Yc = h / 200;

                    for (int i = 0; i < Vertices_Temp.Count; i++)
                    {
                        var Aux = B_Operaciones_Matricialesl.Operaciones.Traslacion(Vertices_Temp[i][0] - Xc, Vertices_Temp[i][1] - Yc, Vertices_Temp[i][0], Vertices_Temp[i][1]);
                        Vertices.Add(new float[] { (float)Aux[0], (float)Aux[1] });
                    }

                    N_Seccion = new CSD(Nombre_Seccion, b / 100, h / 100, tw / 100, tf / 100, material, TipodeSeccion.Tee, Vertices);
                }

                if (Tipo_Seccion == TipodeSeccion.L.ToString())
                {
                    Vertices_Temp.Add(new float[] { 0, 0 });
                    Vertices_Temp.Add(new float[] { b / 200, 0 });
                    Vertices_Temp.Add(new float[] { b / 200, tw / 200 });
                    Vertices_Temp.Add(new float[] { tf / 200, tw / 200 });
                    Vertices_Temp.Add(new float[] { tf / 200, h / 200 });
                    Vertices_Temp.Add(new float[] { 0, h / 200 });

                    Numerador   = ((b / 2) * b * tw) + ((tf / 2) * (tf * (h - tw)));
                    Denominador = (b * tw) + (tf * (h - tw));

                    Xc = b / 200;

                    Numerador   = ((tw / 2) * b * tw) + ((h + tf / 2) * (tf * (h - tw)));
                    Denominador = (b * tw) + (tf * (h - tw));

                    Yc = h / 200;

                    for (int i = 0; i < Vertices_Temp.Count; i++)
                    {
                        var Aux = B_Operaciones_Matricialesl.Operaciones.Traslacion(Vertices_Temp[i][0] - Xc, Vertices_Temp[i][1] - Yc, Vertices_Temp[i][0], Vertices_Temp[i][1]);
                        Vertices.Add(new float[] { (float)Aux[0], (float)Aux[1] });
                    }

                    N_Seccion = new CSD(Nombre_Seccion, b / 100, h / 100, tw / 100, tf / 100, material, TipodeSeccion.L, Vertices);
                }

                N_Seccion.Calc_vol_inex(r / 100, 4220, gde);
                N_Seccion.Refuerzo_Base(r);
            }

            if (N_Seccion != null)
            {
                if (Radio_Dmo.Checked)
                {
                    if (Form1.secciones_predef.Secciones_DMO.Exists(x => x.Equals(N_Seccion)) == false)
                    {
                        Form1.secciones_predef.Secciones_DMO.Add(N_Seccion);
                    }
                }
                if (Radio_Des.Checked)
                {
                    if (Form1.secciones_predef.Secciones_DES.Exists(x => x.Equals(N_Seccion)) == false)
                    {
                        Form1.secciones_predef.Secciones_DES.Add(N_Seccion);
                    }
                }
            }
        }
예제 #5
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
            }
        }
예제 #6
0
        public static CRectangulo Crear_Seccion_DES(string Nombre_seccion, float b, float h, float tw, float tf, MAT_CONCRETE material, int[] Diametros_Seccion, int CapasX, int CapasY, int CapasXw, int CapasYw)
        {
            CRectangulo temp = new CRectangulo(Nombre_seccion, b / 100, h / 100, material, TipodeSeccion.Rectangular, new List <float[]>());

            temp.Refuerzos  = Set_Refuerzo_Seccion(Diametros_Seccion, CapasX, CapasY, CapasXw, CapasYw, b, h, tw, tf);
            temp.Acero_Long = temp.Refuerzos.Sum(X => X.As_Long);

            temp.Estribo = new Estribo(3)
            {
                NoRamasH1 = CapasY,
                NoRamasV1 = CapasX
            };

            temp.Calc_vol_inex(r: 0.04f, FY: 4220, gDE: GDE.DES);
            return(temp);
        }