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 BoltBase(double Diameter, BoltThreadCase ThreadType, ICalcLog log) : base(log) { this.diameter = Diameter; this.threadType = ThreadType; }
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 BoltBearingGroupB(double Diameter, BoltThreadCase ThreadType, ICalcLog log = null) : base(Diameter, ThreadType, log) { material = new BoltGroupBMaterial(); nominalTensileStress = material.GetNominalTensileStress(ThreadType); nominalShearStress = material.GetNominalShearStress(ThreadType); }
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 BoltBearingGroupB(double Diameter, BoltThreadCase ThreadType, ICalcLog log=null) :base(Diameter,ThreadType,log) { material = new BoltGroupBMaterial(); nominalTensileStress = material.GetNominalTensileStress(ThreadType); nominalShearStress = material.GetNominalShearStress(ThreadType); }
public BoltSlipCriticalGroupA(double Diameter, BoltThreadCase ThreadType, BoltFayingSurfaceClass FayingSurface, BoltHoleType HoleType, BoltFillerCase Fillers, int NumberOfSlipPlanes, ICalcLog log, double PretensionMultiplier = 1.13): base(Diameter,ThreadType,FayingSurface,HoleType,Fillers,NumberOfSlipPlanes,log,PretensionMultiplier) { material = new BoltGroupAMaterial(); nominalTensileStress = material.GetNominalTensileStress(ThreadType); nominalShearStress = material.GetNominalTensileStress(ThreadType); }
public BoltSlipCriticalGroupA(double Diameter, BoltThreadCase ThreadType, BoltFayingSurfaceClass FayingSurface, BoltHoleType HoleType, BoltFillerCase Fillers, int NumberOfSlipPlanes, ICalcLog log, double PretensionMultiplier = 1.13) : base(Diameter, ThreadType, FayingSurface, HoleType, Fillers, NumberOfSlipPlanes, log, PretensionMultiplier) { material = new BoltGroupAMaterial(); nominalTensileStress = material.GetNominalTensileStress(ThreadType); nominalShearStress = material.GetNominalTensileStress(ThreadType); }
public double GetNominalShearStress(BoltThreadCase ThreadCase) { if (ThreadCase == BoltThreadCase.Included) { return 68.0; } else { return 84.0; } }
public BoltSlipCritical(double Diameter, BoltThreadCase ThreadType, BoltFayingSurfaceClass FayingSurface, BoltHoleType HoleType, BoltFillerCase Fillers, int NumberOfSlipPlanes, ICalcLog log, double PretensionMultiplier=1.13) : base(Diameter, ThreadType, log) { this.fayingSurface = FayingSurface; this.holeType = HoleType; this.fillers = Fillers; this.pretensionMultiplier = PretensionMultiplier; this.numberOfSlipPlanes = NumberOfSlipPlanes; }
public double GetNominalTensileStress(BoltThreadCase ThreadCase) { if (ThreadCase == BoltThreadCase.Included) { return(90.0); } else { return(90.0); } }
public BoltSlipCritical(double Diameter, BoltThreadCase ThreadType, BoltFayingSurfaceClass FayingSurface, BoltHoleType HoleType, BoltFillerCase Fillers, int NumberOfSlipPlanes, ICalcLog log, double PretensionMultiplier = 1.13) : base(Diameter, ThreadType, log) { this.fayingSurface = FayingSurface; this.holeType = HoleType; this.fillers = Fillers; this.pretensionMultiplier = PretensionMultiplier; this.numberOfSlipPlanes = NumberOfSlipPlanes; }
public double GetNominalTensileStress(BoltThreadCase ThreadCase) { if (ThreadCase == BoltThreadCase.Included) { return 113.0; } else { return 113.0; } }
public double GetNominalShearStress(BoltThreadCase ThreadCase) { if (ThreadCase == BoltThreadCase.Included) { return(54.0); } else { return(68.0); } }
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 IBoltSlipCritical GetSlipCriticalBolt(double Diameter, BoltThreadCase ThreadType, BoltFayingSurfaceClass SurfaceClass, BoltHoleType HoleType, BoltFillerCase FillerCase, double NumberOfSlipPlanes) { CalcLog log = new CalcLog(); int NPlanes = (int)NumberOfSlipPlanes; IBoltSlipCritical bsc = null; switch (MaterialId) { case "A325": bsc = new BoltSlipCriticalGroupA(Diameter, ThreadType, SurfaceClass, HoleType, FillerCase, NPlanes, log); break; case "A490": bsc = new BoltSlipCriticalGroupB(Diameter, ThreadType, SurfaceClass, HoleType, FillerCase, NPlanes, log); break; case "F1852": bsc = new BoltSlipCriticalGroupA(Diameter, ThreadType, SurfaceClass, HoleType, FillerCase, NPlanes, log); break; case "A354GradeBC": bsc = new BoltSlipCriticalGroupA(Diameter, ThreadType, SurfaceClass, HoleType, FillerCase, NPlanes, log); break; case "A354GradeBD": bsc = new BoltSlipCriticalGroupB(Diameter, ThreadType, SurfaceClass, HoleType, FillerCase, NPlanes, log); break; case "A449": bsc = new BoltSlipCriticalGroupA(Diameter, ThreadType, SurfaceClass, HoleType, FillerCase, NPlanes, log); break; default: throw new Exception("Unrecognized bolt material or specified material cannot be used for high-strength bolting. Check input"); } return(bsc); }
public Bolt(double Diameter, BoltThreadCase ThreadType, ICalcLog log) : base(Diameter, ThreadType, log) { BoltHoleSizeCalculated = false; }
public double GetNominalShearStress(BoltThreadCase ThreadCase) { return 0.563 * F_u; //Table J3.2 }
public double GetNominalTensileStress(BoltThreadCase ThreadCase) { return(0.75 * F_u); //Table J3.2 }
public double GetNominalShearStress(BoltThreadCase ThreadCase) { return(0.563 * F_u); //Table J3.2 }
public double GetNominalTensileStress(BoltThreadCase ThreadCase) { return 45.0; //Design Guide 1 gives 58 ksi FOR GRADE C }
/// <summary> /// Determines if the X or N condition can be assumed without additional inspections, based on the minimum ply thickness /// </summary> /// <param name="NutCondition"></param> /// <param name="d_b">Bolt diameter</param> /// <param name="t_p">Minimum ply thickness</param> /// <returns></returns> public static BoltThreadCase DetermineThreadCase(BoltNutCondition NutCondition, double d_b, double t_p) { //Based on //AISC Night School. W. Thornton //Bracing Connections and Related Topics //Session 2: The Uniform Force Method //UPDATED: September 30, 2014 //Page 27 of handouts. BoltThreadCase tc = BoltThreadCase.Included; if (d_b != 0.75 && d_b != 0.875 && d_b != 1.0 && d_b != 1.125 && d_b != 1.25) { throw new Exception("Bolt diameter not recognized. Use standard nominal diameters between 3/4 in. and 1 1/4 in."); } else //standard diameter { if (d_b == 0.75 || d_b == 0.875) { switch (NutCondition) { case BoltNutCondition.NoWasher: tc = t_p > 0.641 ? BoltThreadCase.Excluded : BoltThreadCase.Included; break; case BoltNutCondition.Washer: tc = t_p > 0.485 ? BoltThreadCase.Excluded : BoltThreadCase.Included; break; case BoltNutCondition.WasherAndStickThrough: tc = t_p > 0.235 ? BoltThreadCase.Excluded : BoltThreadCase.Included; break; } } else if (d_b == 1) { switch (NutCondition) { case BoltNutCondition.NoWasher: tc = t_p > 0.766 ? BoltThreadCase.Excluded : BoltThreadCase.Included; break; case BoltNutCondition.Washer: tc = t_p > 0.610 ? BoltThreadCase.Excluded : BoltThreadCase.Included; break; case BoltNutCondition.WasherAndStickThrough: tc = t_p > 0.360 ? BoltThreadCase.Excluded : BoltThreadCase.Included; break; } } else if (d_b == 1.125) { switch (NutCondition) { case BoltNutCondition.NoWasher: tc = t_p > 0.891 ? BoltThreadCase.Excluded : BoltThreadCase.Included; break; case BoltNutCondition.Washer: tc = t_p > 0.735 ? BoltThreadCase.Excluded : BoltThreadCase.Included; break; case BoltNutCondition.WasherAndStickThrough: tc = t_p > 0.485 ? BoltThreadCase.Excluded : BoltThreadCase.Included; break; } } else { switch (NutCondition) { case BoltNutCondition.NoWasher: tc = t_p > 0.781 ? BoltThreadCase.Excluded : BoltThreadCase.Included; break; case BoltNutCondition.Washer: tc = t_p > 0.625 ? BoltThreadCase.Excluded : BoltThreadCase.Included; break; case BoltNutCondition.WasherAndStickThrough: tc = t_p > 0.375 ? BoltThreadCase.Excluded : BoltThreadCase.Included; break; } } } return(tc); }
public BoltBearing(double Diameter, BoltThreadCase ThreadType, ICalcLog log): base(Diameter,ThreadType,log) { }
public double GetNominalTensileStress(BoltThreadCase ThreadCase) { return(45.0); //Design Guide 1 gives 58 ksi FOR GRADE C }
public double GetNominalShearStress(BoltThreadCase ThreadCase) { return(27.0); }
public Bolt(double Diameter, BoltThreadCase ThreadType, ICalcLog log): base(Diameter, ThreadType,log) { BoltHoleSizeCalculated = false; }
public double GetNominalShearStress(BoltThreadCase ThreadCase) { return 27.0; }
public BoltBearing(double Diameter, BoltThreadCase ThreadType, ICalcLog log) : base(Diameter, ThreadType, log) { }
public IBoltSlipCritical GetSlipCriticalBolt(double Diameter, BoltThreadCase ThreadType, BoltFayingSurfaceClass SurfaceClass, BoltHoleType HoleType, BoltFillerCase FillerCase, double NumberOfSlipPlanes) { CalcLog log = new CalcLog(); int NPlanes = (int)NumberOfSlipPlanes; IBoltSlipCritical bsc = null; switch (MaterialId) { case "A325": bsc = new BoltSlipCriticalGroupA(Diameter, ThreadType, SurfaceClass, HoleType, FillerCase, NPlanes, log); break; case "A490": bsc = new BoltSlipCriticalGroupB(Diameter, ThreadType, SurfaceClass, HoleType, FillerCase, NPlanes, log); break; case "F1852": bsc = new BoltSlipCriticalGroupA(Diameter, ThreadType, SurfaceClass, HoleType, FillerCase, NPlanes, log); break; case "A354GradeBC": bsc = new BoltSlipCriticalGroupA(Diameter, ThreadType, SurfaceClass, HoleType, FillerCase, NPlanes, log); break; case "A354GradeBD": bsc = new BoltSlipCriticalGroupB(Diameter, ThreadType, SurfaceClass, HoleType, FillerCase, NPlanes, log); break; case "A449": bsc = new BoltSlipCriticalGroupA(Diameter, ThreadType, SurfaceClass, HoleType, FillerCase, NPlanes, log); break; default: throw new Exception("Unrecognized bolt material or specified material cannot be used for high-strength bolting. Check input"); } return bsc; }
public double GetNominalTensileStress(BoltThreadCase ThreadCase) { return 0.75 * F_u; //Table J3.2 }