public static Dictionary <string, object> BoltHoleSize(double d_b, string BoltHoleType, bool IsTensionOrShear = true, string Code = "AISC360-10") { //Default values double d_hole = 0; double b_hole = 0; BoltHoleType holeType; bool IsValidString = Enum.TryParse(BoltHoleType, true, out holeType); if (IsValidString == true) { b.BoltGeneral b; if (Code == "AISC360-16") { b = new b16.BoltGeneral(d_b, 0, 0); } else { b = new b.BoltGeneral(d_b, 0, 0); } d_hole = b.GetBoltHoleWidth(holeType, IsTensionOrShear); b_hole = b.GetBoltHoleLength(holeType, IsTensionOrShear); } else { throw new Exception("Bolt hole calculation failed. Invalid hole type designation."); } return(new Dictionary <string, object> { { "d_hole", d_hole }, { "b_hole", b_hole } }); }
public void BoltHoleSSLReturnsLength() { b.BoltGeneral b = new b.BoltGeneral(0.75, 0, 0); double d_l = b.GetBoltHoleLength(BoltHoleType.SSL_Parallel, false); Assert.AreEqual(1.0, d_l); }
public void BoltHoleSSLReturnsWidth() { b.BoltGeneral b = new b.BoltGeneral(0.75, 0, 0); double d_h = b.GetBoltHoleWidth(BoltHoleType.SSL_Parallel, false); Assert.AreEqual(13.0 / 16.0, d_h); }
public void BoltHoleOVSReturnsSize() { b.BoltGeneral b = new b.BoltGeneral(0.75, 0, 0); double d_h = b.GetBoltHoleWidth(BoltHoleType.OVS, false); Assert.AreEqual(15.0 / 16.0, d_h); }
public void BoltHoleSTDReturnsSize() { b.BoltGeneral b = new b.BoltGeneral(0.75, 0, 0); double d_h = b.GetBoltHoleWidth(BoltHoleType.STD, false); Assert.Equal(13.0 / 16.0, d_h); }
/// <summary> /// Net area for tensile strength (kip - in unit system for all inputs and outputs) /// </summary> /// <param name="A_g">Member gross area</param> /// <param name="NFlangeBolts">Number of flange holes in a section (or total number of holes for HSS, angles etc)</param> /// <param name="d_bFlange">Bolt diameter for flange bolts</param> /// <param name="BoltHoleTypeFlange">Bolt hole type for flange bolts</param> /// <param name="t_f">Flange thickness (or material thickness for HSS, angles etc)</param> /// <param name="NWebBolts">Number of web holes in a section</param> /// <param name="d_bWeb">Bolt diameter for web bolts</param> /// <param name="BoltHoleTypeWeb">Bolt hole type for web bolts</param> /// <param name="t_w">Web thickness</param> /// <param name="Code"> Applicable version of code/standard</param> /// <returns name="A_n"> Net area </returns> public static Dictionary <string, object> ShapeNetArea(double A_g, double NFlangeBolts, double d_bFlange, string BoltHoleTypeFlange, double t_f, double NWebBolts = 0, double d_bWeb = 0, string BoltHoleTypeWeb = "", double t_w = 0, string Code = "AISC360-10") { //Default values double A_n = 0; double b_holeFlange = 0, b_holeWeb = 0; //Calculation logic: BoltHoleType holeTypeFlange; bool IsValidStringFlange = Enum.TryParse(BoltHoleTypeFlange, true, out holeTypeFlange); if (IsValidStringFlange == true) { b.BoltGeneral b_Flange = new b.BoltGeneral(d_bFlange, 0, 0); b_holeFlange = b_Flange.GetBoltHoleLength(holeTypeFlange, true); } else { throw new Exception("Bolt hole calculation failed. Invalid hole type designation for flange bolt."); } if (BoltHoleTypeWeb != "") { BoltHoleType holeTypeWeb; bool IsValidStringWeb = Enum.TryParse(BoltHoleTypeWeb, true, out holeTypeWeb); if (IsValidStringWeb == true) { b.BoltGeneral b_Web = new b.BoltGeneral(d_bWeb, 0, 0); b_holeWeb = b_Web.GetBoltHoleLength(holeTypeWeb, true); } else { throw new Exception("Bolt hole calculation failed. Invalid hole type designation for web bolt."); } } A_n = A_g - (NFlangeBolts * t_f * b_holeFlange) - (NWebBolts * t_w * b_holeWeb); return(new Dictionary <string, object> { { "A_n", A_n } }); }