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 }
            });
        }
Example #2
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);
        }