Пример #1
0
        public ConcreteSectionCompression GetConcreteExampleColumn()
        {
            double b   = 16;
            double h   = 16;
            double f_c = 5000;

            List <RebarPoint> LongitudinalBars = new List <RebarPoint>();

            Rebar      thisBar1 = new Rebar(4, new MaterialAstmA615(A615Grade.Grade60));
            RebarPoint point1   = new RebarPoint(thisBar1, new RebarCoordinate()
            {
                X = 0, Y = -h / 2.0 + 2.5
            });

            LongitudinalBars.Add(point1);


            Rebar      thisBar2 = new Rebar(4, new MaterialAstmA615(A615Grade.Grade60));
            RebarPoint point2   = new RebarPoint(thisBar2, new RebarCoordinate()
            {
                X = 0, Y = h / 2.0 - 2.5
            });

            LongitudinalBars.Add(point2);

            //ConcreteSectionCompression column = GetConcreteCompressionMember(b, h, f_c, LongitudinalBars, CompressionMemberType.NonPrestressedWithTies);
            ConcreteSectionCompression column = GetConcreteCompressionMember(b, h, f_c, LongitudinalBars, ConfinementReinforcementType.Ties);

            return(column);
        }
        public ConcreteSectionFlexure GetConcreteBeam(double Width, double Height, double fc, bool IsBottomReinforced,
                                                      params RebarInput[] rebarInput)
        {
            IConcreteSection Section = GetRectangularSection(Width, Height, fc);

            List <RebarPoint> LongitudinalBars = new List <RebarPoint>();

            if (IsBottomReinforced == true)
            {
                foreach (var bar in rebarInput)
                {
                    Rebar      thisBar = new Rebar(bar.Area, new MaterialAstmA615(A615Grade.Grade60));
                    RebarPoint point   = new RebarPoint(thisBar, new RebarCoordinate()
                    {
                        X = 0, Y = -Height / 2.0 + bar.Cover
                    });
                    LongitudinalBars.Add(point);
                }
            }
            else
            {
                foreach (var bar in rebarInput)
                {
                    Rebar      thisBar = new Rebar(bar.Area, new MaterialAstmA615(A615Grade.Grade60));
                    RebarPoint point   = new RebarPoint(thisBar, new RebarCoordinate()
                    {
                        X = 0, Y = Height / 2.0 - bar.Cover
                    });
                    LongitudinalBars.Add(point);
                }
            }
            ConcreteSectionFlexure beam = new ConcreteSectionFlexure(Section, LongitudinalBars, log, ConfinementReinforcementType.NoReinforcement);

            return(beam);
        }
        public void BeamReturnsphiMn()
        {
            var ConcreteMaterial = new Kodestruct.Concrete.ACI318_14.Materials.ConcreteMaterial(6000, ACI.Entities.ConcreteTypeByWeight.Normalweight, null);

            FlexuralSectionFactory flexureFactory = new FlexuralSectionFactory();
            double b   = 16;
            double h   = 40;
            double f_y = 60000;
            RebarMaterialGeneral LongitudinalRebarMaterial = new RebarMaterialGeneral(f_y);

            List <RebarPoint> LongitudinalBars = new List <RebarPoint>();

            Rebar      TopRebar = new Rebar(4, LongitudinalRebarMaterial);
            RebarPoint TopPoint = new RebarPoint(TopRebar, new RebarCoordinate()
            {
                X = 0, Y = h / 2.0 - 3
            });

            LongitudinalBars.Add(TopPoint);

            Rebar      BottomRebar = new Rebar(4, LongitudinalRebarMaterial);
            RebarPoint BottomPoint = new RebarPoint(BottomRebar, new RebarCoordinate()
            {
                X = 0, Y = -h / 2.0 + 3
            });

            LongitudinalBars.Add(BottomPoint);

            CrossSectionRectangularShape shape = new CrossSectionRectangularShape(ConcreteMaterial, null, b, h);

            IConcreteFlexuralMember fs = new ConcreteSectionFlexure(shape, LongitudinalBars, null,
                                                                    ConfinementReinforcementType.Ties);

            ConcreteFlexuralStrengthResult result = fs.GetDesignFlexuralStrength(FlexuralCompressionFiberPosition.Top);
        }
        public ConcreteSectionFlexure GetNonPrestressedDoublyReinforcedRectangularSection(double b, double h,
                                                                                          double A_s1, double A_s2, double c_cntr1, double c_cntr2,
                                                                                          double A_s_prime1, double A_s_prime2, double c_cntr_prime1, double c_cntr_prime2,
                                                                                          ConcreteMaterial concrete, IRebarMaterial rebar, ConfinementReinforcementType ConfinementReinforcementType)
        {
            CrossSectionRectangularShape Section          = new CrossSectionRectangularShape(concrete, null, b, h);
            List <RebarPoint>            LongitudinalBars = new List <RebarPoint>();

            Rebar      bottom1      = new Rebar(A_s1, rebar);
            RebarPoint pointBottom1 = new RebarPoint(bottom1, new RebarCoordinate()
            {
                X = 0, Y = -h / 2.0 + c_cntr1
            });

            LongitudinalBars.Add(pointBottom1);


            if (A_s2 != 0)
            {
                Rebar      bottom2      = new Rebar(A_s2, rebar);
                RebarPoint pointBottom2 = new RebarPoint(bottom2, new RebarCoordinate()
                {
                    X = 0, Y = -h / 2.0 + c_cntr2
                });
                LongitudinalBars.Add(pointBottom2);
            }

            if (A_s_prime1 != 0)
            {
                Rebar      top1      = new Rebar(A_s_prime1, rebar);
                RebarPoint pointTop1 = new RebarPoint(top1, new RebarCoordinate()
                {
                    X = 0, Y = h / 2.0 - c_cntr_prime1
                });
                LongitudinalBars.Add(pointTop1);
            }

            if (A_s_prime2 != 0)
            {
                Rebar      top2      = new Rebar(A_s_prime2, rebar);
                RebarPoint pointTop2 = new RebarPoint(top2, new RebarCoordinate()
                {
                    X = 0, Y = h / 2.0 - c_cntr_prime2
                });
                LongitudinalBars.Add(pointTop2);
            }

            CalcLog log = new CalcLog();
            ConcreteSectionFlexure beam = new ConcreteSectionFlexure(Section, LongitudinalBars, log, ConfinementReinforcementType);

            return(beam);
        }
        private List <RebarPoint> GetLongitudinalBarsFromCoordinates(IRebarMaterial LongitudinalRebarMaterial)
        {
            List <RebarPoint> points     = new List <RebarPoint>();
            List <double>     RebarAreas = new List <double>()
            {
                5.04,
                5.04,
                5.04,
                5.04,
                5.04,
                5.04,
                5.04,
                5.04,
                5.04,
                2,
                2,
                2,
                2,
                0.576,
            };
            List <double> RebarYs = new List <double>()
            {
                -117,
                -104.25,
                -91.5,
                -78.75,
                -66,
                -53.25,
                -40.5,
                -27.75,
                -15,
                -9,
                31,
                71,
                111,
                117,
            };

            for (int i = 0; i < RebarAreas.Count(); i++)
            {
                RebarPoint pnt = new RebarPoint(new Rebar(RebarAreas[i], LongitudinalRebarMaterial), new RebarCoordinate(0, RebarYs[i]));
                points.Add(pnt);
            }
            return(points);
        }
Пример #6
0
        public ConcreteSectionFlexure GetConcreteBeam(double Width, double Height, double fc, params RebarInput[] rebarInput)
        {
            IConcreteSection Section = GetRectangularSection(Width, Height, fc);

            List <RebarPoint> LongitudinalBars = new List <RebarPoint>();

            foreach (var bar in rebarInput)
            {
                Rebar      thisBar = new Rebar(bar.Area, new MaterialAstmA615(A615Grade.Grade60));
                RebarPoint point   = new RebarPoint(thisBar, new RebarCoordinate()
                {
                    X = 0, Y = -Height / 2.0 + bar.Cover
                });
                LongitudinalBars.Add(point);
            }

            ConcreteSectionFlexure beam = new ConcreteSectionFlexure(Section, LongitudinalBars, log);

            return(beam);
        }