public static Dictionary <string, object> SlipCriticalBoltShearStrength(double d_b, string BoltMaterialId, string BoltHoleType, string BoltFillerCase = "One",
                                                                                string BoltFayingSurfaceClass = "ClassA", double NumberShearPlanes = 1, string Code = "AISC360-10")
        {
            //Default values
            double phiR_n = 0;

            BoltFayingSurfaceClass SurfaceClass = ParseSurfaceClass(BoltFayingSurfaceClass);
            BoltFillerCase         FillerCase   = ParseFillerCase(BoltFillerCase);

            b.BoltHoleType HoleType = ParseBoltHoleType(BoltHoleType);



            //Calculation logic:
            BoltFactory       bf   = new BoltFactory(BoltMaterialId);
            IBoltSlipCritical bolt = bf.GetSlipCriticalBolt(d_b, BoltThreadCase.Included, SurfaceClass, HoleType, FillerCase, NumberShearPlanes);

            phiR_n = bolt.GetSlipResistance();


            return(new Dictionary <string, object>
            {
                { "phiR_n", phiR_n }
            });
        }
Пример #2
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);
        }
Пример #3
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);
        }
Пример #4
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;
 }
Пример #5
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;
 }
Пример #6
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;
        }
Пример #7
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);
        }