private MagicFormulaFittingDelegate(TireMagicFormula formula, IDataSet iDataset) { MagicFormula = formula; IDataset = iDataset; FittingResolved = false; Initialized = false; }
public MagicFormulaFittingDelegate(string TireName, IDataSet iDataset) { MagicFormula = new TireMagicFormula(TireName); IDataset = iDataset; FittingResolved = false; Initialized = false; }
public void SetMagicFormula(TireMagicFormula formula, List <MagicFormulaArguments> Args, string legendText) { foreach (var viewer in Viewers) { viewer.SetMagicFormula(formula, Args, legendText); } changed = true; }
protected async override void Reload(bool back) { NextButton.Enabled = false; CountBar.Value = 0; if (back) { notConfirm = true; Previous(); } else { notConfirm = false; cancel = false; previous = false; CountBar.Maximum = MFFD.Solver.Maxeval; Progress = new Progress <ProgressNotification>(); Progress.ProgressChanged += Progress_ProgressChanged; TMF_Save = MFFD.MagicFormula.Copy(); using (CancellationTokenSource = new CancellationTokenSource()) { try { await Task.Run(() => MFFD.Run(CancellationTokenSource, Progress), CancellationTokenSource.Token); } catch (Exception e) { // キャンセルされた場合 MFFD.SetInitialValue(TMF_Save); if (e is OperationCanceledException) { MessageBox.Show("キャンセル"); } else { MessageBox.Show("失敗\n" + e.Message); notConfirm = true; Previous(); return; } if (cancel) { CancelButton_Click(this, new EventArgs()); return; } if (previous) { notConfirm = true; Previous(); return; } } } } }
public void SetInitialValue(TireMagicFormula mf) { MagicFormula = mf; if (ValueChanged != null) { ValueChanged(); } Initialized = true; }
static public bool Export(string filename, ExportMode mode, TireMagicFormula mf) { if (mode == ExportMode.excel) { try { return(ExportExcel(filename, mf)); } catch (Exception e) { Log.Output(e.Message); return(false); } } return(false); }
static bool ExportExcel(string filename, TireMagicFormula mf) { //エクセルファイルのオープン var path = System.AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\'); var workBook = new XLWorkbook(path + "\\MagicFormulaBase.xlsx"); //1シート目の選択 var sheet = workBook.Worksheet(1); for (int i = 2; i <= 7; i++) { sheet.Cell(i, 2).Value = mf.FX.NormalizeOffsetParam[i - 2]; sheet.Cell(i, 3).Value = mf.FX.NormalizeScaleParam[i - 2]; } var list = new List <ApproximatingCurve>(10); list.Add(mf.FX); list.Add(mf.FY); list.Add(mf.CFX); list.Add(mf.CFY); list.Add(mf.MZ.PT); list.Add(mf.MZ.CMZM); list.Add(mf.MZ.MZR); int[] row = { 9, 12, 15, 18, 21, 24, 27 }; for (int i = 0; i < list.Count; i++) { for (int j = 0; j < list[i].Parameters.Count; ++j) { sheet.Cell(row[i], 2 + j).Value = "a" + j.ToString(); sheet.Cell(row[i] + 1, 2 + j).Value = list[i].Parameters[j]; } } workBook.SaveAs(filename); return(true); }
override protected bool OnNext() { if (MFFD.Initialized && !NowValueRB.Checked) { DialogResult result = MessageBox.Show("現在の値は変更されます。よろしいですか?", "確認", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2); //何が選択されたか調べる if (result == DialogResult.Yes) { //何もしない } else if (result == DialogResult.Cancel) { return(false); } } if (LoadDefaultRB.Checked) { var mf = new TireMagicFormula(MFFD.MagicFormula.TireName); /* * mf.FX.NormalizeOffsetParam = new MagicFormulaArguments(0, 0, 0, 0, 0, 0); * mf.FX.NormalizeScaleParam = new MagicFormulaArguments(1, 1, 1, 1, 1, 1); */ mf.FX.NormalizeOffsetParam = new MagicFormulaArguments(0, 0, 0, 0, 40, 53.1); mf.FX.NormalizeScaleParam = new MagicFormulaArguments(13, 1, 1600, 4, 50, 16); var param = mf.FY.Parameters; param[0] = 1.4; param[1] = 2200; param[2] = -800; param[3] = 0.05; param[4] = 3; param[5] = -1.8; param[6] = 0; param[7] = -6000; param[8] = 1; param[9] = 2; param[10] = 1; param[11] = 0.01; param[12] = 0.5; param[13] = 0.01; param[14] = 0; param[15] = -1; param[16] = -0.8; param[17] = 0.01; param[18] = 0.01; param[19] = 0.01; param[20] = 0; param[21] = 0; param[22] = 0; param[23] = 0; MFFD.SetInitialValue(mf); return(true); } else if (LoadFromFileRB.Checked) { if (System.IO.File.Exists(FileNameTB.Text)) { try { using (System.IO.FileStream stream = new System.IO.FileStream(FileNameTB.Text, System.IO.FileMode.Open)) { var mf = TireMagicFormula.Load(stream); MFFD.SetInitialValue(mf); } return(true); } catch (Exception e) { Log.Output(e.Message); MessageBox.Show("読み込みに失敗しました"); return(false); } } else { MessageBox.Show("ファイルがありません"); return(false); } } else if (NowValueRB.Checked) { MFFD.SetInitialValue(MFFD.MagicFormula); return(true); } else if (LoadFromOtherRB.Checked) { var node = MFLoadedCB.SelectedItem as ProjectTree.Node_MagicFormula; if (node != null) { MFFD.SetInitialValue(node.MFFD.MagicFormula.Copy()); return(true); } } return(false); }