コード例 #1
0
        public ISteelCompressionMember GetIshape(ISteelSection Section, bool IsRolled, double L_x, double L_y, double L_z, ICalcLog CalcLog)
        {
            ISteelCompressionMember column         = null;
            IShapeCompactness       compactnessTop = new ShapeCompactness.IShapeMember(Section, IsRolled, Common.Section.Interfaces.FlexuralCompressionFiberPosition.Top);
            IShapeCompactness       compactnessBot = new ShapeCompactness.IShapeMember(Section, IsRolled, Common.Section.Interfaces.FlexuralCompressionFiberPosition.Bottom);
            ICalcLog Log = new CalcLog();


            CompactnessClassAxialCompression flangeCompactnessTop = compactnessTop.GetFlangeCompactnessCompression();
            CompactnessClassAxialCompression flangeCompactnessBot = compactnessTop.GetFlangeCompactnessCompression();
            CompactnessClassAxialCompression webCompactness       = compactnessTop.GetWebCompactnessCompression();

            if (flangeCompactnessTop == CompactnessClassAxialCompression.NonSlender && webCompactness == CompactnessClassAxialCompression.NonSlender &&
                flangeCompactnessBot == CompactnessClassAxialCompression.NonSlender)
            {
                column = new IShapeCompact(Section, IsRolled, L_x, L_y, L_z, Log);
                //if (IShape.b_fBot == IShape.b_fTop && IShape.t_fBot == IShape.t_fTop)
                //{
                //    return new IShapeCompact(SectionI, IsRolledShape, L_ex, L_ey, L_ez, log);
                //}
                //else
                //{
                //    throw new NotImplementedException();
                //}
            }
            else
            {
                column = new IShapeSlenderElements(Section, IsRolled, L_x, L_y, L_z, Log);
            }
            return(column);
        }
コード例 #2
0
        private void CreateColumn(double L_ex, double L_ey, double L_ez = 0)
        {
            CompressionMemberFactory factory      = new CompressionMemberFactory();
            AiscShapeFactory         ShapeFactory = new AiscShapeFactory();
            ISection      section = ShapeFactory.GetShape("PIPE8SCH80");
            SteelMaterial mat     = new SteelMaterial(35.0, 29000);

            L_ez   = L_ez == 0? L_ex : L_ez;
            column = factory.GetCompressionMember(section, mat, L_ex, L_ey, L_ez);
        }
コード例 #3
0
        private void CreateColumn(double L_ex, double L_ey, double L_ez = 0)
        {
            CompressionMemberFactory factory          = new CompressionMemberFactory();
            AiscShapeFactory         AiscShapeFactory = new AiscShapeFactory();
            ISection      section = AiscShapeFactory.GetShape("HSS8X6X.500", ShapeTypeSteel.RectangularHSS);
            SteelMaterial mat     = new SteelMaterial(46.0, 29000);

            L_ez   = L_ez == 0? L_ex : L_ez;
            column = factory.GetCompressionMember(section, mat, L_ex, L_ey, L_ez);
        }
コード例 #4
0
        private void CreateColumn(double L_ex, double L_ey, double L_ez = 0, string Shape = "W14X82")
        {
            CompressionMemberFactory factory = new CompressionMemberFactory();
            AiscShapeFactory AiscShapeFactory = new AiscShapeFactory();
            ISection section = AiscShapeFactory.GetShape(Shape, ShapeTypeSteel.IShapeRolled);
            SteelMaterial mat = new SteelMaterial(50.0,29000);
            L_ez = L_ez == 0? L_ex : L_ez;
            column = factory.GetCompressionMember(section,mat, L_ex, L_ey, L_ez);

        }
コード例 #5
0
        private void CreateColumn(double L_ex, double L_ey, double L_ez=0)
        {
            CompressionMemberFactory factory = new CompressionMemberFactory();
            AiscShapeFactory AiscShapeFactory = new AiscShapeFactory();
            ISection section = AiscShapeFactory.GetShape("HSS8X6X.500", ShapeTypeSteel.RectangularHSS);
            SteelMaterial mat = new SteelMaterial(46.0,29000);
            L_ez = L_ez == 0? L_ex : L_ez;
            column = factory.GetCompressionMember(section,mat, L_ex, L_ey, L_ez);

        }
コード例 #6
0
        private void CreateColumn(double L_ex, double L_ey, double L_ez = 0, string Shape = "W14X82")
        {
            CompressionMemberFactory factory = new CompressionMemberFactory();
            AiscShapeFactory AiscShapeFactory = new AiscShapeFactory();
            ISection section = AiscShapeFactory.GetShape(Shape, ShapeTypeSteel.IShapeRolled);
            SteelMaterial mat = new SteelMaterial(50.0,29000);
            L_ez = L_ez == 0? L_ex : L_ez;
            column = factory.GetCompressionMember(section,mat, L_ex, L_ey, L_ez);

        }
コード例 #7
0
        private void CreateColumn(double L_ex, double L_ey, double L_ez = 0)
        {
            double        d   = 17.0;
            double        b_f = 8.0;
            double        t_f = 1.0;
            double        t_w = 0.25;
            ISection      r   = new SectionI("", d, b_f, t_f, t_w);
            SteelMaterial mat = new SteelMaterial(50.0, 29000);

            L_ez = L_ez == 0? L_ex : L_ez;
            CompressionMemberFactory factory = new CompressionMemberFactory();

            column = factory.GetCompressionMember(r, mat, L_ex, L_ey, L_ez);
        }
コード例 #8
0
        public ISteelCompressionMember GetChsShape(ISteelSection Section, double L_x, double L_y, double L_z, ICalcLog CalcLog)
        {
            ISteelCompressionMember column       = null;
            IShapeCompactness       compactnessX = new ShapeCompactness.HollowMember(Section, Common.Section.Interfaces.FlexuralCompressionFiberPosition.Top, Common.Entities.MomentAxis.XAxis);
            IShapeCompactness       compactnessY = new ShapeCompactness.HollowMember(Section, Common.Section.Interfaces.FlexuralCompressionFiberPosition.Top, Common.Entities.MomentAxis.YAxis);
            ICalcLog Log = new CalcLog();

            CompactnessClassAxialCompression webCompactnessX = compactnessX.GetWebCompactnessCompression();
            CompactnessClassAxialCompression webCompactnessY = compactnessY.GetWebCompactnessCompression();

            if (webCompactnessX == CompactnessClassAxialCompression.NonSlender && webCompactnessY == CompactnessClassAxialCompression.NonSlender)
            {
                return(new ChsNonSlender(Section, L_x, L_y, L_z, CalcLog));
            }
            else
            {
                return(new ChsSlender(Section, L_x, L_y, L_z, CalcLog));
            }
            return(column);
        }
コード例 #9
0
        public static Dictionary <string, object> TorsionalAndFlexuralTorsionalBucklingStrength(CustomProfile Shape, double L_ex, double L_ey, double L_ez, double F_y, double E = 29000.0, bool IsRolledMember = true,
                                                                                                string Code = "AISC360-10")
        {
            //Default values
            double phiP_n       = 0;
            bool   IsApplicable = true;

            //Calculation logic:
            CompressionMemberFactory f          = new CompressionMemberFactory();
            ISteelCompressionMember  compMember = f.GetCompressionMember(Shape.Section, L_ex, L_ey, L_ez, F_y, E, IsRolledMember);


            SteelLimitStateValue FlexuralTorsionalBuckling = compMember.GetTorsionalAndFlexuralTorsionalBucklingStrength();

            phiP_n       = FlexuralTorsionalBuckling.Value;
            IsApplicable = FlexuralTorsionalBuckling.IsApplicable;

            return(new Dictionary <string, object>
            {
                { "phiP_n", phiP_n },
                { "IsApplicable", IsApplicable }
            });
        }
コード例 #10
0
        public ISteelCompressionMember GetCompressionMember(ISection Shape, double L_ex, double L_ey, double L_ez, double F_y, double E, bool IsRolledShape = true)
        {
            string DEFAULT_EXCEPTION_STRING = "Selected shape is not supported. Select a different shape.";
            ISteelCompressionMember col     = null;
            CalcLog       log      = new CalcLog();
            SteelMaterial Material = new SteelMaterial(F_y, E);

            if (Shape == null)
            {
                return(new ColumnGeneral(null, L_ex, L_ey, L_ez));
            }

            if (Shape is ISectionI)
            {
                ISectionI     IShape        = Shape as ISectionI;
                SteelSectionI SectionI      = new SteelSectionI(IShape, Material);
                IShapeFactory IShapeFactory = new IShapeFactory();
                return(IShapeFactory.GetIshape(SectionI, IsRolledShape, L_ex, L_ey, L_ez));
            }


            else if (Shape is ISectionChannel)
            {
                ISectionChannel     ChannelShape   = Shape as ISectionChannel;
                SteelChannelSection ChannelSection = new SteelChannelSection(ChannelShape, Material);
                throw new Exception(DEFAULT_EXCEPTION_STRING);
            }


            else if (Shape is ISectionPipe)
            {
                ISectionPipe     SectionPipe = Shape as ISectionPipe;
                SteelPipeSection PipeSection = new SteelPipeSection(SectionPipe, Material);
                ChsShapeFactory  ChsFactory  = new ChsShapeFactory();
                return(ChsFactory.GetChsShape(PipeSection, L_ex, L_ey, L_ez, log));
            }

            else if (Shape is ISectionTube)
            {
                ISectionTube    TubeShape       = Shape as ISectionTube;
                SteelRhsSection RectHSS_Section = new SteelRhsSection(TubeShape, Material);
                RhsShapeFactory RhsFactory      = new RhsShapeFactory();
                return(RhsFactory.GetRhsShape(RectHSS_Section, L_ex, L_ey, L_ez));
            }


            else if (Shape is ISectionBox)
            {
                ISectionBox     BoxShape   = Shape as ISectionBox;
                SteelBoxSection BoxSection = new SteelBoxSection(BoxShape, Material);

                RhsShapeFactory RhsFactory = new RhsShapeFactory();
                return(RhsFactory.GetRhsShape(BoxSection, L_ex, L_ey, L_ez));
            }

            else if (Shape is ISectionRectangular || Shape is ISectionRound)
            {
                ISteelSection solidSec;
                if (Shape is ISectionRectangular)
                {
                    ISectionRectangular RectangleShape = Shape as ISectionRectangular;
                    solidSec = new SteelRectangleSection(RectangleShape, Material);
                }
                else
                {
                    ISectionRound rnd = Shape as ISectionRound;
                    solidSec = new SteelRoundSection(rnd, Material);
                }


                CompressionMemberRectangle SolidShapeSection = new CompressionMemberRectangle(solidSec, L_ex, L_ey, L_ez);
                return(SolidShapeSection);
            }

            else if (Shape is ISectionTee)
            {
                ISectionTee     TeeShape   = Shape as ISectionTee;
                SteelTeeSection TeeSection = new SteelTeeSection(TeeShape, Material);


                IShapeCompactness compactnessTee = new ShapeCompactness.TeeMember(TeeSection);
                CompactnessClassAxialCompression flangeCompactness = compactnessTee.GetFlangeCompactnessCompression();
                CompactnessClassAxialCompression stemCompactness   = compactnessTee.GetWebCompactnessCompression();

                if (flangeCompactness == CompactnessClassAxialCompression.NonSlender && stemCompactness == CompactnessClassAxialCompression.NonSlender)
                {
                    return(new ColumnTee(TeeSection, IsRolledShape, L_ex, L_ey, L_ez));
                }
                else
                {
                    throw new Exception(DEFAULT_EXCEPTION_STRING);
                }
            }

            else
            {
                throw new Exception(DEFAULT_EXCEPTION_STRING);
            }
        }
コード例 #11
0
        public ISteelCompressionMember GetCompressionMember(ISection Shape, double L_ex, double L_ey, double L_ez, double F_y, double E, bool IsRolledShape = true)
        {
            string DEFAULT_EXCEPTION_STRING = "Selected shape is not supported. Select a different shape.";
            ISteelCompressionMember col     = null;
            CalcLog       log      = new CalcLog();
            SteelMaterial Material = new SteelMaterial(F_y, E);

            if (Shape is ISectionI)
            {
                ISectionI     IShape        = Shape as ISectionI;
                SteelSectionI SectionI      = new SteelSectionI(IShape, Material);
                IShapeFactory IShapeFactory = new IShapeFactory();
                return(IShapeFactory.GetIshape(SectionI, IsRolledShape, L_ex, L_ey, L_ez, log));
            }


            else if (Shape is ISectionChannel)
            {
                ISectionChannel     ChannelShape   = Shape as ISectionChannel;
                SteelChannelSection ChannelSection = new SteelChannelSection(ChannelShape, Material);
                throw new Exception(DEFAULT_EXCEPTION_STRING);
            }


            else if (Shape is ISectionPipe)
            {
                ISectionPipe     SectionPipe = Shape as ISectionPipe;
                SteelPipeSection PipeSection = new SteelPipeSection(SectionPipe, Material);
                ChsShapeFactory  ChsFactory  = new ChsShapeFactory();
                return(ChsFactory.GetChsShape(PipeSection, L_ex, L_ey, L_ez, log));
            }

            else if (Shape is ISectionTube)
            {
                ISectionTube    TubeShape       = Shape as ISectionTube;
                SteelRhsSection RectHSS_Section = new SteelRhsSection(TubeShape, Material);
                RhsShapeFactory RhsFactory      = new RhsShapeFactory();
                return(RhsFactory.GetRhsShape(RectHSS_Section, L_ex, L_ey, L_ez, log));
            }


            else if (Shape is ISectionBox)
            {
                ISectionBox     BoxShape   = Shape as ISectionBox;
                SteelBoxSection BoxSection = new SteelBoxSection(BoxShape, Material);

                RhsShapeFactory RhsFactory = new RhsShapeFactory();
                return(RhsFactory.GetRhsShape(BoxSection, L_ex, L_ey, L_ez, log));
            }

            else if (Shape is ISectionTee)
            {
                ISectionTee     TeeShape   = Shape as ISectionTee;
                SteelTeeSection TeeSection = new SteelTeeSection(TeeShape, Material);
                throw new Exception(DEFAULT_EXCEPTION_STRING);
            }
            else
            {
                throw new Exception(DEFAULT_EXCEPTION_STRING);
            }
        }