public IBoltBearing GetBearingBolt(double Diameter, BoltThreadCase ThreadType) { IBoltMaterial bm = null; IBoltBearing bb = null; CalcLog log = new CalcLog(); switch (MaterialId) { case "A325": bb = new BoltBearingGroupA(Diameter, ThreadType, log); break; case "A490": bb = new BoltBearingGroupB(Diameter, ThreadType, log); break; case "F1852": bb = new BoltBearingGroupA(Diameter, ThreadType, log); break; case "A307": bm = new BoltA307Material(); bb = new BoltBearingThreadedGeneral(Diameter, ThreadType, bm, log); break; case "A354GradeBC": bb = new BoltBearingGroupA(Diameter, ThreadType, log); break; case "A354GradeBD": bb = new BoltBearingGroupB(Diameter, ThreadType, log); break; case "A449": bb = new BoltBearingGroupA(Diameter, ThreadType, log); break; case "F1554Grade105": bm = new ThreadedBoltMaterial(125.0); bb = new BoltBearingThreadedGeneral(Diameter, ThreadType, bm, log); break; case "F1554Grade55": bm = new ThreadedBoltMaterial(75.0); bb = new BoltBearingThreadedGeneral(Diameter, ThreadType, bm, log); break; case "F1554Grade36": bm = new ThreadedBoltMaterial(58.0); bb = new BoltBearingThreadedGeneral(Diameter, ThreadType, bm, log); break; default: throw new Exception("Unrecognized bolt material. Check input"); } return(bb); }
public void GetNominalTensileStrengthModifiedToIncludeTheEffectsOfShearStressDG29() { BoltFactory bf = new BoltFactory("A325"); IBoltBearing bolt = bf.GetBearingBolt(7.0 / 8.0, "N"); double V = 8.05; double phi_R_n = bolt.GetAvailableTensileStrength(V); Assert.Equal(39.3, Math.Round(phi_R_n, 1)); }
public static Dictionary <string, object> BoltTensileStrength(double d_b, string BoltMaterialId, string BoltThreadCase, string Code = "AISC360-10") { //Default values double phiR_nt = 0; //Calculation logic: BoltFactory bf = new BoltFactory(BoltMaterialId); IBoltBearing bolt = bf.GetBearingBolt(d_b, BoltThreadCase); phiR_nt = bolt.GetAvailableTensileStrength(); return(new Dictionary <string, object> { { "phiR_nt", phiR_nt } }); }
public static Dictionary <string, object> BearingBoltShearStrength(double d_b, string BoltMaterialId, string BoltThreadCase, double NumberShearPlanes, bool IsEndLoadedConnectionWithLengthEfect = false, string Code = "AISC360-10") { //Default values double phiR_nv = 0; //Calculation logic: BoltFactory bf = new BoltFactory(BoltMaterialId); IBoltBearing bolt = bf.GetBearingBolt(d_b, BoltThreadCase); phiR_nv = bolt.GetAvailableShearStrength(NumberShearPlanes, IsEndLoadedConnectionWithLengthEfect); return(new Dictionary <string, object> { { "phiR_nv", phiR_nv } }); }