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 BoltReturnsNominalTensileStressStringInput() { BoltFactory bf = new BoltFactory("A325"); IBoltMaterial material = bf.GetBoltMaterial(); double F_nt = material.GetNominalTensileStress("N"); Assert.AreEqual(90.0, F_nt); }
public void BoltReturnsNominalTensileStress() { BoltFactory bf = new BoltFactory("A325"); IBoltMaterial material = bf.GetBoltMaterial(); double F_nt = material.GetNominalTensileStress(BoltThreadCase.Included); Assert.AreEqual(90.0, F_nt); }
public void BoltReturnsNominalShearStressStringInput() { BoltFactory bf = new BoltFactory("A325"); IBoltMaterial material = bf.GetBoltMaterial(); double F_nv = material.GetNominalShearStress("N"); Assert.AreEqual(54.0, F_nv); }
public void BoltReturnsNominalShearStress() { BoltFactory bf = new BoltFactory("A325"); IBoltMaterial material = bf.GetBoltMaterial(); double F_nv = material.GetNominalShearStress(BoltThreadCase.Included); Assert.Equal(54.0, F_nv); }
public BoltBearingThreadedGeneral(double Diameter, BoltThreadCase ThreadType, IBoltMaterial material, ICalcLog log=null) : base(Diameter, ThreadType, log) { this.material = material; nominalTensileStress = material.GetNominalTensileStress(ThreadType); nominalShearStress = material.GetNominalShearStress(ThreadType); }
public static Dictionary <string, object> BearingBoltNominalShearStress(string BoltMaterialId, string BoltThreadCase, string Code = "AISC360-10") { //Default values double F_nv = 0; //Calculation logic: BoltFactory bf = new BoltFactory(BoltMaterialId); IBoltMaterial material = bf.GetBoltMaterial(); F_nv = material.GetNominalShearStress(BoltThreadCase); return(new Dictionary <string, object> { { "F_nv", F_nv } }); }
public IBoltMaterial GetBoltMaterial() { IBoltMaterial m = null; switch (MaterialId) { //case "A108": m = new ThreadedBoltMaterial(65.0); break; case "A325": m = new BoltGroupAMaterial(); break; case "A490": m = new BoltGroupBMaterial(); break; case "F1852": m = new BoltGroupAMaterial(); break; //case "A36": m = new ThreadedBoltMaterial(58.0); break; //case "A193 Grade B7": m = new ThreadedBoltMaterial(100.0); break; //Can use higher value, up to 125 ksi for smaller diameters case "A307": m = new BoltA307Material(); break; case "A354GradeBC": m = new BoltGroupAMaterial(); break; //This is per AISC spec. Design guide 1 gives higher values case "A354GradeBD": m = new BoltGroupBMaterial(); break; //This is per AISC spec. Design guide 1 gives higher values case "A449": m = new BoltGroupAMaterial(); break; //case "A572": break; //TODO: eliminate this from material selection node //case "A588": m = new ThreadedBoltMaterial(70.0); break; // for large diameters (over 4") this is unconservative. //case "A687": m = new ThreadedBoltMaterial(150.0); break; //AISC indicates 150ksi MAX case "F1554Grade105": m = new ThreadedBoltMaterial(125.0); break; //Design guide 1 Table 2.2 case "F1554Grade55": m = new ThreadedBoltMaterial(75.0); break; //Design guide 1 Table 2.2 case "F1554Grade36": m = new ThreadedBoltMaterial(58.0); break; //Design guide 1 Table 2.2 //case "A572 Grade 42": m = new ThreadedBoltMaterial(60.0); break; //AISC Manual Table 2-6 //case "A572 Grade 50": m = new ThreadedBoltMaterial(65.0); break; //AISC Manual Table 2-6 //case "A572 Grade 55": m = new ThreadedBoltMaterial(70.0); break; //AISC Manual Table 2-6 //case "A572 Grade 60": m = new ThreadedBoltMaterial(75.0); break; //AISC Manual Table 2-6 //case "A572 Grade 65": m = new ThreadedBoltMaterial(80.0); break; //AISC Manual Table 2-6 default: throw new Exception("Unrecognized bolt material. Check input"); } return(m); }
public BoltBearingThreadedGeneral(double Diameter, BoltThreadCase ThreadType, IBoltMaterial material, ICalcLog log = null) : base(Diameter, ThreadType, log) { this.material = material; nominalTensileStress = material.GetNominalTensileStress(ThreadType); nominalShearStress = material.GetNominalShearStress(ThreadType); }