public ColumnBaseResult GetResult(SteelColumnBase columnBase) { ColumnBaseResult columnBaseResult = new ColumnBaseResult(); columnBaseResult.LoadCases = BarLoadSetProcessor.GetLoadCases(columnBase.Loads); RectCrossSection rect = new RectCrossSection(columnBase.Width, columnBase.Length); MassProperty massProperty = RectProcessor.GetRectMassProperty(rect); double Bx = columnBase.WidthBoltDist / 2; double By = columnBase.LengthBoltDist / 2; double minStress = double.PositiveInfinity; double maxStress = double.NegativeInfinity; double minStressTmp; double maxStressTmp; foreach (BarLoadSet LoadCase in columnBaseResult.LoadCases) { StressInRect stress = BarLoadSetProcessor.MinMaxStressInBarSection(LoadCase, massProperty); minStressTmp = stress.MinStress; maxStressTmp = stress.MaxStress; if (minStressTmp < minStress) { minStress = minStressTmp; } if (maxStressTmp > maxStress) { maxStress = maxStressTmp; } } columnBaseResult.MinStress = minStress; columnBaseResult.MaxStress = maxStress; return(columnBaseResult); }
public static StressInRect MinMaxStressInBarSection(BarLoadSet loadCase, MassProperty massProperty) { StressInRect stress = new StressInRect(); double Nz = loadCase.Force.Force_Nz; double Mx = loadCase.Force.Force_Mx; double My = loadCase.Force.Force_My; double A = massProperty.A; double Wx = massProperty.Wx; double Wy = massProperty.Wy; stress.MinStress = Nz / A - Math.Abs(Mx / Wx) - Math.Abs(My / Wy); stress.MaxStress = Nz / A + Math.Abs(Mx / Wx) + Math.Abs(My / Wy); return(stress); }
public static StressInRect MInMaxStressInBarSection(BarLoadSet loadCase, MassProperty massProperty, double dx, double dy) { StressInRect stress = new StressInRect(); double Nz = loadCase.Force.Force_Nz; double Mx = loadCase.Force.Force_Mx; double My = loadCase.Force.Force_My; double A = massProperty.A; double Ix = massProperty.Ix; double Iy = massProperty.Iy; stress.MinStress = Nz / A - Math.Abs(Mx / (Ix / dy)) - Math.Abs(My / (Iy / dx)); stress.MaxStress = Nz / A + Math.Abs(Mx / (Ix / dy)) + Math.Abs(My / (Iy / dx)); return(stress); }