Beispiel #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);
        }
Beispiel #2
0
        public void BoltReturnsNominalTensileStressStringInput()
        {
            BoltFactory   bf       = new BoltFactory("A325");
            IBoltMaterial material = bf.GetBoltMaterial();
            double        F_nt     = material.GetNominalTensileStress("N");

            Assert.AreEqual(90.0, F_nt);
        }
Beispiel #3
0
        public void BoltReturnsNominalTensileStress()
        {
            BoltFactory   bf       = new BoltFactory("A325");
            IBoltMaterial material = bf.GetBoltMaterial();
            double        F_nt     = material.GetNominalTensileStress(BoltThreadCase.Included);

            Assert.AreEqual(90.0, F_nt);
        }
Beispiel #4
0
        public void BoltReturnsNominalShearStressStringInput()
        {
            BoltFactory   bf       = new BoltFactory("A325");
            IBoltMaterial material = bf.GetBoltMaterial();
            double        F_nv     = material.GetNominalShearStress("N");

            Assert.AreEqual(54.0, F_nv);
        }
Beispiel #5
0
        public void BoltReturnsNominalShearStress()
        {
            BoltFactory   bf       = new BoltFactory("A325");
            IBoltMaterial material = bf.GetBoltMaterial();
            double        F_nv     = material.GetNominalShearStress(BoltThreadCase.Included);

            Assert.Equal(54.0, F_nv);
        }
        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);

        }
Beispiel #7
0
        public static Dictionary <string, object> BearingBoltNominalShearStress(string BoltMaterialId, string BoltThreadCase, string Code = "AISC360-10")
        {
            //Default values
            double F_nv = 0;


            //Calculation logic:
            BoltFactory   bf       = new BoltFactory(BoltMaterialId);
            IBoltMaterial material = bf.GetBoltMaterial();

            F_nv = material.GetNominalShearStress(BoltThreadCase);

            return(new Dictionary <string, object>
            {
                { "F_nv", F_nv }
            });
        }
Beispiel #8
0
        public IBoltMaterial GetBoltMaterial()
        {
            IBoltMaterial m = null;

            switch (MaterialId)
            {
            //case "A108": m = new ThreadedBoltMaterial(65.0); break;
            case "A325": m = new BoltGroupAMaterial(); break;

            case "A490": m = new BoltGroupBMaterial(); break;

            case "F1852": m = new BoltGroupAMaterial();  break;

            //case "A36": m = new ThreadedBoltMaterial(58.0); break;
            //case "A193 Grade B7": m = new ThreadedBoltMaterial(100.0); break; //Can use higher value, up to 125 ksi for smaller diameters
            case "A307": m = new BoltA307Material();  break;

            case "A354GradeBC": m = new BoltGroupAMaterial(); break;      //This is per AISC spec. Design guide 1 gives higher values

            case "A354GradeBD": m = new BoltGroupBMaterial(); break;      //This is per AISC spec. Design guide 1 gives higher values

            case "A449": m = new BoltGroupAMaterial(); break;

            //case "A572": break; //TODO: eliminate this from material selection node
            //case "A588": m = new ThreadedBoltMaterial(70.0); break; // for large diameters (over 4") this is unconservative.
            //case "A687": m = new ThreadedBoltMaterial(150.0); break;  //AISC indicates 150ksi MAX
            case "F1554Grade105": m = new ThreadedBoltMaterial(125.0); break;      //Design guide 1 Table 2.2

            case "F1554Grade55": m = new ThreadedBoltMaterial(75.0); break;        //Design guide 1 Table 2.2

            case "F1554Grade36": m = new ThreadedBoltMaterial(58.0); break;        //Design guide 1 Table 2.2

            //case "A572 Grade 42": m = new ThreadedBoltMaterial(60.0); break;     //AISC Manual Table 2-6
            //case "A572 Grade 50": m = new ThreadedBoltMaterial(65.0); break;     //AISC Manual Table 2-6
            //case "A572 Grade 55": m = new ThreadedBoltMaterial(70.0); break;     //AISC Manual Table 2-6
            //case "A572 Grade 60": m = new ThreadedBoltMaterial(75.0); break;     //AISC Manual Table 2-6
            //case "A572 Grade 65": m = new ThreadedBoltMaterial(80.0); break;     //AISC Manual Table 2-6
            default: throw new Exception("Unrecognized bolt material. Check input");
            }
            return(m);
        }
Beispiel #9
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);
 }