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 } }); }
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 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 } }); }
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); }
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); }
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); }