示例#1
0
        private void Cuantia_Volumetrica()
        {
            int NumEstribo = 0;
            int pos        = 0;

            pos        = cbEstribo.Text.IndexOf('#') + 1;
            NumEstribo = Convert.ToInt32(cbEstribo.Text.Substring(pos));

            if (Seccion.Estribo == null)
            {
            }

            Estribo temp = new Estribo(NumEstribo);

            if (nudSep.Value > 0)
            {
                temp.Separacion = (float)nudSep.Value;
            }
            else
            {
                temp.Separacion = Seccion.Estribo.Separacion;
            }

            Seccion.Estribo = temp;

            Seccion.Estribo = temp;

            float FD1, FD2;

            if (gde == GDE.DMO)
            {
                FD1 = 0.20f;
                FD2 = 0.06f;
            }
            else
            {
                FD1 = 0.30f;
                FD2 = 0.09f;
            }

            Seccion.Cuanti_Vol(FD1, FD2, 0.04f, 4220);

            if (Seccion.Shape == TipodeSeccion.Rectangular)
            {
                nuCX.Value = Seccion.Estribo.NoRamasV1;
                nuCY.Value = Seccion.Estribo.NoRamasH1;
            }

            if (Seccion.Shape == TipodeSeccion.Tee | Seccion.Shape == TipodeSeccion.L)
            {
                nuCX.Value  = Seccion.Estribo.NoRamasV1;
                nuCY.Value  = Seccion.Estribo.NoRamasH1;
                nuCXw.Value = Seccion.Estribo.NoRamasV2;
                nuCYw.Value = Seccion.Estribo.NoRamasH2;
            }
        }
 public double Peso_Estribo(Estribo pEstribo, float recubrimiento, int Cantidad)
 {
     return(0);
 }
        public void Calc_vol_inex(float r, float FY, GDE gDE)
        {
            float FD1, FD2;

            if (gDE == GDE.DMO)
            {
                FD1 = 0.08f;
                FD2 = 0.08f;
            }
            else
            {
                FD1 = 0.12f;
                FD2 = 0.12f;
            }

            int    pasos;
            int    Indice_min;
            double s_max, s_min, s_d;
            double Ast1, Ast2, G_As1, G_As2;
            float  delta = 0.50f;

            var Num_Ramas_V = new List <int>();    //Numero de ramas en altura del muro para ambos casos de ast
            var GT_As1      = new List <double>(); //Longitud total de los gancho para As1, bajo cada una de las variaciones de la separacion
            var GT_As2      = new List <double>(); //Longitud total de los gancho para As1, bajo cada una de las variaciones de la separacion

            var P_As1 = new List <double>();       //Peso total As1
            var P_As2 = new List <double>();       //Peso total As2

            var Sep = new List <double>();

            Ast1 = 0.71; //Estribo #3
            Ast2 = 1.29; //Estribo #4

            s_min = 7.5;
            s_max = gDE == GDE.DMO ? 2 * radio * 100 / 3 : 2 * radio * 100 / 4;

            G_As1 = 2 * Math.PI * 2 * (radio - r) * 100 + 2 * 14;   //Longitud de gancho a 180 de #3
            G_As2 = 2 * Math.PI * 2 * (radio - r) * 100 + 2 * 16.7; //Longitud de gancho a 180 de #3

            pasos = Convert.ToInt32((s_max - s_min) / delta);
            s_d   = s_min;

            for (int i = 0; i < pasos; i++)
            {
                #region Estribo #3

                Estribo = new Estribo(3) //Estribo temporal
                {
                    Separacion = Convert.ToSingle(s_d)
                };

                Num_Ramas_V.Add(Convert.ToInt32(100 / s_d) + 1);
                Cuanti_Vol(FD1, FD2, r, FY);

                GT_As1.Add(Num_Ramas_V.Last() * (G_As1 * Estribo.NoRamasV1));
                P_As1.Add(GT_As1.Last() * Ast1 * 7850 / Math.Pow(100, 3));

                #endregion Estribo #3

                #region Estribo #4

                Estribo = new Estribo(4) //Estribo temporal
                {
                    Separacion = Convert.ToSingle(s_d)
                };
                Cuanti_Vol(FD1, FD2, r, FY);

                GT_As2.Add(Num_Ramas_V.Last() * (G_As2 * Estribo.NoRamasV1));
                P_As2.Add(GT_As2.Last() * Ast2 * 7850 / Math.Pow(100, 3));

                #endregion Estribo #4

                Sep.Add(s_d);
                s_d += delta;
            }

            if (P_As1.Min() < P_As2.Min())
            {
                Indice_min = P_As1.FindIndex(x => x == P_As1.Min());
                Estribo    = new Estribo(3)
                {
                    Separacion = Convert.ToSingle(Sep[Indice_min])
                };
            }
            else
            {
                Indice_min = P_As2.FindIndex(x => x == P_As2.Min());
                Estribo    = new Estribo(4)
                {
                    Separacion = Convert.ToSingle(Sep[Indice_min])
                };
            }
        }