示例#1
0
        public static Dictionary <string, object> BoltHoleSize(double d_b, string BoltHoleType, bool IsTensionOrShear = true, string Code = "AISC360-10")
        {
            //Default values
            double       d_hole = 0;
            double       b_hole = 0;
            BoltHoleType holeType;
            bool         IsValidString = Enum.TryParse(BoltHoleType, true, out holeType);

            if (IsValidString == true)
            {
                b.BoltGeneral b;
                if (Code == "AISC360-16")
                {
                    b = new b16.BoltGeneral(d_b, 0, 0);
                }
                else
                {
                    b = new b.BoltGeneral(d_b, 0, 0);
                }
                d_hole = b.GetBoltHoleWidth(holeType, IsTensionOrShear);
                b_hole = b.GetBoltHoleLength(holeType, IsTensionOrShear);
            }
            else
            {
                throw new Exception("Bolt hole calculation failed. Invalid hole type designation.");
            }

            return(new Dictionary <string, object>
            {
                { "d_hole", d_hole },
                { "b_hole", b_hole }
            });
        }
示例#2
0
        public void BoltHoleSSLReturnsLength()
        {
            b.BoltGeneral b   = new b.BoltGeneral(0.75, 0, 0);
            double        d_l = b.GetBoltHoleLength(BoltHoleType.SSL_Parallel, false);

            Assert.AreEqual(1.0, d_l);
        }
示例#3
0
        public void BoltHoleSSLReturnsWidth()
        {
            b.BoltGeneral b   = new b.BoltGeneral(0.75, 0, 0);
            double        d_h = b.GetBoltHoleWidth(BoltHoleType.SSL_Parallel, false);

            Assert.AreEqual(13.0 / 16.0, d_h);
        }
示例#4
0
        public void BoltHoleOVSReturnsSize()
        {
            b.BoltGeneral b   = new b.BoltGeneral(0.75, 0, 0);
            double        d_h = b.GetBoltHoleWidth(BoltHoleType.OVS, false);

            Assert.AreEqual(15.0 / 16.0, d_h);
        }
示例#5
0
        public void BoltHoleSTDReturnsSize()
        {
            b.BoltGeneral b   = new b.BoltGeneral(0.75, 0, 0);
            double        d_h = b.GetBoltHoleWidth(BoltHoleType.STD, false);

            Assert.Equal(13.0 / 16.0, d_h);
        }
示例#6
0
        /// <summary>
        ///     Net area for tensile strength (kip - in unit system for all inputs and outputs)
        /// </summary>
        /// <param name="A_g">Member gross area</param>
        /// <param name="NFlangeBolts">Number of flange holes in a section (or total number of holes for HSS, angles etc)</param>
        /// <param name="d_bFlange">Bolt diameter for flange bolts</param>
        /// <param name="BoltHoleTypeFlange">Bolt hole type for flange bolts</param>
        /// <param name="t_f">Flange thickness (or material thickness for HSS, angles etc)</param>
        /// <param name="NWebBolts">Number of web holes in a section</param>
        /// <param name="d_bWeb">Bolt diameter for web bolts</param>
        /// <param name="BoltHoleTypeWeb">Bolt hole type for web bolts</param>
        /// <param name="t_w">Web thickness</param>
        /// <param name="Code"> Applicable version of code/standard</param>
        /// <returns name="A_n"> Net area </returns>



        public static Dictionary <string, object> ShapeNetArea(double A_g, double NFlangeBolts, double d_bFlange,
                                                               string BoltHoleTypeFlange, double t_f,
                                                               double NWebBolts = 0, double d_bWeb = 0, string BoltHoleTypeWeb = "", double t_w = 0, string Code = "AISC360-10")
        {
            //Default values
            double A_n = 0;
            double b_holeFlange = 0, b_holeWeb = 0;

            //Calculation logic:
            BoltHoleType holeTypeFlange;
            bool         IsValidStringFlange = Enum.TryParse(BoltHoleTypeFlange, true, out holeTypeFlange);

            if (IsValidStringFlange == true)
            {
                b.BoltGeneral b_Flange = new b.BoltGeneral(d_bFlange, 0, 0);
                b_holeFlange = b_Flange.GetBoltHoleLength(holeTypeFlange, true);
            }
            else
            {
                throw new Exception("Bolt hole calculation failed. Invalid hole type designation for flange bolt.");
            }

            if (BoltHoleTypeWeb != "")
            {
                BoltHoleType holeTypeWeb;
                bool         IsValidStringWeb = Enum.TryParse(BoltHoleTypeWeb, true, out holeTypeWeb);
                if (IsValidStringWeb == true)
                {
                    b.BoltGeneral b_Web = new b.BoltGeneral(d_bWeb, 0, 0);
                    b_holeWeb = b_Web.GetBoltHoleLength(holeTypeWeb, true);
                }
                else
                {
                    throw new Exception("Bolt hole calculation failed. Invalid hole type designation for web bolt.");
                }
            }

            A_n = A_g - (NFlangeBolts * t_f * b_holeFlange) - (NWebBolts * t_w * b_holeWeb);

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