Exemple #1
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);
        }
Exemple #2
0
 public BoltBase(double Diameter, BoltThreadCase ThreadType,
                 ICalcLog log)
     : base(log)
 {
     this.diameter   = Diameter;
     this.threadType = ThreadType;
 }
Exemple #3
0
 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);
        }
Exemple #8
0
        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);
     }
 }
Exemple #12
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);
     }
 }
Exemple #15
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;
        }
Exemple #16
0
        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);
        }
Exemple #17
0
 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
 }
Exemple #19
0
 public double GetNominalTensileStress(BoltThreadCase ThreadCase)
 {
     return(0.75 * F_u); //Table J3.2
 }
Exemple #20
0
 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
 }
Exemple #22
0
        /// <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);
        }
Exemple #23
0
        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);
 }
Exemple #26
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)
 {
 }
Exemple #29
0
        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
 }