Пример #1
0
        /// <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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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);
        }