Ejemplo n.º 1
0
 //Inicializa as bitolas que serão mostradas nas comboboxes
 protected void LoadReinforcingBarOptions()
 {
     ReinforcingBar.Add(4.2);
     ReinforcingBar.Add(5.0);
     ReinforcingBar.Add(6.3);
     ReinforcingBar.Add(8.0);
     ReinforcingBar.Add(10.0);
     ReinforcingBar.Add(12.5);
     ReinforcingBar.Add(16.0);
     ReinforcingBar.Add(20.0);
     ReinforcingBar.Add(25.0);
 }
        public List <InteractionDiagramItem> InteractionDiagramItems()
        {
            RcRectangularSection          RcSection = new RcRectangularSection(SectionGeometry, Concrete, Steel, ReinforcingBars);
            List <InteractionDiagramItem> items     = new List <InteractionDiagramItem>();

            double interval       = 0.005;
            int    NumberOfPoints = (int)Math.Truncate(1.20 * SectionGeometry.h / interval);
            double cMax           = ReinforcingBars.Max(bar => bar.di);

            for (int i = 0; i < NumberOfPoints; i++)
            {
                double        c = i * interval;
                List <double> ReinforcingStrains = new List <double>();

                for (int j = 0; j < ReinforcingBars.Count; j++)
                {
                    ReinforcingBar reBar       = ReinforcingBars[j];
                    double         SteelStrain = RcSection.ReinforcingStrain(c, reBar.di);
                    ReinforcingStrains.Add(SteelStrain);
                }

                double actualPhi = StrengthReductionFactor.CalculateActualPhi(Code, RcSection.MaxRebarStrain(ReinforcingStrains));

                if (RcSection.AxialCapacity(c) < RcSection.NominalPmax())
                {
                    items.Add(new InteractionDiagramItem(RcSection.MomentCapacity(c), RcSection.AxialCapacity(c), actualPhi, Concrete.k1 * c));
                }
            }

            items.Insert(0, new InteractionDiagramItem(RcSection.NominalMmin(), RcSection.NominalPmin(), StrengthReductionFactor.phiB, 0.00));

            items.Add(new InteractionDiagramItem(RcSection.NominalMmax(), RcSection.NominalPmax(), StrengthReductionFactor.phiC, Concrete.k1 * cMax));

            ActualPmax = StrengthReductionFactor.phiA * StrengthReductionFactor.phiC * RcSection.NominalPmax();

            return(items);
        }