From 0f99d4d12f2eae29bbe343f4b3131f2faeccda5d Mon Sep 17 00:00:00 2001 From: Shuxia Ning <NingShuxia0927@outlook.com> Date: 星期二, 14 一月 2025 17:31:20 +0800 Subject: [PATCH] 泵曲线修改 --- WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/01-view/PumpChartViewCtrl.cs | 719 ++++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 611 insertions(+), 108 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/01-view/PumpChartViewCtrl.cs b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/01-view/PumpChartViewCtrl.cs index fa4a6f1..edbcbc1 100644 --- a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/01-view/PumpChartViewCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/01-view/PumpChartViewCtrl.cs @@ -1,24 +1,38 @@ -锘縩amespace HStation.WinFrmUI +锘縰sing DevExpress.Spreadsheet; +using Mapster; +using StackExchange.Profiling.Internal; +using Yw.Ahart; +using Yw.Geometry; +using Yw.Pump; +using Yw.WinFrmUI.Phart; + +namespace HStation.WinFrmUI { public partial class PumpChartViewCtrl : DevExpress.XtraEditors.XtraUserControl { public PumpChartViewCtrl() { InitializeComponent(); + this.barCekEqVisible.Checked = true; + this.barCekEqulEffVisible.Checked = true; + this.barCekPowerVisible.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + this.barCekEqVisible.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + + this.barBtnAddVariableSpeedMenu.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + this.barBtnAddEqualEffMenu.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + this.barCekEqulEffVisible.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; } + private Yw.Vmo.PhartDiagramExGraphListVmo _vmo = null; - private Yw.WinFrmUI.Phart.PumpCurveViewModel _vm = null; + private List<Yw.WinFrmUI.Phart.PumpViewChartViewModel> _vm_list = null; - private bool _default_visible = true; - private bool _power_visible = false; - private bool _eff_visible = false; - private bool _split_panel = false; - - /// <summary> - /// 鏁版嵁鍙樻洿浜嬩欢 - /// </summary> - public event Action<Yw.Vmo.PhartDiagramExGraphListVmo> DataChangedEvent; + private string _coordinate = null; + private bool _power_visible = true; + private bool _eff_visible = true; + private bool _equal_eff_visible = true; + private bool _split_panel = true; + private double _nr; /// <summary> /// 缁戝畾鏁版嵁 @@ -26,152 +40,641 @@ public void SetBindingData(Yw.Vmo.PhartDiagramExGraphListVmo vmo, double nr) { _vmo = vmo; + _nr = nr; + _vm_list = null; + _coordinate = null; if (vmo == null) { ClearBindingData(); return; } - var vm_list = vmo.GetPumpCurveViewMdoelList(); - if (vm_list == null || !vm_list.Any()) + + var vm_list = new List<Yw.WinFrmUI.Phart.PumpViewChartViewModel>(); + if (vmo.GraphList == null || !vmo.GraphList.Any()) { ClearBindingData(); return; } - var vm_def = vmo.GetDefaultPumpCurveViewMdoel(); - if (vm_def == null) - return; + _coordinate = vmo.DispParas; - var vm_v_speed_list = vmo.GetVariableSpeedPumpCurveViewMdoelList(); - var vm_e_eff_list = vmo.GetCurveEqualEViewMdoelList(); - - var vm = new Yw.WinFrmUI.Phart.PumpCurveViewModel(); - vm.Id = ""; - vm.ColorQH = Color.Blue; - vm.ColorQE = Color.Green; - vm.ColorQP = Color.Red; - vm.CurveQHName = "QH"; - vm.CurveQPName = "QP"; - vm.CurveQH = vm_def.CurveQH.FeatCurve.GetPointList(50); - vm.CurveQE = vm_def.CurveQE?.FeatCurve.GetPointList(50); - vm.CurveQP = vm_def.CurveQP?.FeatCurve.GetPointList(50); - vm.PointListQH = vm.CurveQH; - vm.PointListQE = vm.CurveQE; - vm.PointListQP = vm.CurveQP; - vm.Equip = null; - if (vm_e_eff_list == null || !vm_e_eff_list.Any()) + foreach (var graph in vmo.GraphList) { - var curve_qe = vm_def.CurveQE.FeatCurve; - if (curve_qe != null && curve_qe.IsValid()) + double hz = 50; + double n = nr; + var curve_type = (Yw.Ahart.eCurveType)graph.GraphType; + switch (curve_type) { - var max_eff = curve_qe.GetPointList().Max(x => x.Y); - var eff_list = EqualParaCurveEListHelper.CalcEqualParaCurveE(vm_def, 50, 30, max_eff - 1); - if (eff_list != null && eff_list.Any()) - { - vm.EqualEffList = new List<Yw.WinFrmUI.Phart.PumpCurveEqualEffViewModel>(); - foreach (var item in eff_list) + case Yw.Ahart.eCurveType.QH: { - var def_pt_list = item.DefinePoints; - var eff_vm = new Yw.WinFrmUI.Phart.PumpCurveEqualEffViewModel(); - eff_vm.Id = Guid.NewGuid().ToString(); - eff_vm.CurveName = $"{item.Eff:N1}"; - eff_vm.Color = Color.DarkGreen; - eff_vm.CurveEqualEff = item.DefinePoints; - eff_vm.Tension = item.Tension; - eff_vm.IsClosed = item.IsClosed; - vm.EqualEffList.Add(eff_vm); + var paras = PhartGraphHelper.GetGraphParas<Yw.WinFrmUI.Phart.QHGraphParasViewModel>(curve_type, graph.GraphParas); + hz = paras.Hz; + n = paras.N; } + break; + case Yw.Ahart.eCurveType.QP: + { + var paras = PhartGraphHelper.GetGraphParas<Yw.WinFrmUI.Phart.QPGraphParasViewModel>(curve_type, graph.GraphParas); + hz = paras.Hz; + n = paras.N; + } + break; + case Yw.Ahart.eCurveType.QE: + { + var paras = PhartGraphHelper.GetGraphParas<Yw.WinFrmUI.Phart.QEGraphParasViewModel>(curve_type, graph.GraphParas); + hz = paras.Hz; + n = paras.N; + } + break; + } + + var feat_curve = PhartGraphHelper.GetPerformCurve(curve_type, graph.GeometryInfo); + var geometry_paras = PhartGraphHelper.GetGeometryParas(curve_type, graph.GeometryParas); + var annotation_list = PhartGraphHelper.GetAnnotationParasList(curve_type, graph.AnnotationParas); + if (curve_type == eCurveType.QE) + annotation_list = null; + var vm = new Yw.WinFrmUI.Phart.PumpViewChartViewModel(); + vm.Id = graph.ID.ToString(); + vm.Hz = hz; + vm.N = n; + vm.AnnotationList = annotation_list; + vm.CurveType = feat_curve.CurveType; + vm.FeatType = feat_curve.FeatType; + vm.DefPointList = geometry_paras?.DefinePoints; + vm.FitPointList = feat_curve.FeatCurve.GetPointList(100); + if (vm.CurveType== eCurveType.EqualE) + vm.FitPointList = feat_curve.FeatCurve.GetPointList(10); + + vm.GraphParas = graph.GraphParas; + vm_list.Add(vm); + } + + _vm_list = vm_list; + _vm_list[0].IsSelect = true; + + SetColor(_vm_list); + SetBindingData(_vm_list, _coordinate, _split_panel, _eff_visible, _power_visible, _equal_eff_visible); + } + + /// <summary> + /// + /// </summary> + private void SetColor(List<Yw.WinFrmUI.Phart.PumpViewChartViewModel> vm_list) + { + if (vm_list == null || !vm_list.Any()) + return; + var group = vm_list.GroupBy(x => x.Hz); + if (group.Count() > 1) + { + for (int i = 0; i < group.Count(); i++) + { + var color = Yw.WinFrmUI.PhartColorHelper.Get(i); + var item = group.ElementAt(i); + foreach (var vm in item) + { + vm.Color = color; + if (vm.CurveType == eCurveType.EqualE) + vm.Color = Color.DarkGreen; } } } - - - //vm.VariableSpeedList = new List<Yw.WinFrmUI.Phart.PumpChartVariableSpeedViewModel>(); - //vm.EqualPowerList = new List<Yw.WinFrmUI.Phart.PumpChartEqualPowerViewModel>(); - //for (int eff = 30; eff < 90; eff += 1) - //{ - // var ve = new Yw.WinFrmUI.Phart.PumpChartEqualEffViewModel(); - // //ve.Id = rhs.Id; - // ve.CurveName = $"{eff}"; - // ve.Color = Color.ForestGreen; - // ve.CurveEqualEff = new List<Yw.Geometry.Point2d>(); - // for (int hz = 30; hz <= 50; hz += 5) - // { - // var qe = vm_defult.CurveQE.ToNewByN(50, hz); - // var q_array = qe.FeatCurve.GetPointsX(eff); - // if (q_array == null || !q_array.Any()) - // { - // continue; - // } - // var qh = vm_defult.CurveQH.ToNewByN(50, hz); - // var flow = q_array.FirstOrDefault(); - // var head = qh.FeatCurve.GetPointY(flow); - // ve.CurveEqualEff.Add(new Yw.Geometry.Point2d(flow, head)); - // } - // if (!ve.CurveEqualEff.Any()) - // { - // continue; - // } - - // vm.EqualEffList.Add(ve); - //} - - //for (int hz = 30; hz < 50; hz += 5) - //{ - // var tN = nr * hz / 50; - // var vs = new Yw.WinFrmUI.Phart.PumpChartVariableSpeedViewModel(); - // vs.CurveQHName = $"{tN}"; - // vs.CurveQPName = $"{tN}"; - // vs.CurveQH = vm_defult.CurveQH.GetPointListByN(nr, tN, 50); - // vs.CurveQE = vm_defult.CurveQE.GetPointListByN(nr, tN, 50); - // vs.CurveQP = vm_defult.CurveQP.GetPointListByN(nr, tN, 50); - // vs.Hz = hz; - // vs.N = tN; - // vm.VariableSpeedList.Add(vs); - //} - - SetBindingData(vm, _default_visible, _split_panel, _eff_visible, _power_visible); + else + { + var item = group.ElementAt(0); + foreach (var vm in item) + { + switch (vm.CurveType) + { + case Yw.Ahart.eCurveType.QH: vm.Color = Yw.WinFrmUI.Phart.PumpChartDisplay.CurveColorQH; break; + case Yw.Ahart.eCurveType.QP: vm.Color = Yw.WinFrmUI.Phart.PumpChartDisplay.CurveColorQP; break; + case Yw.Ahart.eCurveType.QE: vm.Color = Yw.WinFrmUI.Phart.PumpChartDisplay.CurveColorQE; break; + } + } + } } - /// <summary> /// 缁戝畾鏁版嵁 /// </summary> - public void SetBindingData(Yw.WinFrmUI.Phart.PumpCurveViewModel vm, bool default_visible = true, bool split_panel = false, bool eff_visible = false, bool power_visible = true) + private void SetBindingData(List<Yw.WinFrmUI.Phart.PumpViewChartViewModel> vm_list, string coordinate, bool split_panel, bool eff_visible, bool power_visible, bool equal_eff_visible) { - _vm = vm; - if (vm == null) + if (IsInvalidData()) { ClearBindingData(); return; } - this.pumpChart1.SetBindingData(vm, default_visible, split_panel, eff_visible, power_visible); + var list = new List<Yw.WinFrmUI.Phart.PumpViewChartViewModel>(); + foreach (var item in vm_list) + { + if (!eff_visible) + { + if (item.CurveType == eCurveType.QE) + { + continue; + }; + } + + if (!power_visible) + { + if (item.CurveType == eCurveType.QP) + { + continue; + }; + } + + if (!equal_eff_visible) + { + if (item.CurveType == eCurveType.EqualE) + { + continue; + }; + } + + list.Add(item); + } + + this.pumpViewChart1.SetBindingData(list, coordinate, split_panel, eff_visible, power_visible, equal_eff_visible); } + //鏄惁鏄棤鏁堟暟鎹� + private bool IsInvalidData() + { + if (_vm_list == null || !_vm_list.Any()) + { + return true; + } + if (!_vm_list.Exists(x => x.CurveType == Yw.Ahart.eCurveType.QH)) + { + return true; + } + return false; + } /// <summary> /// 娓呯┖缁戝畾鏁版嵁 /// </summary> public void ClearBindingData() { - this.pumpChart1.ClearBindingData(); + this.pumpViewChart1.Clear(); + } + + + private void SetEquip() + { + if (_vmo == null) + return; + if (_vm_list == null || !_vm_list.Any()) + return; + if (this.barTxtStartHead.EditValue == null) + return; + if (this.barTxtPipeHead.EditValue == null) + return; + if (this.barTxtPipeQ.EditValue == null) + return; + + var qh50 = _vm_list.Find(x => x.Hz == 50 && x.CurveType == Yw.Ahart.eCurveType.QH); + if (qh50 == null) + return; + + var start_head = Convert.ToDouble(this.barTxtStartHead.EditValue); + var pipe_head = Convert.ToDouble(this.barTxtPipeHead.EditValue); + var pipe_flow = Convert.ToDouble(this.barTxtPipeQ.EditValue); + + var equip_pt = new Yw.Geometry.Point2d(pipe_flow, pipe_head); + var equip_pt_list = Yw.Pump.PerformParabolaHelper.GetEquipCurvePointListByQH(qh50.FitPointList, equip_pt, start_head, 30, true, out Yw.Geometry.Point2d sect_pt); + if (equip_pt_list == null || sect_pt == null) + { + XtraMessageBox.Show("璁$畻澶辫触,璁捐鐐逛笉鍚堢悊!"); + return; + } + + var pump_sect_pt = new Yw.WinFrmUI.Phart.PumpSectPointViewModel(); + pump_sect_pt.Q = sect_pt.X; + pump_sect_pt.H = sect_pt.Y; + + var qe50 = _vm_list.Find(x => x.Hz == 50 && x.CurveType == Yw.Ahart.eCurveType.QE); + if (qe50 != null) + { + pump_sect_pt.E = qe50?.FitPointList?.GetInterPointsY(sect_pt.X)?.FirstOrDefault(); + } + + var qp50 = _vm_list.Find(x => x.Hz == 50 && x.CurveType == Yw.Ahart.eCurveType.QP); + if (qp50 != null) + { + pump_sect_pt.P = qp50?.FitPointList?.GetInterPointsY(sect_pt.X)?.FirstOrDefault(); + } + + this.pumpViewChart1.SetEquip(equip_pt_list, pump_sect_pt); } private void barCekEffVisible_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { _eff_visible = this.barCekEffVisible.Checked; - SetBindingData(_vm, _default_visible, _split_panel, _eff_visible, _power_visible); + SetBindingData(_vm_list,_coordinate, _split_panel, _eff_visible, _power_visible, _equal_eff_visible); } private void barCekPowerVisible_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { _power_visible = this.barCekPowerVisible.Checked; - SetBindingData(_vm, _default_visible, _split_panel, _eff_visible, _power_visible); + SetBindingData(_vm_list,_coordinate, _split_panel, _eff_visible, _power_visible, _equal_eff_visible); } private void barCekSplitPanel_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { _split_panel = this.barCekSplitPanel.Checked; - SetBindingData(_vm, _default_visible, _split_panel, _eff_visible, _power_visible); + SetBindingData(_vm_list,_coordinate, _split_panel, _eff_visible, _power_visible, _equal_eff_visible); + } + + private void barCekEqVisible_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + if (this.barCekEqVisible.Checked) + { + SetEquip(); + } + else + { + this.pumpViewChart1.SetEquip(null,null); + } + } + + private void barCekEqulEffVisible_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + _equal_eff_visible = this.barCekEqulEffVisible.Checked; + SetBindingData(_vm_list,_coordinate, _split_panel, _eff_visible, _power_visible, _equal_eff_visible); + } + + private void barBtnEqClear_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + this.barTxtStartHead.EditValue = 0; + this.barTxtPipeQ.EditValue = null; + this.barTxtPipeHead.EditValue = null; + + this.pumpViewChart1.SetEquip(null, null); + } + + private void barBtnSetEqPt_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + SetEquip(); + } + + private void barBtnAddVariableSpeedByN_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + AddByN(); + } + + private void barBtnAddVariableSpeedByHz_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + AddByHz(); + } + + private void barBtnAddVariableSpeedByPoint_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + AddByPoint(); + } + + private void barBtnAddEqualEffByEff_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + AddByEff(); + } + + private void AddByN() + { + if (IsInvalidData()) + return; + var qh50 = _vm_list.Find(x => x.Hz == 50 && x.CurveType == Yw.Ahart.eCurveType.QH); + if (qh50 == null) + return; + var qe50 = _vm_list.Find(x => x.Hz == 50 && x.CurveType == Yw.Ahart.eCurveType.QE); + var qp50 = _vm_list.Find(x => x.Hz == 50 && x.CurveType == Yw.Ahart.eCurveType.QP); + + var dlg = new Yw.WinFrmUI.Phart.SetValueDlg(); + dlg.SetBindingData(_nr); + dlg.VerifyValueChanged += (speed) => + { + var hz = Math.Round(speed / _nr * 50, 1); + if (hz > 50 || hz < 10) + { + return false; + } + if (_vm_list.Exists(x => x.N == speed)) + { + TipFormHelper.ShowWarn("杞�熷凡瀛樺湪"); + return false; + } + hz = Math.Round(hz, 1); + + var pt_qh_list = qh50.FitPointList.GetQHPointListByN(50, hz); + var pt_qe_list = qe50?.FitPointList?.GetQEPointListByN(50, hz); + var pt_qp_list = qp50?.FitPointList?.GetQPPointListByN(50, hz); + + Insert(hz,speed,pt_qh_list,pt_qe_list,pt_qp_list); + return true; + }; + dlg.ShowDialog(); + } + + private void AddByHz() + { + if (IsInvalidData()) + return; + + var qh50 = _vm_list.Find(x => x.Hz == 50 && x.CurveType == Yw.Ahart.eCurveType.QH); + if (qh50 == null) + return; + var qe50 = _vm_list.Find(x => x.Hz == 50 && x.CurveType == Yw.Ahart.eCurveType.QE); + var qp50 = _vm_list.Find(x => x.Hz == 50 && x.CurveType == Yw.Ahart.eCurveType.QP); + + var dlg = new Yw.WinFrmUI.Phart.SetValueDlg(); + dlg.VerifyValueChanged += (hz) => + { + if (hz > 50 || hz < 10) + { + return false; + } + if (_vm_list.Exists(x => x.Hz == hz)) + { + TipFormHelper.ShowWarn("棰戠巼宸插瓨鍦�"); + return false; + } + var speed = Math.Round(hz / 50 * _nr); + speed = Math.Round(speed, 1); + + + var pt_qh_list = qh50.FitPointList.GetQHPointListByN(50, hz); + var pt_qe_list = qe50?.FitPointList?.GetQEPointListByN(50, hz); + var pt_qp_list = qp50?.FitPointList?.GetQPPointListByN(50, hz); + + Insert(hz, speed, pt_qh_list, pt_qe_list, pt_qp_list); + return true; + }; + dlg.ShowDialog(); + } + + private void AddByPoint() + { + if (IsInvalidData()) + return; + + var qh50 = _vm_list.Find(x => x.Hz == 50 && x.CurveType == Yw.Ahart.eCurveType.QH); + if (qh50 == null) + return; + var qe50 = _vm_list.Find(x => x.Hz == 50 && x.CurveType == Yw.Ahart.eCurveType.QE); + var qp50 = _vm_list.Find(x => x.Hz == 50 && x.CurveType == Yw.Ahart.eCurveType.QP); + + var dlg = new Yw.WinFrmUI.Phart.SetPointDlg(); + dlg.SetBindingData(); + dlg.VerifyValueChanged += (x, y) => + { + var pt = new Yw.Geometry.Point2d(x, y); + var curve = new Yw.Pump. CurveQH(qh50.FeatType, qh50.DefPointList); + var sect_pt = Yw.Pump.PerformParabolaHelper.GetQHSectPoint(curve, pt); + if (sect_pt == null || sect_pt.IsZeroPoint()) + return false; + + var speed = sect_pt.Y.CalculateSimuByH(_nr, pt.Y); + var hz = Math.Round(speed / _nr * 50, 1); + if (hz > 50 || hz < 20) + { + return false; + } + speed = Math.Round(speed, 1); + if (_vm_list.Exists(x => x.N == speed)) + { + TipFormHelper.ShowWarn("杞�熷凡瀛樺湪"); + return false; + } + var pt_qh_list = qh50.FitPointList.GetQHPointListByN(50, hz); + var pt_qe_list = qe50?.FitPointList?.GetQEPointListByN(50, hz); + var pt_qp_list = qp50?.FitPointList?.GetQPPointListByN(50, hz); + + Insert(hz, speed, pt_qh_list, pt_qe_list, pt_qp_list); + return true; + }; + dlg.ShowDialog(); + } + + private void AddByEff() + { + if (IsInvalidData()) + return; + var qh50 = _vm_list.Find(x => x.Hz == 50 && x.CurveType == Yw.Ahart.eCurveType.QH); + if (qh50 == null) + return; + var qe50 = _vm_list.Find(x => x.Hz == 50 && x.CurveType == Yw.Ahart.eCurveType.QE); + if (qe50 == null) + return; + + var dlg = new SetEffDlg(); + dlg.SetBindingData(); + dlg.VerifyValueChanged += (eff_double_list) => + { + double max_hz = 50; + double min_hz = 30; + + max_hz = Math.Max(max_hz, _vm_list.Max(x => x.Hz)); + min_hz = Math.Min(min_hz, _vm_list.Min(x => x.Hz)); + + var qh = new Yw.Pump.CurveQH(qh50.FeatType, qh50.DefPointList); + var qe = new Yw.Pump.CurveQE(qe50.FeatType, qe50.DefPointList); + + foreach (var eff in eff_double_list) + { + var eff_list = EqualParaCurveEListHelper.CalcEqualParaCurveE(qh, qe, max_hz, min_hz, eff); + if (eff_list != null && eff_list.Any()) + { + foreach (var item in eff_list) + { + Insert(item.Eff,item.Tension,item.IsClosed,item.IsUShaped,item.DefinePoints); + } + } + } + + return true; + }; + dlg.ShowDialog(); + + } + + + private async void Insert(double hz, double speed, List<Yw.Geometry.Point2d> pt_qh_list, List<Yw.Geometry.Point2d> pt_qe_list, List<Yw.Geometry.Point2d> pt_qp_list) + { + var list = new List<Yw.Vmo.PhartGraphVmo>(); + var graph_qh = new Yw.Vmo.PhartGraphVmo() + { + Name = "鎵▼绾�", + GraphType = (int)Yw.Ahart.eCurveType.QH, + GraphParas = new QHGraphParasViewModel() + { + Hz = hz, + N = speed, + }.ToJson(), + GeometryParas = new Yw.WinFrmUI.Phart.CurveGeometryParasViewModel + { + DefinePoints = pt_qh_list + }.ToJson(), + GeometryStyle = (int)HStation.PhartRelation.eGeometryStyle.FeatCurve, + GeometryInfo = pt_qh_list.ToDbString(Yw.Ahart.eCurveType.QH, Yw.Ahart.eFeatType.Cubic), + AnnotationParas = new List<Yw.WinFrmUI.Phart.AnnotationParasViewModel>() + { + new () + { + X = pt_qh_list.Last().X, + Y = pt_qh_list.Last().Y, + Text = $"{speed}rpm({hz}hz)", + Aligment = eTextAligment.Right + } + }.ToJson() + }; + + list.Add(graph_qh); + if (pt_qe_list != null && pt_qe_list.Any()) + { + var graph_qe = new Yw.Vmo.PhartGraphVmo() + { + Name = "鏁堢巼绾�", + GraphType = (int)Yw.Ahart.eCurveType.QE, + GraphParas = new QEGraphParasViewModel() + { + Hz = hz, + N = speed, + }.ToJson(), + GeometryParas = new Yw.WinFrmUI.Phart.CurveGeometryParasViewModel + { + DefinePoints = pt_qe_list + }.ToJson(), + GeometryStyle = (int)HStation.PhartRelation.eGeometryStyle.FeatCurve, + GeometryInfo = pt_qe_list.ToDbString(Yw.Ahart.eCurveType.QE, Yw.Ahart.eFeatType.Cubic), + AnnotationParas = new List<Yw.WinFrmUI.Phart.AnnotationParasViewModel>() + { + new () + { + X = pt_qe_list.Last().X, + Y = pt_qe_list.Last().Y, + Text = $"{speed}rpm({hz}hz)", + Aligment = eTextAligment.Right + } + }.ToJson() + }; + + list.Add(graph_qe); + } + + + if (pt_qp_list != null && pt_qp_list.Any()) + { + var graph_qp = new Yw.Vmo.PhartGraphVmo() + { + Name = "鍔熺巼绾�", + GraphType = (int)Yw.Ahart.eCurveType.QP, + GraphParas = new QPGraphParasViewModel() + { + Hz = hz, + N = speed, + }.ToJson(), + GeometryParas = new Yw.WinFrmUI.Phart.CurveGeometryParasViewModel + { + DefinePoints = pt_qp_list + }.ToJson(), + GeometryStyle = (int)HStation.PhartRelation.eGeometryStyle.FeatCurve, + GeometryInfo = pt_qp_list.ToDbString(Yw.Ahart.eCurveType.QP, Yw.Ahart.eFeatType.Cubic), + AnnotationParas = new List<Yw.WinFrmUI.Phart.AnnotationParasViewModel>() + { + new () + { + X = pt_qp_list.Last().X, + Y = pt_qp_list.Last().Y, + Text = $"{speed}rpm({hz}hz)", + Aligment = eTextAligment.Right + } + }.ToJson() + }; + + list.Add(graph_qp); + } + + + list.ForEach(x => x.DiagramID = _vmo.ID); + var bol = await new Yw.BLL.PhartGraph().Inserts(list); + if (!bol) + { + TipFormHelper.ShowWarn("娣诲姞澶辫触!"); + return; + } + + var newVmo = await new Yw.BLL.PhartDiagramExtensions().GetByID(_vmo.ID); + if (newVmo == null) + { + TipFormHelper.ShowWarn("鑾峰彇澶辫触!"); + return; + } + + SetBindingData(newVmo, _nr); + SetEquip(); + } + + private async void Insert(double eff, double tension, bool is_closed,bool is_u, List<Yw.Geometry.Point2d> pt_equal_e_list) + { + if (tension<=0) + { + tension = 0.5; + } + var list = new List<Yw.Vmo.PhartGraphVmo>(); + var graph_equal_e = new Yw.Vmo.PhartGraphVmo() + { + Name = "鎵▼绾�", + GraphType = (int)Yw.Ahart.eCurveType.EqualE, + GraphParas = new EqualEGraphParasViewModel() + { + Eff = eff, + Tension = tension, + IsClosed = is_closed, + }.ToJson(), + GeometryParas = new Yw.WinFrmUI.Phart.CurveGeometryParasViewModel + { + DefinePoints = pt_equal_e_list + }.ToJson(), + GeometryStyle = (int)HStation.PhartRelation.eGeometryStyle.FeatCurve, + GeometryInfo = pt_equal_e_list.ToDbString(Yw.Ahart.eCurveType.EqualE, Yw.Ahart.eFeatType.Cubic), + + }; + + var annotation_list = new List<Yw.WinFrmUI.Phart.AnnotationParasViewModel>(); + annotation_list.Add(new() + { + X = pt_equal_e_list.Last().X, + Y = pt_equal_e_list.Last().Y, + Text = $"{eff}%", + Aligment = eTextAligment.Right + }); + if (is_u) + { + var first = pt_equal_e_list.First(); + annotation_list.Add(new() + { + X = first.X, + Y = first.Y, + Text = $"{eff}%", + Aligment = eTextAligment.Right + }); + } + graph_equal_e.AnnotationParas = annotation_list.ToJson(); + list.Add(graph_equal_e); + list.ForEach(x => x.DiagramID = _vmo.ID); + var bol = await new Yw.BLL.PhartGraph().Inserts(list); + if (!bol) + { + TipFormHelper.ShowWarn("娣诲姞澶辫触!"); + return; + } + + var newVmo = await new Yw.BLL.PhartDiagramExtensions().GetByID(_vmo.ID); + if (newVmo == null) + { + TipFormHelper.ShowWarn("鑾峰彇澶辫触!"); + return; + } + + SetBindingData(newVmo, _nr); + SetEquip(); } /// <summary> @@ -182,6 +685,6 @@ return new Yw.Vmo.PhartDiagramExGraphListVmo(); } - + } } -- Gitblit v1.9.3