public static Dictionary <string, object> WeldGroupElasticCentroid(string WeldGroupPattern, double l_Weld_horizontal, double l_Weld_vertical)
        {
            //Default values
            double CG_X_Left   = 0;
            double CG_X_Right  = 0;
            double CG_Y_Bottom = 0;
            double CG_Y_Top    = 0;


            //Calculation logic:
            FilletWeldGroup wg = new FilletWeldGroup(WeldGroupPattern, l_Weld_horizontal, l_Weld_vertical, 1.0 / 16.0, 70.0);

            CG_X_Left   = wg.CG_X_Left;
            CG_X_Right  = wg.CG_X_Right;
            CG_Y_Bottom = wg.CG_Y_Bottom;
            CG_Y_Top    = wg.CG_Y_Top;

            return(new Dictionary <string, object>
            {
                { "CG_X_Left", CG_X_Left }
                , { "CG_X_Right", CG_X_Right }
                , { "CG_Y_Bottom", CG_Y_Bottom }
                , { "CG_Y_Top", CG_Y_Top }
            });
        }
Example #2
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 }
            });
        }
Example #3
0
        public static Dictionary <string, object> FilletWeldGroupConcentricLoadStrength(string WeldGroupPattern, double l_transv, double l_longit,
                                                                                        double w_weld, double F_EXX = 70, double theta = 0, string Code = "AISC360-10")
        {
            //Default values
            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_transv, l_longit, w_weld, F_EXX);
                phiR_n = wg.GetConcentricLoadStrenth(theta);
            }
            else
            {
                throw new Exception("Weld group strength calculation failed. Invalid weld group pattern designation.");
            }


            return(new Dictionary <string, object>
            {
                { "phiR_n", phiR_n }
            });
        }
Example #4
0
        public void WeldConcentricCShapeLinesReturnsValue45Degrees()
        {
            FilletWeldGroup wg              = new FilletWeldGroup(WeldGroupPattern.C, 1.0, 2.0, 1.0 / 16.0, 70.0);
            double          phiR_n          = wg.GetConcentricLoadStrenth(45);
            double          refValue        = 4 * 1.392;
            double          actualTolerance = EvaluateActualTolerance(phiR_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
Example #5
0
        public void WeldConcentricParallelLinesReturnsValue()
        {
            FilletWeldGroup wg              = new FilletWeldGroup(WeldGroupPattern.ParallelVertical, 5.0, 28.0, 3.0 / 16.0, 70.0);
            double          phiR_n          = wg.GetConcentricLoadStrenth(0);
            double          refValue        = 0.75 * 5.57 * 2 * 28.0;
            double          actualTolerance = EvaluateActualTolerance(phiR_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        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 WeldGroupChannelReturnsCG()
        {
            double          L               = 8;
            FilletWeldGroup wg              = new FilletWeldGroup("C", 6.0, L, 1.0 / 16.0, 70.0);
            double          x               = wg.CG_X_Left;
            double          refValue        = 1.8; // from Murray Connection Seminar Part 2
            double          actualTolerance = EvaluateActualTolerance(x, refValue);

            Assert.True(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);
        }
Example #9
0
        public void WeldConcentricCShapeLinesReturnsValue()
        {
            FilletWeldGroup wg              = new FilletWeldGroup(WeldGroupPattern.C, 1.0, 2.0, 1.0 / 16.0, 70.0);
            double          phiR_n          = wg.GetConcentricLoadStrenth(0);
            double          ws1             = 4 * 1.392;
            double          ws2             = 0.85 * 2 * 1.392 + 2 * 1.5 * 1.392;
            double          refValue        = Math.Max(ws1, ws2);
            double          actualTolerance = EvaluateActualTolerance(phiR_n, refValue);

            Assert.LessOrEqual(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);
        }