Exemple #1
0
 public static double ElastSectModTop(double bft, double tft, double D, double tw, double bfb, double tfb, double bslab, double tslab, double n, double Asteel1, double Asteel2, double distSteel1, double distSteel2, double haunchDepth, double haunchWidth)
 {
     Ytf  = CompProperties.PartCG(tfb, D, 0, 0, tft);
     NA   = CompProperties.NeutralAxis(bft, tft, D, tw, bfb, tfb, bslab, tslab, n, Asteel1, Asteel2, distSteel1, distSteel2, haunchDepth, haunchWidth);
     I    = CompProperties.MomentOfIneria(bft, tft, D, tw, bfb, tfb, bslab, tslab, n, Asteel1, Asteel2, distSteel1, distSteel2, haunchDepth, haunchWidth);
     Stop = I / (Ytf - NA + tft / 2);
     return(Stop);
 }
Exemple #2
0
 public static double ElastSectModBot(double bft, double tft, double D, double tw, double bfb, double tfb, double bslab, double tslab, double n, double Asteel1, double Asteel2, double distSteel1, double distSteel2, double haunchDepth, double haunchWidth)
 {
     Ybf  = NCProperties.PartCG(0, 0, tfb);
     NA   = CompProperties.NeutralAxis(bft, tft, D, tw, bfb, tfb, bslab, tslab, n, Asteel1, Asteel2, distSteel1, distSteel2, haunchDepth, haunchWidth);
     I    = CompProperties.MomentOfIneria(bft, tft, D, tw, bfb, tfb, bslab, tslab, n, Asteel1, Asteel2, distSteel1, distSteel2, haunchDepth, haunchWidth);
     Sbot = I / (NA - Ybf + tfb / 2);
     return(Sbot);
 }
Exemple #3
0
 public static double MomentOfIneria(double bft, double tft, double D, double tw, double bfb, double tfb, double bslab, double tslab, double n, double Asteel1, double Asteel2, double distSteel1, double distSteel2, double haunchDepth, double haunchWidth)
 {
     Atf     = CompProperties.PartArea(bft, tft, 1);
     Aweb    = CompProperties.PartArea(D, tw, 1);
     Abf     = CompProperties.PartArea(bfb, tfb, 1);
     Ahaunch = CompProperties.PartArea(haunchWidth, haunchDepth, 1 / n);
     Aslab   = CompProperties.PartArea(tslab, bslab, 1 / n);
     Ytf     = CompProperties.PartCG(tfb, D, 0, 0, tft);
     Yweb    = CompProperties.PartCG(tfb, 0, 0, 0, D);
     Ybf     = CompProperties.PartCG(0, 0, 0, 0, tfb);
     Yhaunch = CompProperties.PartCG(tfb, D, tft, 0, haunchDepth);
     Yslab   = CompProperties.PartCG(tfb, D, tft, haunchDepth, tslab);
     Ysteel1 = CompProperties.SteelCG(bft, D, tft, haunchDepth, tslab, distSteel1);
     Ysteel2 = CompProperties.SteelCG(bft, D, tft, haunchDepth, tslab, distSteel2);
     NA      = CompProperties.NeutralAxis(bft, tft, D, tw, bfb, tfb, bslab, tslab, n, Asteel1, Asteel2, distSteel1, distSteel2, haunchDepth, haunchWidth);
     Itf     = CompProperties.PartMomOfInert(bft, tft, 1);
     Iweb    = CompProperties.PartMomOfInert(tw, D, 1);
     Ibf     = CompProperties.PartMomOfInert(bfb, tfb, 1);
     Ihaunch = CompProperties.PartMomOfInert(haunchWidth, haunchWidth, n);
     Islab   = CompProperties.PartMomOfInert(bslab, tslab, n);
     I       = Itf + Atf * Math.Pow(Ytf - NA, 2) + Iweb + Aweb * Math.Pow(Yweb - NA, 2) + Ibf + Abf * Math.Pow(Ybf - NA, 2) + Ihaunch + Ahaunch * Math.Pow(Yhaunch - NA, 2) + Islab + Aslab * Math.Pow(Yslab - NA, 2) + Asteel1 * Math.Pow(Ysteel1 - NA, 2) + Asteel2 * Math.Pow(Ysteel2 - NA, 2);
     return(I);
 }
Exemple #4
0
        public static void Main(string[] args)
        {
            Console.WriteLine("Enter Number of Beams : ");
            int NoBeams = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Enter Beam Yield Stress, Fy (ksi) : ");
            double Fy = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Enter Slab Compressive Stress, f'c (ksi) : ");
            double fc = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Enter Rebar Yield Stress, fs (ksi) : ");
            double fs = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Enter Beam modular ratio, n : ");
            double n = Convert.ToDouble(Console.ReadLine());

            double[,] table;
            table = new double[11, NoBeams];
            for (int i = 0; i < NoBeams; i++)
            {
                Console.WriteLine("Enter Beam {0} effective slab width, bslab (in) : ", i + 1);
                double bslab = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Enter Beam {0} structural slab thickness, tslab (in) : ", i + 1);
                double tslab = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Enter Beam {0} haunch width, bhaunch (in) : ", i + 1);
                double haunchWidth = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Enter Beam {0} haunch depth, thaunch (in) : ", i + 1);
                double haunchDepth = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Enter Beam {0} top rebar area, As1 (in^2) : ", i + 1);
                double Asteel1 = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Enter Beam {0} top rebar depth from top of slab, d1 (in) : ", i + 1);
                double distSteel1 = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Enter Beam {0} botom rebar area, As2 (in^2) : ", i + 1);
                double Asteel2 = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Enter Beam {0} bottom rebar depth from top of slab, d2 (in) : ", i + 1);
                double distSteel2 = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Enter Beam {0} top flange width, bft (in) : ", i + 1);
                double bft = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Enter Beam {0} top flange thickness, tft (in) : ", i + 1);
                double tft = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Enter Beam {0} web depth, D (in) : ", i + 1);
                double D = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Enter Beam {0} web thickness, tw (in) : ", i + 1);
                double tw = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Enter Beam {0} bottom flange width, bfb (in) : ", i + 1);
                double bfb = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Enter Beam {0} bottom flange thickness, tfb (in) : ", i + 1);
                double tfb = Convert.ToDouble(Console.ReadLine());

                double area = CompProperties.BeamArea(bft, tft, D, tw, bfb, tfb, bslab, tslab, n, Asteel1, Asteel2, haunchDepth, haunchWidth);
                table[0, i] = area;
                double NA = CompProperties.NeutralAxis(bft, tft, D, tw, bfb, tfb, bslab, tslab, n, Asteel1, Asteel2, distSteel1, distSteel2, haunchDepth, haunchWidth);
                table[1, i] = NA;
                double I = CompProperties.MomentOfIneria(bft, tft, D, tw, bfb, tfb, bslab, tslab, n, Asteel1, Asteel2, distSteel1, distSteel2, haunchDepth, haunchWidth);
                table[2, i] = I;
                double Stop = CompProperties.ElastSectModTop(bft, tft, D, tw, bfb, tfb, bslab, tslab, n, Asteel1, Asteel2, distSteel1, distSteel2, haunchDepth, haunchWidth);
                table[3, i] = Stop;
                double Sbot = CompProperties.ElastSectModBot(bft, tft, D, tw, bfb, tfb, bslab, tslab, n, Asteel1, Asteel2, distSteel1, distSteel2, haunchDepth, haunchWidth);
                table[4, i] = Sbot;
                double PNA = CompProperties.PlastNeutralAxis(Fy, fc, fs, bft, tft, D, tw, bfb, tfb, bslab, tslab, n, Asteel1, Asteel2, distSteel1, distSteel2, haunchDepth, haunchWidth);
                table[5, i] = PNA;
                double PFt = CompProperties.PlastForceTop(Fy, fc, fs, bft, tft, D, tw, bfb, tfb, bslab, tslab, n, Asteel1, Asteel2, distSteel1, distSteel2, haunchDepth, haunchWidth);
                table[6, i] = PFt;
                double PFb = CompProperties.PlastForceBot(Fy, fc, fs, bft, tft, D, tw, bfb, tfb, bslab, tslab, n, Asteel1, Asteel2, distSteel1, distSteel2, haunchDepth, haunchWidth);
                table[7, i] = PFb;
                double PCGtop = CompProperties.PNAtoTopCG(Fy, fc, fs, bft, tft, D, tw, bfb, tfb, bslab, tslab, n, Asteel1, Asteel2, distSteel1, distSteel2, haunchDepth, haunchWidth);
                table[8, i] = PCGtop;
                double PCGBot = CompProperties.PNAtoBotCG(Fy, fc, fs, bft, tft, D, tw, bfb, tfb, bslab, tslab, n, Asteel1, Asteel2, distSteel1, distSteel2, haunchDepth, haunchWidth);
                table[9, i] = PCGBot;
                double Mp = CompProperties.PlastMoment(Fy, fc, fs, bft, tft, D, tw, bfb, tfb, bslab, tslab, n, Asteel1, Asteel2, distSteel1, distSteel2, haunchDepth, haunchWidth);
                table[10, i] = Mp;
            }
            for (int j = 0; j < NoBeams; j++)
            {
                Console.WriteLine("*********** BEAM {0} SECTION PROPERTIES***********", j + 1);
                Console.WriteLine("Area of Beam is {0} in^2", Math.Round(table[0, j], 2));
                Console.WriteLine("Elastic Neutral Axis is {0} in", Math.Round(table[1, j], 2));
                Console.WriteLine("Elastic Moment of Inertia is {0} in^4", Math.Round(table[2, j], 2));
                Console.WriteLine("Elastic Section Modulus of Top Flange is {0} in^3", Math.Round(table[3, j], 2));
                Console.WriteLine("Elastic Section Modulus of Bottom Flange is {0} in^3", Math.Round(table[4, j], 2));
                Console.WriteLine("Plastic Neutral Axis is {0} in", Math.Round(table[5, j], 2));
                Console.WriteLine("Force Above PNA is {0} kips", Math.Round(table[6, j], 2));
                Console.WriteLine("Distance to Force Above PNA is {0} in", Math.Round(table[8, j], 2));
                Console.WriteLine("Force Below PNA is {0} kips", Math.Round(table[7, j], 2));
                Console.WriteLine("Distance to Force Below PNA is {0} in", Math.Round(table[9, j], 2));
                Console.WriteLine("Plastic Moment is {0} kip-ft", Math.Round(table[10, j], 2));
                Console.WriteLine("");
            }
            Console.Read();
        }