internal double GetHSSWallPlastification() { //(K1-13) double R = 0.0; double Rn; double theta = Angle; double sinTheta = Math.Sin(theta.ToRadians()); double Fy = Hss.Material.YieldStress; double t = 0.0; ISectionHollow hollowMember = Hss.Section as ISectionHollow; if (hollowMember != null) { t = hollowMember.t_des; } else { throw new Exception("Member must be of type IHollowMember"); } ISectionTube tube = Hss.Section as ISectionTube; if (tube == null) { throw new Exception("Member must be of type SectionTube"); } double B = tube.B; double tp = Plate.Section.B; double lb = Plate.Section.H / sinTheta; double Qf = RhsStressInteractionQf(HssPlateOrientation.Longitudinal); //(K1-13) Rn = 2.0 * Fy * Math.Pow(t, 2) / (1.0 - (tp / B)) * (2.0 * lb / B + 4.0 * Math.Sqrt(1.0 - tp / B) * Qf) / sinTheta; R = Rn * 1.0; return(R); }
public SteelHssSection(ISectionHollow Section, ISteelMaterial Material) : base(Material) { this.section = Section; }
public SteelHssSection(ISectionHollow Section, ISteelMaterial Material) :base(Material) { this.section = Section; }
public IHssTrussBranchConnection GetConnection(HssTrussConnectionMemberType MemberType, HssTrussConnectionClassification Classification, ISectionHollow ChordSection, ISectionHollow MainBranchSection, ISectionHollow SecondaryBranchSection, double F_yChord, double F_yBranch, double thetaMainBranch, double thetaSecondaryBranch, AxialForceType ForceTypeMainBranch, AxialForceType ForceTypeSecondaryBranch, bool IsTensionChord, double P_uChord, double M_uChord, double O_v = 0) { if (MemberType == HssTrussConnectionMemberType.Rhs) { if (ChordSection is ISectionTube && MainBranchSection is ISectionTube && SecondaryBranchSection is ISectionTube) { SteelMaterial matChord = new SteelMaterial(F_yChord); SteelRhsSection Chord = new SteelRhsSection(ChordSection as ISectionTube, matChord); SteelMaterial matBr = new SteelMaterial(F_yBranch); SteelRhsSection MainBranch = new SteelRhsSection(MainBranchSection as ISectionTube, matBr); SteelRhsSection SecondaryBranch = new SteelRhsSection(SecondaryBranchSection as ISectionTube, matBr); switch (Classification) { case HssTrussConnectionClassification.T: return(new RhsTrussTConnection(Chord, MainBranch, thetaMainBranch, SecondaryBranch, thetaSecondaryBranch, ForceTypeMainBranch, ForceTypeSecondaryBranch, IsTensionChord, P_uChord, M_uChord)); break; case HssTrussConnectionClassification.Y: return(new RhsTrussYConnection(Chord, MainBranch, thetaMainBranch, SecondaryBranch, thetaSecondaryBranch, ForceTypeMainBranch, ForceTypeSecondaryBranch, IsTensionChord, P_uChord, M_uChord)); break; case HssTrussConnectionClassification.X: return(new RhsTrussXConnection(Chord, MainBranch, thetaMainBranch, SecondaryBranch, thetaSecondaryBranch, ForceTypeMainBranch, ForceTypeSecondaryBranch, IsTensionChord, P_uChord, M_uChord)); break; case HssTrussConnectionClassification.GappedK: return(new RhsTrussGappedKConnection(Chord, MainBranch, thetaMainBranch, SecondaryBranch, thetaSecondaryBranch, ForceTypeMainBranch, ForceTypeSecondaryBranch, IsTensionChord, P_uChord, M_uChord)); break; case HssTrussConnectionClassification.OverlappedK: return(new RhsTrussOverlappedConnection(Chord, MainBranch, thetaMainBranch, SecondaryBranch, thetaSecondaryBranch, ForceTypeMainBranch, ForceTypeSecondaryBranch, IsTensionChord, P_uChord, M_uChord, O_v)); break; default: throw new Exception("Connection classification not recognized."); break; } } else { throw new Exception("One of the member section is not of type ISectionTube. Ensure that a rectangular hollow section object type is used for chord and branches."); } } else { throw new NotImplementedException("Circular HSS truss connections are not supported yet."); } }
public IHssTrussBranchConnection GetConnection(HssTrussConnectionMemberType MemberType, HssTrussConnectionClassification Classification, ISectionHollow ChordSection, ISectionHollow MainBranchSection, ISectionHollow SecondaryBranchSection, double F_yChord, double F_yBranch, double thetaMainBranch, double thetaSecondaryBranch, AxialForceType ForceTypeMainBranch, AxialForceType ForceTypeSecondaryBranch, bool IsTensionChord, double P_uChord, double M_uChord, double O_v=0) { if (MemberType == HssTrussConnectionMemberType.Rhs) { if (ChordSection is ISectionTube && MainBranchSection is ISectionTube && SecondaryBranchSection is ISectionTube) { SteelMaterial matChord = new SteelMaterial(F_yChord); SteelRhsSection Chord = new SteelRhsSection(ChordSection as ISectionTube, matChord); SteelMaterial matBr = new SteelMaterial(F_yBranch); SteelRhsSection MainBranch = new SteelRhsSection(MainBranchSection as ISectionTube, matBr); SteelRhsSection SecondaryBranch = new SteelRhsSection(SecondaryBranchSection as ISectionTube, matBr); switch (Classification) { case HssTrussConnectionClassification.T: return new RhsTrussTConnection(Chord, MainBranch, thetaMainBranch, SecondaryBranch, thetaSecondaryBranch, ForceTypeMainBranch, ForceTypeSecondaryBranch, IsTensionChord, P_uChord, M_uChord); break; case HssTrussConnectionClassification.Y: return new RhsTrussYConnection(Chord, MainBranch, thetaMainBranch, SecondaryBranch, thetaSecondaryBranch, ForceTypeMainBranch, ForceTypeSecondaryBranch, IsTensionChord, P_uChord, M_uChord); break; case HssTrussConnectionClassification.X: return new RhsTrussXConnection(Chord, MainBranch, thetaMainBranch, SecondaryBranch, thetaSecondaryBranch, ForceTypeMainBranch, ForceTypeSecondaryBranch, IsTensionChord, P_uChord, M_uChord); break; case HssTrussConnectionClassification.GappedK: return new RhsTrussGappedKConnection(Chord, MainBranch, thetaMainBranch, SecondaryBranch, thetaSecondaryBranch, ForceTypeMainBranch, ForceTypeSecondaryBranch, IsTensionChord, P_uChord,M_uChord); break; case HssTrussConnectionClassification.OverlappedK: return new RhsTrussOverlappedConnection(Chord, MainBranch, thetaMainBranch, SecondaryBranch, thetaSecondaryBranch, ForceTypeMainBranch, ForceTypeSecondaryBranch, IsTensionChord, P_uChord, M_uChord,O_v); break; default: throw new Exception("Connection classification not recognized."); break; } } else { throw new Exception("One of the member section is not of type ISectionTube. Ensure that a rectangular hollow section object type is used for chord and branches."); } } else { throw new NotImplementedException("Circular HSS truss connections are not supported yet."); } }