public void CheckSteelBasePart() { SteelColumnBase steelColumnBase = new SteelColumnBase(); steelColumnBase.Width = 1; steelColumnBase.Length = 1; steelColumnBase.Thickness = 0.05; BarLoadSet columnLoadSet = new BarLoadSet(steelColumnBase); columnLoadSet.Force_Nz = -100000; columnLoadSet.PartialSafetyFactor = 1; SteelBasePart steelBasePart = new SteelBasePart(steelColumnBase); steelBasePart.FixLeft = true; steelBasePart.FixRight = true; steelBasePart.FixTop = false; steelBasePart.FixBottom = false; steelBasePart.Width = 1; steelBasePart.Length = 1; SteelColumnBaseProcessor columBaseProcessor = new SteelColumnBaseProcessor(); ColumnBaseResult columnResult = columBaseProcessor.GetResult(steelColumnBase); ColumnBasePartResult baseResult = SteelColumnBasePartProcessor.GetResult(steelBasePart); Assert.AreEqual(300, baseResult.MaxStress / 1000000, 10); }
public static BarLoadSet SumForcesInNew(BarLoadSet firstLoadSet, BarLoadSet secondLoadSet, double koeff) { BarLoadSet newLoadSet = new BarLoadSet(0); SumForces(newLoadSet, firstLoadSet, 1.0); SumForces(newLoadSet, secondLoadSet, koeff); return(newLoadSet); }
private ListViewItem NewItemFromColumnLoadSet(BarLoadSet obj) { ListViewItem NewItem = new ListViewItem(); EditItemFromColumnLoadSet(NewItem, obj); lvDetails.Items.Add(NewItem); return(NewItem); }
private void EditItemFromColumnLoadSet(ListViewItem Item, BarLoadSet loadSet) { Item.SubItems.Clear(); Item.Text = loadSet.LoadSet.Name; Item.SubItems.Add(Convert.ToString(loadSet.Force.Force_Nz / 1000)); Item.SubItems.Add(Convert.ToString(loadSet.Force.Force_Mx / 1000)); Item.SubItems.Add(Convert.ToString(loadSet.Force.Force_My / 1000)); Item.SubItems.Add(Convert.ToString(loadSet.Force.Force_Qx / 1000)); Item.SubItems.Add(Convert.ToString(loadSet.Force.Force_Qy / 1000)); }
public static double StressInBarSection(BarLoadSet loadCase, MassProperty massProperty, double dx, double dy) { double stress; 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 = Nz / A + Mx / (Ix / dy) - My / (Iy / dx); return(stress); }
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); }
public static void SumForces(BarLoadSet oldLoadSet, BarLoadSet secondLoadSet, double koeff) { if (!String.IsNullOrEmpty(oldLoadSet.LoadSet.Name)) { oldLoadSet.LoadSet.Name += " + "; } oldLoadSet.LoadSet.Name += secondLoadSet.LoadSet.Name + "*(" + Convert.ToString(secondLoadSet.LoadSet.PartialSafetyFactor * koeff) + ")"; oldLoadSet.Force.Force_Nz += secondLoadSet.Force.Force_Nz * secondLoadSet.LoadSet.PartialSafetyFactor * koeff; oldLoadSet.Force.Force_Mx += secondLoadSet.Force.Force_Mx * secondLoadSet.LoadSet.PartialSafetyFactor * koeff; oldLoadSet.Force.Force_My += secondLoadSet.Force.Force_My * secondLoadSet.LoadSet.PartialSafetyFactor * koeff; oldLoadSet.Force.Force_Qx += secondLoadSet.Force.Force_Qx * secondLoadSet.LoadSet.PartialSafetyFactor * koeff; oldLoadSet.Force.Force_Qy += secondLoadSet.Force.Force_Qy * secondLoadSet.LoadSet.PartialSafetyFactor * koeff; oldLoadSet.LoadSet.PartialSafetyFactor = 1; return; }
public wndForces(BarLoadSet loadSet) { InitializeComponent(); _loadSet = loadSet; tbxName.Text = _loadSet.LoadSet.Name; tbxForce_Nz.Text = Convert.ToString(_loadSet.Force.Force_Nz / 1000); tbxForce_Mx.Text = Convert.ToString(_loadSet.Force.Force_Mx / 1000); tbxForce_My.Text = Convert.ToString(_loadSet.Force.Force_My / 1000); tbxForce_Qx.Text = Convert.ToString(_loadSet.Force.Force_Qx / 1000); tbxForce_Qy.Text = Convert.ToString(_loadSet.Force.Force_Qy / 1000); tbxPartialSafetyFactor.Text = Convert.ToString(_loadSet.LoadSet.PartialSafetyFactor); cbIsDeadLoad.IsChecked = _loadSet.LoadSet.IsDeadLoad; cbBothSign.IsChecked = _loadSet.LoadSet.BothSign; _force = _loadSet.Force; _tmpForce = (Force)_loadSet.Force.Clone(); lvForcesList.ItemsSource = _force.ForceParameters; }
public static List <BarLoadSet> GetLoadCases(List <BarLoadSet> columnLoadSets) { List <BarLoadSet> LoadCases = new List <BarLoadSet>(); LoadCases.Add(new BarLoadSet(0)); List <BarLoadSet> tmpLoadSets = new List <BarLoadSet>(); foreach (BarLoadSet columnLoadSet in columnLoadSets) { tmpLoadSets.Add(columnLoadSet); } while (tmpLoadSets.Count > 0) { BarLoadSet LoadSet = tmpLoadSets[0]; List <BarLoadSet> tmpLoadCases = new List <BarLoadSet>(); foreach (BarLoadSet LoadCase in LoadCases) { tmpLoadCases.Add(LoadCase); } foreach (BarLoadSet LoadCase in tmpLoadCases) { if (LoadSet.LoadSet.IsDeadLoad) { BarLoadSetProcessor.SumForces(LoadCase, LoadSet, 1.0); } else { LoadCases.Add(BarLoadSetProcessor.SumForcesInNew(LoadCase, LoadSet, 1.0)); if (LoadSet.LoadSet.BothSign) { LoadCases.Add(BarLoadSetProcessor.SumForcesInNew(LoadCase, LoadSet, -1.0)); } } } tmpLoadSets.Remove(LoadSet); } return(LoadCases); }
private void tsbNew_Click(object sender, EventArgs e) { ProgrammSettings.IsDataChanged = true; switch (_formType) // { case "Buildings": { break; } case "Levels": { Level level = new Level((Building)_parentObject); NewItemFromLevel(level); break; } //Add new Opening case "OpeningPlacings": { OpeningPlacing openingPlacing = new OpeningPlacing((Wall)_parentObject); NewItemFromOpeningPlacing(openingPlacing); break; } //Add new OpeningType case "OpeningTypes": { OpeningType openingType = new OpeningType((Building)_parentObject); NewItemFromOpeningType(openingType); break; } case ObjColumnBaseParts: { SteelBasePart basePart = new SteelBasePart((SteelColumnBase)_parentObject); NewItemFromColumnBasePart(basePart); break; } case ObjBarForses: { BarLoadSet columnLoadSet = new BarLoadSet((SteelColumnBase)_parentObject); NewItemFromColumnLoadSet(columnLoadSet); break; } case ObjSteelColumnBases: { SteelColumnBase steelColumnBase = new SteelColumnBase((Level)_parentObject); NewItemFromSteelColumnBase(steelColumnBase); #region Вложенные объекты по умолчанию //Нагрузка BarLoadSet columnLoadSet = new BarLoadSet(steelColumnBase); columnLoadSet.LoadSet.Name = "Постоянная"; //Участок №1 SteelBasePart basePart1 = new SteelBasePart(steelColumnBase); basePart1.Name = "1"; basePart1.Width = 0.290; basePart1.Length = 0.200; basePart1.Center[0] = 0.155; basePart1.Center[1] = 0.350; basePart1.FixLeft = true; basePart1.FixRight = false; basePart1.FixTop = false; basePart1.FixBottom = true; basePart1.AddSymmetricX = true; basePart1.AddSymmetricY = true; //Участок №2 SteelBasePart basePart2 = new SteelBasePart(steelColumnBase); basePart2.Name = "2"; basePart2.Width = 0.290; basePart2.Length = 0.480; basePart2.Center[0] = 0.155; basePart2.Center[1] = 0; basePart2.FixLeft = true; basePart2.FixRight = false; basePart2.FixTop = true; basePart2.FixBottom = true; basePart2.AddSymmetricX = false; basePart2.AddSymmetricY = true; #endregion break; } case "Walls": { Wall wall = new Wall((Level)_parentObject); NewItemFromWall(wall); break; } case "WallTypes": { WallType wallType = new WallType((Building)_parentObject); NewItemFromWallType(wallType); break; } } }