コード例 #1
0
ファイル: BoltFactory.cs プロジェクト: jerem48/Wosad.Design
        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);
        }
コード例 #2
0
        public void GetNominalTensileStrengthModifiedToIncludeTheEffectsOfShearStressDG29()
        {
            BoltFactory bf = new BoltFactory("A325");

            IBoltBearing bolt    = bf.GetBearingBolt(7.0 / 8.0, "N");
            double       V       = 8.05;
            double       phi_R_n = bolt.GetAvailableTensileStrength(V);

            Assert.Equal(39.3, Math.Round(phi_R_n, 1));
        }
コード例 #3
0
        public static Dictionary <string, object> BoltTensileStrength(double d_b, string BoltMaterialId, string BoltThreadCase, string Code = "AISC360-10")
        {
            //Default values
            double phiR_nt = 0;


            //Calculation logic:
            BoltFactory  bf   = new BoltFactory(BoltMaterialId);
            IBoltBearing bolt = bf.GetBearingBolt(d_b, BoltThreadCase);

            phiR_nt = bolt.GetAvailableTensileStrength();

            return(new Dictionary <string, object>
            {
                { "phiR_nt", phiR_nt }
            });
        }
コード例 #4
0
        public static Dictionary <string, object> BearingBoltShearStrength(double d_b, string BoltMaterialId, string BoltThreadCase,
                                                                           double NumberShearPlanes, bool IsEndLoadedConnectionWithLengthEfect = false, string Code = "AISC360-10")
        {
            //Default values
            double phiR_nv = 0;


            //Calculation logic:
            BoltFactory  bf   = new BoltFactory(BoltMaterialId);
            IBoltBearing bolt = bf.GetBearingBolt(d_b, BoltThreadCase);

            phiR_nv = bolt.GetAvailableShearStrength(NumberShearPlanes, IsEndLoadedConnectionWithLengthEfect);

            return(new Dictionary <string, object>
            {
                { "phiR_nv", phiR_nv }
            });
        }