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 = 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); }
private double GetM_max(double F_nv, double d_b, double C_prime) { BoltGeneral b = new BoltGeneral(d_b, F_nv, 0); double A_b = b.Area; double M_max = F_nv/(0.9)*(A_b*C_prime); //AISC Manual Equation 10-4 return M_max; }