/// <summary> /// This function only handles Symmetric I Built up sections /// </summary> /// <param name="previousSection"></param> /// <returns></returns> public static ISectionAssumption GetNextAssumption(ISectionAssumption previousSection) { ISectionAssumption newSection = new ISectionAssumption(); if (previousSection.Height - previousSection.BotFlangeWidth - previousSection.TopFlangeWidth < maxWebHeight) { newSection.Height = previousSection.Height + webHeightIncrementStep; } if (previousSection.BotFlangeWidth < maxFlangeWidth) { newSection.BotFlangeWidth = newSection.TopFlangeWidth = previousSection.BotFlangeWidth + flangeWidthIncrementStep; } if (previousSection.BotFlangeThickness < maxThick) { newSection.BotFlangeThickness = newSection.TopFlangeThickness = previousSection.BotFlangeThickness + thickIncrementStep; } if (previousSection.WebThickness < maxThick) { newSection.WebThickness = previousSection.WebThickness + thickIncrementStep; } if (newSection == previousSection) { return(null); } else { newSection.AdjustSectionRatios(); return(newSection); } }
public static ISectionAssumption GetNextEndTaperAssumption(ISectionAssumption previousSection) { ISectionAssumption newSection = new ISectionAssumption(); //if (previousSection.WebThickness < maxThick) //{ // newSection.WebThickness = previousSection.WebThickness + thickIncrementStep; //} //if (previousSection.BotFlangeWidth < maxFlangeWidth) //{ // newSection.BotFlangeWidth = newSection.TopFlangeWidth = previousSection.BotFlangeWidth + flangeWidthIncrementStep; //} if ((previousSection.Height - previousSection.BotFlangeThickness - previousSection.TopFlangeThickness) * 1.5 < maxWebHeight) { newSection.Height = (previousSection.Height + webHeightIncrementStep) * 1.5; } if (previousSection.BotFlangeThickness * 1.5 < maxThick) { newSection.BotFlangeThickness = newSection.TopFlangeThickness = (previousSection.BotFlangeThickness + thickIncrementStep) * 1.5; } if (newSection == previousSection) { return(null); } else { newSection.AdjustSectionRatios(); return(newSection); } }
public static ISectionAssumption GetInitialSection() { ISectionAssumption sec = new ISectionAssumption(); sec.Height = minWebHeight + mindoublehick + mindoublehick; sec.BotFlangeWidth = sec.TopFlangeWidth = minFlangeWidth; sec.BotFlangeThickness = sec.TopFlangeThickness = mindoublehick; sec.WebThickness = mindoublehick; sec.AdjustSectionRatios(); return(sec); }