示例#1
0
文件: MapClass.cs 项目: palatan6/fsim
        protected fsCalculatorVariable AddVariable(fsParameterIdentifier identifier)
        {
            var p = new fsCalculatorVariable(identifier);

            m_variables[identifier] = p;
            return(p);
        }
示例#2
0
 public fsYAxisParameterWithChecking(
     fsParameterIdentifier identifier,
     fsYParameterKind kind,
     bool isChecked)
     : base(identifier, kind)
 {
     IsChecked = isChecked;
 }
示例#3
0
        private void DataGridCellValueChangedByUser(object sender, DataGridViewCellEventArgs e)
        {
            fsParameterIdentifier parameter = m_rowToParameter[dataGrid.Rows[e.RowIndex]];
            double factor = ParameterRanges[parameter].Units.Coefficient;

            ParameterRanges[parameter].Range.From = fsValue.ObjectToValue(dataGrid[2, e.RowIndex].Value) * factor;
            ParameterRanges[parameter].Range.To   = fsValue.ObjectToValue(dataGrid[3, e.RowIndex].Value) * factor;
        }
示例#4
0
 protected void SetDefaultValue(fsParameterIdentifier identifier, fsValue value)
 {
     if (Values.ContainsKey(identifier))
     {
         ParameterToGroup[identifier].Representator = identifier;
         Values[identifier].Value = value;
     }
 }
示例#5
0
 public DiagramConfiguration(
     fsParameterIdentifier xAxisParameter,
     DiagramRange range,
     fsParameterIdentifier [] yAxisParameters)
 {
     this.xAxisParameter   = xAxisParameter;
     this.range            = range;
     this.yAxisParameters  = yAxisParameters;
     this.y2AxisParameters = new fsParameterIdentifier[0];
 }
示例#6
0
        protected void UpdateInputInGroup(fsParameterIdentifier parameter)
        {
            fsParametersGroup g = ParameterToGroup[parameter];

            g.Representator = parameter;
            foreach (fsParameterIdentifier p in g.Parameters)
            {
                ParameterToCell[p].Style.ForeColor = p == parameter ? Color.Blue : Color.Black;
            }
        }
示例#7
0
        protected fsCalculatorConstant AddConstant(fsParameterIdentifier identifier)
        {
            var c = new fsCalculatorConstant(identifier);

            if (m_constants.ContainsKey(identifier))
            {
                throw new Exception("Parameter " + identifier.ToString() + " already exists in constants.");
            }
            m_constants[identifier] = c;
            return(c);
        }
示例#8
0
        protected fsCalculatorVariable AddVariable(fsParameterIdentifier identifier)
        {
            var p = new fsCalculatorVariable(identifier);

            if (m_variables.ContainsKey(identifier))
            {
                throw new Exception("Parameter " + identifier.ToString() + " already exists in variables.");
            }
            m_variables[identifier] = p;
            return(p);
        }
示例#9
0
 public fsParameterRange(
     fsParameterIdentifier parameterIdentifier,
     fsUnit units,
     double rangeStart,
     double rangeEnd)
 {
     Identifier = parameterIdentifier;
     Units      = units;
     Range      = new fsRange(rangeStart * units.Coefficient,
                              rangeEnd * units.Coefficient);
 }
示例#10
0
        protected void AssignParameterAndCell(fsParameterIdentifier parameter, DataGridViewCell dataGridViewCell)
        {
            if (ParameterToCell.ContainsKey(parameter))
            {
                ParameterToCell.Remove(parameter);
            }
            ParameterToCell.Add(parameter, dataGridViewCell);

            if (CellToParameter.ContainsKey(dataGridViewCell))
            {
                CellToParameter.Remove(dataGridViewCell);
            }
            CellToParameter.Add(dataGridViewCell, parameter);
        }
示例#11
0
        private fsDiagramWithTable.fsNamedArray GetArray(fsParameterIdentifier yParameter)
        {
            List <fsSimulationModuleParameter> values = m_data[yParameter];
            var array = new fsDiagramWithTable.fsNamedArray
            {
                Name = yParameter.Name + " [" + m_data[yParameter][0].Unit.Name + "]", Array = new fsValue[values.Count]
            };

            for (int i = 0; i < values.Count; ++i)
            {
                array.Array[i] = values[i].GetValueInUnits();
            }
            return(array);
        }
示例#12
0
        protected void DataGridCellValueChangedByUser(object sender, DataGridViewCellEventArgs e)
        {
            DataGridViewCell cell = ((DataGridView)sender).CurrentCell;

            if (cell == null || !CellToParameter.ContainsKey(cell))
            {
                return;
            }

            fsParameterIdentifier parameter = CellToParameter[cell];

            UpdateInputInGroup(parameter);
            ReadEnteredValue(cell, parameter);
            RecalculateAndRedraw();
        }
示例#13
0
        private void IterationListSelectedIndexChanged(object sender, EventArgs e)
        {
            fsParameterIdentifier newIterationParameter = m_values.Keys.FirstOrDefault(parameter => parameter.Name == iterationList.Text);

            if (m_iterationParameter != newIterationParameter)
            {
                m_iterationParameter = newIterationParameter;
                RefreshRangesBoxes();
                RefreshInputsBox();
                CalculateData();
                RefreshOutputAndReadXyParameters();
                m_xAxisComboBox.Text = m_iterationParameter.Name;  // set the same x axis parameter as iteration parameter
                                                                   // we should assign text after RefreshOutputAndReadXYParameters
                                                                   // because it may happen that before RefreshOutputAndReadXYParameters there are no
                                                                   // element with necessary value and assigning may fail
                RedrawTableAndChart();
            }
        }
示例#14
0
        public void SetDiagram(
            fsParameterIdentifier iterationParameter,
            fsParameterIdentifier [] yAxisParameters,
            fsParameterIdentifier [] y2AxisParameters)
        {
            m_iterationParameter = iterationParameter;
            m_xAxisComboBox.Text = m_iterationParameter.Name;
            m_yAxisParameters.Clear();
            foreach (fsParameterIdentifier p in yAxisParameters)
            {
                m_yAxisParameters.Add(p);
            }

            m_y2AxisParameters.Clear();
            foreach (fsParameterIdentifier p in y2AxisParameters)
            {
                m_y2AxisParameters.Add(p);
            }
        }
示例#15
0
        private void RefreshInputAndReadIterationParameter()
        {
            if (!m_inputRefreshing)
            {
                m_inputRefreshing = true;

                RefreshIterationList();

                m_iterationParameter = m_values.Keys.FirstOrDefault(parameter => parameter.Name == iterationList.Text);

                RefreshRangesBoxes();

                if (detalizationBox.Text == "")
                {
                    detalizationBox.Text = @"50";
                }

                RefreshInputsBox();

                m_inputRefreshing = false;
            }
        }
示例#16
0
        private void RefreshInputsBox()
        {
            var materialInputData          = new List <string>();
            var machiningSettingsInputData = new List <string>();

            foreach (fsParametersGroup group in m_groups)
            {
                if (group.Parameters.Contains(m_iterationParameter))
                {
                    continue;
                }

                if (group.GetIsInputFlag())
                {
                    fsParameterIdentifier parameter = group.Representator;
                    string line = parameter.Name
                                  + "\t" + m_values[parameter].Unit.Name
                                  + "\t" + m_values[parameter].GetValueInUnits();
                    if (group.Kind == fsParametersGroup.fsParametersGroupKind.MaterialParameters)
                    {
                        materialInputData.Add(line);
                    }
                    else
                    {
                        machiningSettingsInputData.Add(line);
                    }
                }
            }

            var lines = new List <string>();

            lines.AddRange(materialInputData);
            lines.Add("------------------------------------");
            lines.AddRange(machiningSettingsInputData);

            inputsTextBox.ForeColor = Color.Blue;
            inputsTextBox.Lines     = lines.ToArray();
        }
示例#17
0
        private void RefreshDiagramAndTable()
        {
            if (m_data.Count == 0)
            {
                return;
            }

            fsParameterIdentifier xParameter = m_iterationParameter;

            foreach (fsParameterIdentifier parameterIdentifier in m_values.Keys)
            {
                if (parameterIdentifier.Name == m_xAxisComboBox.Text)
                {
                    xParameter = parameterIdentifier;
                    break;
                }
            }
            fsDiagramWithTable.fsNamedArray xArray     = GetArray(xParameter);
            fsDiagramWithTable.fsNamedArray niceXArray = MakeIncreasingNiceNodes(xArray);

            fsDiagramWithTable1.SetXAxis(niceXArray);

            fsDiagramWithTable1.ClearYAxis();
            foreach (fsDiagramWithTable.fsNamedArray curve in m_yCurves)
            {
                fsDiagramWithTable1.AddYAxis(CalculteWithLinearization(curve, xArray, niceXArray));
            }

            fsDiagramWithTable1.ClearY2Axis();
            foreach (fsDiagramWithTable.fsNamedArray curve in m_y2Curves)
            {
                fsDiagramWithTable1.AddY2Axis(CalculteWithLinearization(curve, xArray, niceXArray));
            }

            fsDiagramWithTable1.Redraw();
        }
示例#18
0
 public fsSimulationModuleParameter(fsParameterIdentifier identifier, fsValue value)
     : base(identifier, value)
 {
     Unit  = identifier.MeasurementCharacteristic.CurrentUnit;
     Range = new fsRange(new fsValue(0), new fsValue(100));
 }
示例#19
0
        protected void ReadEnteredValue(DataGridViewCell cell, fsParameterIdentifier parameter)
        {
            fsSimulationModuleParameter value = Values[parameter];

            value.SetValueInUnits(fsValue.ObjectToValue(cell.Value));
        }
示例#20
0
 public fsCalculatorVariable(fsParameterIdentifier identifier, bool isInput)
     : base(identifier, isInput)
 {
     IsProcessed = false;
 }
示例#21
0
 public fsCalculatorVariable(fsParameterIdentifier identifier)
     : base(identifier)
 {
     IsProcessed = false;
 }
示例#22
0
 public fsYAxisParameter(fsParameterIdentifier identifier, fsYParameterKind kind)
 {
     Identifier = identifier;
     Kind       = kind;
 }