From 62bcbdb29fe358fbb01237f7fb2aca211fd2b67a Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期二, 03 十二月 2024 12:09:16 +0800 Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0 --- WinFrmUI/Yw.WinFrmUI.Phart.Core/v3/02-pump/02-multi/01-parallel/PumpParallelChart.cs | 150 +++++++++++++++++++++++++++++++++---------------- 1 files changed, 100 insertions(+), 50 deletions(-) diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/v3/02-pump/02-multi/01-parallel/PumpParallelChart.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/v3/02-pump/02-multi/01-parallel/PumpParallelChart.cs index bccc641..8ef5679 100644 --- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/v3/02-pump/02-multi/01-parallel/PumpParallelChart.cs +++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/v3/02-pump/02-multi/01-parallel/PumpParallelChart.cs @@ -173,13 +173,13 @@ dxArgs.Cache.DrawLine(pen, new Point((int)c_pt_qh.Point.X, (int)c_pt_qh.Point.Y - 10), new Point((int)c_pt_qh.Point.X, (int)c_pt_qh.Point.Y + 10)); if (_qe_visible) { - var y_qe = _paralle_vm.CurrentCurveQE.GetPointY(_equip_sect_pt.X); + var y_qe = _paralle_vm.CurrentCurveQE.GetPointYUnlimited(_equip_sect_pt.X); var c_pt_qe = _diagram.DiagramToPoint(_equip_sect_pt.X, y_qe, _axis_x_flow, _axis_y_eff); dxArgs.Cache.DrawLine(pen, new Point((int)c_pt_qe.Point.X, (int)c_pt_qe.Point.Y - 10), new Point((int)c_pt_qe.Point.X, (int)c_pt_qe.Point.Y + 10)); } if (_qp_visible) { - var y_qp = _paralle_vm.CurrentCurveQP.GetPointY(_equip_sect_pt.X); + var y_qp = _paralle_vm.CurrentCurveQP.GetPointYUnlimited(_equip_sect_pt.X); var c_pt_qp = _diagram.DiagramToPoint(_equip_sect_pt.X, y_qp, _axis_x_flow, _axis_y_power); dxArgs.Cache.DrawLine(pen, new Point((int)c_pt_qp.Point.X, (int)c_pt_qp.Point.Y - 10), new Point((int)c_pt_qp.Point.X, (int)c_pt_qp.Point.Y + 10)); } @@ -214,7 +214,7 @@ { if (pt_list.Count == 1) { - var max_flow_head = vm.CurrentCurveQH.GetPointY(max_flow); + var max_flow_head = vm.CurrentCurveQH.GetPointYUnlimited(max_flow); pt_list.Add(new Yw.Geometry.Point2d(max_flow, max_flow_head)); } var pt_c_list = new List<PointF>(); @@ -239,7 +239,7 @@ { if (pt_list.Count == 1) { - var max_flow_eff = vm.CurrentCurveQE.GetPointY(max_flow); + var max_flow_eff = vm.CurrentCurveQE.GetPointYUnlimited(max_flow); pt_list.Add(new Yw.Geometry.Point2d(max_flow, max_flow_eff)); } var pt_c_list = new List<PointF>(); @@ -264,7 +264,7 @@ { if (pt_list.Count == 1) { - var max_flow_power = vm.CurrentCurveQP.GetPointY(max_flow); + var max_flow_power = vm.CurrentCurveQP.GetPointYUnlimited(max_flow); pt_list.Add(new Yw.Geometry.Point2d(max_flow, max_flow_power)); } var pt_c_list = new List<PointF>(); @@ -337,28 +337,30 @@ double flow = 0, head = 0; double? eff = null, power = null; flow = sect_pt.X; - head = vm.CurrentCurveQH.GetPointY(flow); + head = vm.CurrentCurveQH.GetPointYUnlimited(flow); if (vm.CurrentCurveQP != null) { - power = vm.CurrentCurveQP.GetPointY(flow); + power = vm.CurrentCurveQP.GetPointYUnlimited(flow); eff = PumpCalcHelper.CalculateE(flow, head, power.Value); } else if (vm.CurrentCurveQE != null) { - eff = vm.CurrentCurveQE.GetPointY(flow); + eff = vm.CurrentCurveQE.GetPointYUnlimited(flow); power = PumpCalcHelper.CalculateP(flow, head, eff.Value); } - - var design_pt = new PumpDesignPointViewModel(); - design_pt.Id = vm.Id; - design_pt.Q = flow; - design_pt.H = head; - design_pt.E = eff; - design_pt.P = power; - design_pt.Hz = vm.CurrentHz; - design_pt.N = vm.CurrentN; - design_pt_list.Add(design_pt); + + design_pt_list.Add(new PumpDesignPointViewModel + { + Id = vm.Id, + Name = vm.Name, + Q = flow, + H = head, + E = eff, + P = power, + Hz = vm.CurrentHz, + N = vm.CurrentN + }); } this.DesignPointChangedEvent?.Invoke(design_pt_list); @@ -379,14 +381,14 @@ /// 鏇存柊鍥捐〃 /// </summary>s public void UpdateChart(bool calc_coordinate = false) - { + { + CalcSeries(); + if (calc_coordinate || _coordinate == null) { //涓嶅己杩绠�,灏辩敤涓婃鏇存柊鐨勫潗鏍囩郴 CalcCoordinate(); } - - CalcSeries(); CalcChartAxis(); @@ -437,9 +439,13 @@ double _scaleMinH = 1, _scaleMaxH = 1; + foreach (var vm in _vm_list) { - var qh_pt_list = vm.CurrentCurveQH.GetPointList(); + var qh_pt_list = vm.CurveQH.GetPointList(); + if (vm.CurrentCurveQH != null) + qh_pt_list.AddRange(vm.CurrentCurveQH.GetPointList()); + var xxx = qh_pt_list.Select(x => x.X); var yyy = qh_pt_list.Select(x => x.Y); @@ -453,20 +459,56 @@ foreach (PumpParallelViewModel vm in _vm_list) { - if (vm.CurrentCurveQE == null) - continue; - var qe_pt_list = vm.CurrentCurveQE.GetPointList(); + var qe_pt_list = vm.CurveQE.GetPointList(); + if (vm.CurrentCurveQE != null) + qe_pt_list.AddRange(vm.CurrentCurveQE.GetPointList()); + var yyy = qe_pt_list.Select(x => x.Y); + _min_eff = Math.Max(_min_eff, yyy.Min()); _max_eff = Math.Max(_max_eff, yyy.Max()); } foreach (PumpParallelViewModel vm in _vm_list) { - if (vm.CurrentCurveQP == null) - continue; - var yyy = vm.CurrentCurveQP.GetPointList().Select(x => x.Y); + var qe_pt_list = vm.CurveQP.GetPointList(); + if (vm.CurrentCurveQP != null) + qe_pt_list.AddRange(vm.CurrentCurveQP.GetPointList()); + + var yyy = qe_pt_list.Select(x => x.Y); _min_power = Math.Min(_min_power, yyy.Min()); _max_power = Math.Max(_max_power, yyy.Max()); + } + + if (_paralle_vm != null) + { + { + var qh_pt_list = _paralle_vm.CurveQH.GetPointList(); + + var xxx = qh_pt_list.Select(x => x.X); + var yyy = qh_pt_list.Select(x => x.Y); + + _min_flow = Math.Min(_min_flow, xxx.Min()); + _max_flow = Math.Max(_max_flow, xxx.Max()); + + _min_head = Math.Min(_min_head, yyy.Min()); + _max_head = Math.Max(_max_head, yyy.Max()); + } + + if (_paralle_vm.CurveQE != null) + { + var qe_pt_list = _paralle_vm.CurveQE.GetPointList(); + var yyy = qe_pt_list.Select(x => x.Y); + _min_eff = Math.Max(_min_eff, yyy.Min()); + _max_eff = Math.Max(_max_eff, yyy.Max()); + } + + if (_paralle_vm.CurveQP != null) + { + var qp_pt_list = _paralle_vm.CurveQP.GetPointList(); + var yyy = qp_pt_list.Select(x => x.Y); + _min_power = Math.Min(_min_power, yyy.Min()); + _max_power = Math.Max(_max_power, yyy.Max()); + } } _coordinate = PumpCoordinate.CalcCoordinate(_min_flow, @@ -633,8 +675,12 @@ private void CalcParallelSeries(List<PumpParallelViewModel> list) { _paralle_vm = null; + this.barCekLineVisible.Enabled = false; if (list == null || !list.Any()) - return; + { + LineVisible = false; + return; + } var helper = new Yw.WinFrmUI.Phart.PumpParallelConnectionHelper(); foreach (var item in list) @@ -651,7 +697,8 @@ List<Yw.Geometry.Point2d> calc_pt_qp_list; var calc_staus = helper.CalculateParallel(out calc_pt_qh_list, out calc_pt_qe_list, out calc_pt_qp_list); if (!calc_staus || calc_pt_qh_list.Count < 4) - { + { + LineVisible = false; this.ParallelStatusChangedEvent?.Invoke(false, "骞惰仈澶辫触!"); return; } @@ -676,6 +723,8 @@ _paralle_vm.CurveQP = qp; CreateLineSeries(_paralle_vm); + this.barCekLineVisible.Enabled = true; + } /// <summary> @@ -683,8 +732,8 @@ /// </summary> private void CalcTextAnchorPoint() { - var x = this.chartControl1.Location.X + this.chartControl1.Width - (100); - var y = this.chartControl1.Location.Y + 100; + var x = this.chartControl1.Location.X + this.chartControl1.Width - (50); + var y = this.chartControl1.Location.Y; (_anno_txt_query_info.AnchorPoint as ChartAnchorPoint).X = x; (_anno_txt_query_info.AnchorPoint as ChartAnchorPoint).Y = y; @@ -717,7 +766,7 @@ var min_flow = _paralle_vm.CurveQH.MinX; var max_flow = _paralle_vm.CurveQH.MaxX; - x_flow ??= _equip_pt?.X ?? max_flow / 3 * 2; + x_flow ??= _equip_pt?.X ?? max_flow *0.8; if (x_flow < min_flow || x_flow > max_flow) return; @@ -725,16 +774,16 @@ double? paralle_eff = null, paralle_power = null; paralle_flow = x_flow.Value; - paralle_head = _paralle_vm.CurrentCurveQH.GetPointY(paralle_flow); + paralle_head = _paralle_vm.CurrentCurveQH.GetPointYUnlimited(paralle_flow); if (_paralle_vm.CurrentCurveQP != null) { - paralle_power = _paralle_vm.CurrentCurveQP.GetPointY(paralle_flow); + paralle_power = _paralle_vm.CurrentCurveQP.GetPointYUnlimited(paralle_flow); paralle_eff = PumpCalcHelper.CalculateE(paralle_flow, paralle_head, paralle_power.Value); } else if (_paralle_vm.CurrentCurveQE != null) { - paralle_eff = _paralle_vm.CurrentCurveQE.GetPointY(paralle_flow); + paralle_eff = _paralle_vm.CurrentCurveQE.GetPointYUnlimited(paralle_flow); paralle_power = PumpCalcHelper.CalculateP(paralle_flow, paralle_head, paralle_eff.Value); } @@ -748,24 +797,26 @@ flow = vm.CurrentCurveQH.GetPointsX(head).LastOrDefault(); if (vm.CurrentCurveQP != null) { - power = _paralle_vm.CurrentCurveQP.GetPointY(flow); + power = vm.CurrentCurveQP.GetPointYUnlimited(flow); eff = PumpCalcHelper.CalculateE(flow, head, power.Value); } else if (vm.CurrentCurveQE != null) { - eff = _paralle_vm.CurrentCurveQE.GetPointY(flow); + eff = vm.CurrentCurveQE.GetPointYUnlimited(flow); power = PumpCalcHelper.CalculateP(flow, head, eff.Value); } - - var pump_query_pt = new PumpQueryPointViewModel(); - pump_query_pt.Id = vm.Id; - pump_query_pt.Q = flow; - pump_query_pt.H = head; - pump_query_pt.E = eff; - pump_query_pt.P = power; - pump_query_pt.Hz = vm.CurrentHz; - pump_query_pt.N = vm.CurrentN; - query_pt_list.Add(pump_query_pt); + + query_pt_list.Add(new() + { + Id = vm.Id, + Name=vm.Name, + Q = flow, + H = head, + E = eff, + P = power, + Hz = vm.CurrentHz, + N = vm.CurrentN + }); } var work_info_str_builder = new StringBuilder(); @@ -797,8 +848,7 @@ series_qh.Name = _tag_qh + vm.Id.ToString(); series_qh.ShowInLegend = false; series_qh.CrosshairEnabled = DefaultBoolean.False; - series_qh.Tag = vm.Id.ToString(); - series_qh.ShowInLegend = true; + series_qh.Tag = vm.Id.ToString(); series_qh.LegendTextPattern = vm.Name; -- Gitblit v1.9.3