示例#1
0
        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);
        }
示例#3
0
        private ListViewItem NewItemFromColumnLoadSet(BarLoadSet obj)
        {
            ListViewItem NewItem = new ListViewItem();

            EditItemFromColumnLoadSet(NewItem, obj);
            lvDetails.Items.Add(NewItem);
            return(NewItem);
        }
示例#4
0
 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;
 }
示例#9
0
 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);
        }
示例#11
0
        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;
            }
            }
        }