public static void PrepareCalculationsSet(this CalculationsModel model, List <SolutionModel> solutions)
        {
            CalculationsModel  calculation = model;
            List <SpringModel> allSprings  = TextConnector.Spring_GetAll();

            List <List <SpringModel> > allSetups = new List <List <SpringModel> >();

            allSetups = CreateAllCombinations(calculation.AllowedSpringNumber, allSprings, new List <SpringModel>());

            int springNumber = calculation.CountSpringNumber();
            List <List <SpringModel> > allCombinations = new List <List <SpringModel> >();

            foreach (List <SpringModel> setup in allSetups)
            {
                allCombinations.AddRange(CreateAllCombinations(springNumber, setup, new List <SpringModel>()));
            }

            //List<SolutionModel> solutions = new List<SolutionModel>();

            foreach (List <SpringModel> springSetup in allCombinations)
            {
                solutions.Add(new SolutionModel(calculation, springSetup));
            }

            solutions = solutions.Distinct().ToList();

            foreach (SolutionModel solution in solutions)
            {
                solution.SimulateSolution();
            }

            //objListOrder.Sort((x, y) => x.OrderDate.CompareTo(y.OrderDate));

            //solutions.Sort((x, y) => x.Result.CompareTo(y.Result));
        }
Example #2
0
        public static void CreateCalculation(CalculationsModel model)
        {
            CreateCompressor(model.Compressor);

            foreach (FixationPointModel point in model.Points)
            {
                CreateFixationPoint(point);
            }

            List <CalculationsModel> allCalculations = Calculations_GetAll();

            if (allCalculations.Count > 0)
            {
                model.Id = allCalculations.OrderByDescending(x => x.Id).First().Id + 1;
            }

            else
            {
                model.Id = 1;
            }

            allCalculations.Add(model);

            allCalculations.SaveCalculationsToFile();
        }
Example #3
0
        public static List <CalculationsModel> ConvertTextToCalculation(this List <string> lines)
        {
            //Id|^|Name|^|CompressorId|^|PointId\\\\PointId\\\\PointId|^|AllowedSpringNumber;

            List <CalculationsModel> output = new List <CalculationsModel>();
            CalculationsModel        curr   = new CalculationsModel();

            List <FixationPointModel> fixationPoints = TextConnector.FixationPoint_GetAll();
            List <CompressorModel>    compressors    = TextConnector.Compressor_GetAll();

            foreach (string line in lines)
            {
                string[] cols = line.Split(new string[] { "|^|" }, StringSplitOptions.None);
                curr.Id         = int.Parse(cols[0]);
                curr.Name       = cols[1];
                curr.Compressor = compressors.Where(x => x.Id == int.Parse(cols[2])).First();

                string[] colsPoint = cols[3].Split(new string[] { "," }, StringSplitOptions.None);
                foreach (string point in colsPoint)
                {
                    curr.Points.Add(fixationPoints.Where(x => x.Id == int.Parse(point)).ToList().First());
                }

                curr.AllowedSpringNumber = int.Parse(cols[4]);

                output.Add(curr);
                curr = new CalculationsModel();
            }

            return(output);
        }
        private static int CountSpringNumber(this CalculationsModel model)
        {
            int output = 0;

            foreach (FixationPointModel point in model.Points)
            {
                if (point.UpperSpringBool)
                {
                    output++;
                }
                if (point.LowerSpringBool)
                {
                    output++;
                }
            }

            return(output);
        }
Example #5
0
        public SolutionModel(CalculationsModel model, List <SpringModel> springSetup) : base(model)
        {
            List <SpringModel> springs = new List <SpringModel>(springSetup);
            List <SpringModel> param   = new List <SpringModel>();

            this.Points = new List <SolutionPointModel>();

            foreach (FixationPointModel point in model.Points)
            {
                if (point.UpperSpringBool)
                {
                    param.Add(springs.First());
                    springs.RemoveAt(0);
                }
                else
                {
                    param.Add(new SpringModel(true));
                }

                if (point.LowerSpringBool)
                {
                    param.Add(springs.First());
                    springs.RemoveAt(0);
                }
                else
                {
                    param.Add(new SpringModel(true));
                }

                this.Points.Add(new SolutionPointModel(point, new List <SpringModel>(param)));

                param.Clear();
            }

            if (Points.Count() == 3)
            {
                this.Points.Add(new SolutionPointModel(true));
            }
        }
Example #6
0
        private void loadCalculationsButton_Click(object sender, EventArgs e)
        {
            if (calculationsComboBox.SelectedItem == null)
            {
                MessageBox.Show("You dind't choose any calculation to perform!");
                return;
            }

            CalculationsModel chosenCalculation = new CalculationsModel();

            chosenCalculation = (CalculationsModel)calculationsComboBox.SelectedItem;

            List <SolutionModel> solutions = new List <SolutionModel>();

            chosenCalculation.PrepareCalculationsSet(solutions);

            List <SolutionModel> results = new List <SolutionModel>();

            solutions.SelectSolutions(results);

            ResultsViewer frm = new ResultsViewer(results);

            frm.Show();
        }
        private void calculateButton_Click(object sender, EventArgs e)
        {
            if (!ValidateData())
            {
                return;
            }

            fixationPoints.Clear();

            calculation = new CalculationsModel();

            FixationPointModel fixationPointOne   = new FixationPointModel();
            FixationPointModel fixationPointTwo   = new FixationPointModel();
            FixationPointModel fixationPointThree = new FixationPointModel();
            FixationPointModel fixationPointFour  = new FixationPointModel()
            {
                Chosen = false
            };

            CompressorModel compressorModel = new CompressorModel();

            fixationPointOne.XPosition       = double.Parse(pointOnePositionXTextBox.Text);
            fixationPointOne.YPosition       = double.Parse(pointOnePositionYTextBox.Text);
            fixationPointOne.UpperSpringBool = upperSpringOneCheckBox.Checked;
            fixationPointOne.LowerSpringBool = lowerSpringOneChceckBox.Checked;
            fixationPointOne.Parts           = (PartSetModel)otherPartsSizeOneComboBox.SelectedItem;
            fixationPointOne.Chosen          = true;

            fixationPointTwo.XPosition       = double.Parse(pointTwoPositionXTextBox.Text);
            fixationPointTwo.YPosition       = double.Parse(pointTwoPositionYTextBox.Text);
            fixationPointTwo.UpperSpringBool = upperSpringTwoCheckBox.Checked;
            fixationPointTwo.LowerSpringBool = lowerSpringTwoChceckBox.Checked;
            fixationPointTwo.Parts           = (PartSetModel)otherPartsSizeTwoComboBox.SelectedItem;
            fixationPointTwo.Chosen          = true;


            fixationPointThree.XPosition       = double.Parse(pointThreePositionXTextBox.Text);
            fixationPointThree.YPosition       = double.Parse(pointThreePositionYTextBox.Text);
            fixationPointThree.UpperSpringBool = upperSpringThreeCheckBox.Checked;
            fixationPointThree.LowerSpringBool = lowerSpringThreeChceckBox.Checked;
            fixationPointThree.Parts           = (PartSetModel)otherPartsSizeTwoComboBox.SelectedItem;
            fixationPointThree.Chosen          = true;


            if (fourFixationPointsRadioButton.Checked == true)
            {
                fixationPointFour.XPosition       = double.Parse(pointFourPositionXTextBox.Text);
                fixationPointFour.YPosition       = double.Parse(pointFourPositionYTextBox.Text);
                fixationPointFour.UpperSpringBool = upperSpringFourCheckBox.Checked;
                fixationPointFour.LowerSpringBool = lowerSpringFourChceckBox.Checked;
                fixationPointFour.Parts           = (PartSetModel)otherPartsSizeTwoComboBox.SelectedItem;
                fixationPointFour.Chosen          = true;
            }

            compressorModel.Mass = double.Parse(compressorMassTextBox.Text);

            compressorModel.XCorrection = double.Parse(xCorrectionTextBox.Text);
            compressorModel.YCorrection = double.Parse(yCorrectionTextBox.Text);

            compressorModel.CogDistToPistX = double.Parse(cogDistToPistXTextBox.Text);
            compressorModel.CogDistToIzolZ = double.Parse(cogDistToIzolZTextBox.Text);

            fixationPoints.Add(fixationPointOne);
            fixationPoints.Add(fixationPointTwo);
            fixationPoints.Add(fixationPointThree);
            if (fourFixationPointsRadioButton.Checked == true)
            {
                fixationPoints.Add(fixationPointFour);
            }

            calculation.Name                = calculationNameTextBox.Text;
            calculation.Compressor          = compressorModel;
            calculation.Points              = fixationPoints;
            calculation.AllowedSpringNumber = int.Parse((string)allowedSpringNumberComboBox.SelectedItem);

            TextConnector.CreateCalculation(calculation);

            List <SolutionModel> solutions = new List <SolutionModel>();

            calculation.PrepareCalculationsSet(solutions);

            List <SolutionModel> results = new List <SolutionModel>();

            solutions.SelectSolutions(results);

            ResultsViewer frm = new ResultsViewer(results);

            frm.Show();
        }