Beispiel #1
0
        public static Dictionary <string, object> FilletWeldGroupCoefficient(string WeldGroupPattern, double l_Weld_horizontal, double l_Weld_vertical, double e_group,
                                                                             double theta, double w_weld, double F_EXX, bool IsLoadOutOfPlane = false, string Code = "AISC360-10")
        {
            //Default values
            double C_WeldGroup = 0;
            double phiR_n      = 0;

            //Calculation logic:
            WeldGroupPattern pattern;
            bool             IsValidString = Enum.TryParse(WeldGroupPattern, true, out pattern);

            if (IsValidString == true)
            {
                FilletWeldGroup wg = new FilletWeldGroup(pattern, l_Weld_horizontal, l_Weld_vertical, w_weld, F_EXX, IsLoadOutOfPlane);
                C_WeldGroup = wg.GetInstantaneousCenterCoefficient(e_group, theta);;
                phiR_n      = 0.75 * wg.GetUltimateForce(e_group, theta); //0.75 is the phi factor
            }
            else
            {
                throw new Exception("Weld group strength calculation failed. Invalid weld group pattern designation.");
            }


            return(new Dictionary <string, object>
            {
                { "C_WeldGroup", C_WeldGroup },
                { "phiR_n", phiR_n }
            });
        }
        public void WeldGroupAngleReturnsValue()
        {
            double          L               = 10;
            FilletWeldGroup wg              = new FilletWeldGroup("L", 5.0, L, 1.0 / 16.0, 70.0);
            double          C               = wg.GetInstantaneousCenterCoefficient(5.0, 0);
            double          refValue        = 1.95; // from AISC Steel Manual
            double          actualTolerance = EvaluateActualTolerance(C, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        public void WeldGroupRectangleReturnsValue()
        {
            double          L               = 10;
            FilletWeldGroup wg              = new FilletWeldGroup("Rectangle", 5.0, L, 1.0 / 16.0, 70.0);
            double          C               = wg.GetInstantaneousCenterCoefficient(10, 0);
            double          refValue        = 2.45; // from AISC Steel Manual
            double          actualTolerance = EvaluateActualTolerance(C, refValue);

            Assert.True(actualTolerance <= tolerance);
        }
        public void WeldGroup2LinesHorizontalReturnsValue()
        {
            double          L               = 10;
            FilletWeldGroup wg              = new FilletWeldGroup("ParallelHorizontal", L, 5.0, 1.0 / 16.0, 70.0);
            double          C               = wg.GetInstantaneousCenterCoefficient(5.0, 0);
            double          refValue        = 2.62; // from AISC Steel Manual
            double          P_n             = refValue * L;
            double          actualTolerance = EvaluateActualTolerance(C, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        public void WeldGroup2LinesOutOfPlaneReturnsValue()
        {
            double          L               = 10;
            FilletWeldGroup wg              = new FilletWeldGroup("ParallelVertical", 5.0, L, 1.0 / 16.0, 70.0, true);
            double          C               = wg.GetInstantaneousCenterCoefficient(10.0, 0);
            double          refValue        = 1.28; // from AISC Steel Manual
            double          P_n             = refValue * L;
            double          actualTolerance = EvaluateActualTolerance(C, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        public void WeldGroup2LinesReturnsValue()
        {
            double          L               = 10;
            FilletWeldGroup wg              = new FilletWeldGroup("ParallelVertical", 5.0, L, 1.0 / 16.0, 70.0);
            double          C               = wg.GetInstantaneousCenterCoefficient(5.0, 0);
            double          refValue        = 2.44;         // from AISC Steel Manual
            double          P_n             = refValue * L;
            double          spreadsheetPn   = 18.34 / 0.75; //Yakpol.net version 2008.1
            double          actualTolerance = EvaluateActualTolerance(C, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        public void WeldGroupChannelReturnsValue()
        {
            double          L               = 10;
            FilletWeldGroup wg              = new FilletWeldGroup("C", 5.0, L, 1.0 / 16.0, 70.0);
            double          C               = wg.GetInstantaneousCenterCoefficient(5.0, 0);
            double          refValue        = 2.85;        // from AISC Steel Manual
            double          P_n             = refValue * L;
            double          spreadsheetPn   = 20.4 / 0.75; //Yakpol.net version 2008.1
            double          actualTolerance = EvaluateActualTolerance(C, refValue);

            Assert.True(actualTolerance <= tolerance);
        }