From ce65365b03d49fc6c6961e0c690768b93c4a4c7c Mon Sep 17 00:00:00 2001 From: Shuxia Ning <NingShuxia0927@outlook.com> Date: 星期二, 03 十二月 2024 16:59:57 +0800 Subject: [PATCH] 曲线变速视图 --- WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/04-variable-speed-view/PumpVariableSpeedViewChart.Designer.cs | 146 ------ WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/02-operation/PumpOperationChart.cs | 144 +++--- WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/03-variable-speed/PumpVariableSpeedChart.cs | 7 WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/04-variable-speed-view/PumpVariableSpeedViewChart.resx | 245 ----------- WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/02-multi/01-parallel/PumpParallelChart.cs | 75 +- WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/04-variable-speed-view/PumpVariableSpeedViewChart.cs | 624 +++++++---------------------- 6 files changed, 271 insertions(+), 970 deletions(-) diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/02-operation/PumpOperationChart.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/02-operation/PumpOperationChart.cs index b86bae2..861dd54 100644 --- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/02-operation/PumpOperationChart.cs +++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/02-operation/PumpOperationChart.cs @@ -44,7 +44,7 @@ private bool _initial_data = false; - private PumpOperationViewModel _operation_vm = null; + private PumpOperationViewModel _vm = null; #endregion @@ -154,7 +154,7 @@ { if (e is not DXCustomPaintEventArgs dxArgs) return; - if (_operation_vm == null) + if (_vm == null) return; if (_equip_line != null && _equip_sect_pt != null && _equip_visible) @@ -162,9 +162,9 @@ using Pen pen = new(Color.Black, 2); pen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDotDot; - DrawEquipPoint(dxArgs.Cache, pen, _equip_sect_pt, _operation_vm.CurveQE, _operation_vm.CurveQP); + DrawEquipPoint(dxArgs.Cache, pen, _equip_sect_pt, _vm.CurveQE, _vm.CurveQP); if (_current_equip_sect_pt != null) - DrawEquipPoint(dxArgs.Cache, pen, _current_equip_sect_pt, _operation_vm.CurrentCurveQE, _operation_vm.CurrentCurveQP); + DrawEquipPoint(dxArgs.Cache, pen, _current_equip_sect_pt, _vm.CurrentCurveQE, _vm.CurrentCurveQP); DrawEquipLine(dxArgs.Cache, pen, _equip_line); } @@ -212,7 +212,7 @@ } if (qp != null && _qp_visible) { - var qp_y = qe.GetPointY(qh_x); + var qp_y = qp.GetPointY(qh_x); var qp_pt = _diagram.DiagramToPoint(qh_x, qp_y, _axis_x_flow, _axis_y_power); var qp_pt_x = qp_pt.Point.X; var qp_pt_y = qp_pt.Point.Y; @@ -240,7 +240,7 @@ /// </summary> public void SetBindingData(PumpOperationViewModel vm) { - _operation_vm = vm; + _vm = vm; _initial_data = vm != null; UpdateChart(true); } @@ -254,14 +254,14 @@ _equip_line = null; _equip_sect_pt = null; _current_equip_sect_pt = null; - if (_operation_vm == null) + if (_vm == null) { this.DesignPointChangedEvent?.Invoke(null); return; } start_head ??= _coordinate.DispMinH(); - var equip_line = Yw.Geometry.EquipCurveHelper.CalcEquipCurve(_operation_vm.CurveQH, _equip_pt, start_head.Value, out Yw.Geometry.Point2d sect_pt); + var equip_line = Yw.Geometry.EquipCurveHelper.CalcEquipCurve(_vm.CurveQH, _equip_pt, start_head.Value, out Yw.Geometry.Point2d sect_pt); if (equip_line == null || sect_pt == null) return; @@ -271,62 +271,62 @@ double flow = 0, head = 0; double? eff = null, power = null; flow = sect_pt.X; - head = _operation_vm.CurveQH.GetPointY(flow); - if (_operation_vm.CurveQP != null) + head = _vm.CurveQH.GetPointY(flow); + if (_vm.CurveQP != null) { - power = _operation_vm.CurveQP.GetPointY(flow); + power = _vm.CurveQP.GetPointY(flow); eff = PumpCalcHelper.CalculateE(flow, head, power.Value); } - else if (_operation_vm.CurveQE != null) + else if (_vm.CurveQE != null) { - eff = _operation_vm.CurveQE.GetPointY(flow); + eff = _vm.CurveQE.GetPointY(flow); power = PumpCalcHelper.CalculateP(flow, head, eff.Value); } var design_pt_list = new List<PumpDesignPointViewModel> { new() { - Id = _operation_vm.Id + "棰濆畾", - Name = _operation_vm.Name + "(棰濆畾)", + Id = _vm.Id + "棰濆畾", + Name = _vm.Name + "(棰濆畾)", Q = flow, H = head, E = eff, P = power, - Hz = _operation_vm.RatedHz, - N = _operation_vm.RatedN + Hz = _vm.RatedHz, + N = _vm.RatedN } }; - if (_operation_vm.CurrentStatus) + if (_vm.CurrentStatus) { - var current_equip_line = Yw.Geometry.EquipCurveHelper.CalcEquipCurve(_operation_vm.CurrentCurveQH, _equip_pt, start_head.Value, out Yw.Geometry.Point2d current_sect_pt); + var current_equip_line = Yw.Geometry.EquipCurveHelper.CalcEquipCurve(_vm.CurrentCurveQH, _equip_pt, start_head.Value, out Yw.Geometry.Point2d current_sect_pt); if ( current_sect_pt == null) return; double current_flow = 0, current_head = 0; double? current_eff = null, current_power = null; current_flow = current_sect_pt.X; - current_head = _operation_vm.CurrentCurveQH.GetPointY(current_flow); - if (_operation_vm.CurrentCurveQP != null) + current_head = _vm.CurrentCurveQH.GetPointY(current_flow); + if (_vm.CurrentCurveQP != null) { - current_power = _operation_vm.CurrentCurveQP.GetPointY(current_flow); + current_power = _vm.CurrentCurveQP.GetPointY(current_flow); current_eff = PumpCalcHelper.CalculateE(current_flow, current_head, current_power.Value); } - else if (_operation_vm.CurrentCurveQE != null) + else if (_vm.CurrentCurveQE != null) { - current_eff = _operation_vm.CurrentCurveQE.GetPointY(current_flow); + current_eff = _vm.CurrentCurveQE.GetPointY(current_flow); current_power = PumpCalcHelper.CalculateP(current_flow, current_head, current_eff.Value); } design_pt_list.Add(new() { - Id = _operation_vm.Id, - Name = _operation_vm.Name, + Id = _vm.Id, + Name = _vm.Name, Q = current_flow, H = current_head, E = current_eff, P = current_power, - Hz = _operation_vm.CurrentHz, - N = _operation_vm.CurrentN + Hz = _vm.CurrentHz, + N = _vm.CurrentN }); } @@ -351,7 +351,7 @@ { if (vm == null) return; - _operation_vm = vm; + _vm = vm; _initial_data = true; UpdateChart(true); } @@ -362,7 +362,7 @@ /// </summary> public void Delete() { - _operation_vm = null; + _vm = null; UpdateChart(true); _initial_data = false; } @@ -403,7 +403,7 @@ /// </summary> private void CalcCoordinate() { - if (_operation_vm == null ) + if (_vm == null ) { //璁剧疆鎴愮櫧鏉垮潗鏍� _coordinate = new PumpCoordinate(); @@ -431,10 +431,10 @@ double _scaleMinH = 1, _scaleMaxH = 1; { - var qh_pt_list = _operation_vm.CurveQH.GetPointList(); - if (_operation_vm.CurrentStatus) + var qh_pt_list = _vm.CurveQH.GetPointList(); + if (_vm.CurrentStatus) { - qh_pt_list.AddRange(_operation_vm.CurrentCurveQH.GetPointList()); + qh_pt_list.AddRange(_vm.CurrentCurveQH.GetPointList()); } var xxx = qh_pt_list.Select(x => x.X); @@ -448,24 +448,24 @@ } - if (_operation_vm.CurveQE != null) + if (_vm.CurveQE != null) { - var yyy = _operation_vm.CurveQE.GetPointList().Select(x => x.Y).ToList(); - if (_operation_vm.CurrentStatus) + var yyy = _vm.CurveQE.GetPointList().Select(x => x.Y).ToList(); + if (_vm.CurrentStatus) { - yyy.AddRange(_operation_vm.CurrentCurveQE.GetPointList().Select(x => x.Y)); + yyy.AddRange(_vm.CurrentCurveQE.GetPointList().Select(x => x.Y)); } _min_eff = Math.Min(_min_eff, yyy.Min()); _max_eff = Math.Max(_max_eff, yyy.Max()); } - if (_operation_vm.CurveQP != null) + if (_vm.CurveQP != null) { - var yyy = _operation_vm.CurveQP.GetPointList().Select(x => x.Y).ToList(); - if (_operation_vm.CurrentStatus) + var yyy = _vm.CurveQP.GetPointList().Select(x => x.Y).ToList(); + if (_vm.CurrentStatus) { - yyy.AddRange(_operation_vm.CurrentCurveQP.GetPointList().Select(x => x.Y)); + yyy.AddRange(_vm.CurrentCurveQP.GetPointList().Select(x => x.Y)); } _min_power = Math.Min(_min_power, yyy.Min()); _max_power = Math.Max(_max_power, yyy.Max()); @@ -621,12 +621,12 @@ this.chartControl1.Legend.CustomItems.Clear(); - if (_operation_vm!=null) + if (_vm!=null) { - CreateLineSeries(_operation_vm); - if (_operation_vm.CurrentStatus) + CreateLineSeries(_vm); + if (_vm.CurrentStatus) { - CreateCurrentLineSeries(_operation_vm); + CreateCurrentLineSeries(_vm); } } @@ -664,19 +664,19 @@ _anno_txt_query_info.Visible = true; } - if (_operation_vm == null) + if (_vm == null) return; - if (_operation_vm.CurrentStatus) + if (_vm.CurrentStatus) { - x_flow ??= _operation_vm.CurrentCurveQH.MaxX * 0.8; - if (x_flow < _operation_vm.CurrentCurveQH.MinX || x_flow > _operation_vm.CurrentCurveQH.MaxX) + x_flow ??= _vm.CurrentCurveQH.MaxX * 0.8; + if (x_flow < _vm.CurrentCurveQH.MinX || x_flow > _vm.CurrentCurveQH.MaxX) return; } else { - x_flow ??= _operation_vm.CurveQH.MaxX * 0.8; - if (x_flow < _operation_vm.CurveQH.MinX || x_flow > _operation_vm.CurveQH.MaxX) + x_flow ??= _vm.CurveQH.MaxX * 0.8; + if (x_flow < _vm.CurveQH.MinX || x_flow > _vm.CurveQH.MaxX) return; } @@ -685,54 +685,54 @@ double? eff = null, power = null; flow = x_flow.Value; - head = _operation_vm.CurveQH.GetPointY(flow); - if (_operation_vm.CurveQP != null) + head = _vm.CurveQH.GetPointY(flow); + if (_vm.CurveQP != null) { - power = _operation_vm.CurveQP.GetPointY(flow); + power = _vm.CurveQP.GetPointY(flow); eff = PumpCalcHelper.CalculateE(flow, head, power.Value); } - else if (_operation_vm.CurveQE != null) + else if (_vm.CurveQE != null) { - eff = _operation_vm.CurveQE.GetPointY(flow); + eff = _vm.CurveQE.GetPointY(flow); power = PumpCalcHelper.CalculateP(flow, head, eff.Value); } query_pt_list.Add(new PumpQueryPointViewModel { - Id = _operation_vm.Id, - Name = _operation_vm.Name + "棰濆畾", + Id = _vm.Id, + Name = _vm.Name + "棰濆畾", Q = flow, H = head, E = eff, P = power, - Hz = _operation_vm.RatedHz, - N = _operation_vm.RatedN + Hz = _vm.RatedHz, + N = _vm.RatedN }); - if (_operation_vm.CurrentStatus) + if (_vm.CurrentStatus) { flow = x_flow.Value; - head = _operation_vm.CurrentCurveQH.GetPointY(flow); - if (_operation_vm.CurrentCurveQP != null) + head = _vm.CurrentCurveQH.GetPointY(flow); + if (_vm.CurrentCurveQP != null) { - power = _operation_vm.CurrentCurveQP.GetPointY(flow); + power = _vm.CurrentCurveQP.GetPointY(flow); eff = PumpCalcHelper.CalculateE(flow, head, power.Value); } - else if (_operation_vm.CurrentCurveQE != null) + else if (_vm.CurrentCurveQE != null) { - eff = _operation_vm.CurrentCurveQE.GetPointY(flow); + eff = _vm.CurrentCurveQE.GetPointY(flow); power = PumpCalcHelper.CalculateP(flow, head, eff.Value); } query_pt_list.Add(new PumpQueryPointViewModel() { - Id = _operation_vm.Id, - Name = _operation_vm.Name, + Id = _vm.Id, + Name = _vm.Name, Q = flow, H = head, E = eff, P = power, - Hz = _operation_vm.CurrentHz, - N = _operation_vm.CurrentN + Hz = _vm.CurrentHz, + N = _vm.CurrentN }); } @@ -1117,7 +1117,7 @@ #region Event private void barBtnSetAxisQValue_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - if (_operation_vm == null) + if (_vm == null) return; var dlg = new PumpAxisValueDlg(); dlg.SetBindingData(); diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/03-variable-speed/PumpVariableSpeedChart.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/03-variable-speed/PumpVariableSpeedChart.cs index bda8a37..41b466b 100644 --- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/03-variable-speed/PumpVariableSpeedChart.cs +++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/03-variable-speed/PumpVariableSpeedChart.cs @@ -224,7 +224,7 @@ } if (qp != null && _qp_visible) { - var qp_y = qe.GetPointY(qh_x); + var qp_y = qp.GetPointY(qh_x); var qp_pt = _diagram.DiagramToPoint(qh_x, qp_y, _axis_x_flow, _axis_y_power); var qp_pt_x = qp_pt.Point.X; var qp_pt_y = qp_pt.Point.Y; @@ -414,6 +414,7 @@ continue; var qe_pt_list = vm.CurrentCurveQE.GetPointList(); var yyy = qe_pt_list.Select(x => x.Y); + _min_eff = Math.Min(_min_eff, yyy.Min()); _max_eff = Math.Max(_max_eff, yyy.Max()); } @@ -564,8 +565,8 @@ this.chartControl1.BeginInit(); this.chartControl1.Series.Clear(); - var annotationCount = this.chartControl1.AnnotationRepository.Count; - for (int i = annotationCount - 1; i > 0; i--) + var annotation_count = this.chartControl1.AnnotationRepository.Count; + for (int i = annotation_count - 1; i > 0; i--) { if (i == 0) break; diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/04-variable-speed-view/PumpVariableSpeedViewChart.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/04-variable-speed-view/PumpVariableSpeedViewChart.Designer.cs index c01e778..194ced6 100644 --- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/04-variable-speed-view/PumpVariableSpeedViewChart.Designer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/04-variable-speed-view/PumpVariableSpeedViewChart.Designer.cs @@ -48,30 +48,17 @@ DevExpress.XtraCharts.SplineSeriesView splineSeriesView3 = new DevExpress.XtraCharts.SplineSeriesView(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PumpVariableSpeedViewChart)); chartControl1 = new DevExpress.XtraCharts.ChartControl(); - popMenuChart = new DevExpress.XtraBars.PopupMenu(components); barBtnSetChartAxis = new DevExpress.XtraBars.BarButtonItem(); barCekCurveQEVisible = new DevExpress.XtraBars.BarCheckItem(); barCekCurveQPVisible = new DevExpress.XtraBars.BarCheckItem(); barCekCurveEQVisible = new DevExpress.XtraBars.BarCheckItem(); - barCekLineVisible = new DevExpress.XtraBars.BarCheckItem(); - barCekCurveNameVisible = new DevExpress.XtraBars.BarCheckItem(); - barCekSetAxisNameVisible = new DevExpress.XtraBars.BarCheckItem(); - barCekLegendVisible = new DevExpress.XtraBars.BarCheckItem(); barManager1 = new DevExpress.XtraBars.BarManager(components); barMenu = new DevExpress.XtraBars.Bar(); barSubMenuVisible = new DevExpress.XtraBars.BarSubItem(); - barSubMenuEdit = new DevExpress.XtraBars.BarSubItem(); - barSubMenuQuery = new DevExpress.XtraBars.BarSubItem(); - barBtnSetAxisQValue = new DevExpress.XtraBars.BarButtonItem(); - barSubAdd = new DevExpress.XtraBars.BarSubItem(); - barBtnAddBySpeed = new DevExpress.XtraBars.BarButtonItem(); - barBtnAddByHz = new DevExpress.XtraBars.BarButtonItem(); - barBtnAddByPoint = new DevExpress.XtraBars.BarButtonItem(); barDockControlTop = new DevExpress.XtraBars.BarDockControl(); barDockControlBottom = new DevExpress.XtraBars.BarDockControl(); barDockControlLeft = new DevExpress.XtraBars.BarDockControl(); barDockControlRight = new DevExpress.XtraBars.BarDockControl(); - popMenuLine = new DevExpress.XtraBars.PopupMenu(components); bar1 = new DevExpress.XtraBars.Bar(); ((System.ComponentModel.ISupportInitialize)chartControl1).BeginInit(); ((System.ComponentModel.ISupportInitialize)textAnnotation1).BeginInit(); @@ -86,9 +73,7 @@ ((System.ComponentModel.ISupportInitialize)splineSeriesView2).BeginInit(); ((System.ComponentModel.ISupportInitialize)series3).BeginInit(); ((System.ComponentModel.ISupportInitialize)splineSeriesView3).BeginInit(); - ((System.ComponentModel.ISupportInitialize)popMenuChart).BeginInit(); ((System.ComponentModel.ISupportInitialize)barManager1).BeginInit(); - ((System.ComponentModel.ISupportInitialize)popMenuLine).BeginInit(); SuspendLayout(); // // chartControl1 @@ -197,12 +182,6 @@ chartControl1.Size = new Size(1023, 823); chartControl1.TabIndex = 0; // - // popMenuChart - // - popMenuChart.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barBtnSetChartAxis), new DevExpress.XtraBars.LinkPersistInfo(barCekCurveQEVisible), new DevExpress.XtraBars.LinkPersistInfo(barCekCurveQPVisible), new DevExpress.XtraBars.LinkPersistInfo(barCekCurveEQVisible), new DevExpress.XtraBars.LinkPersistInfo(barCekLineVisible, true), new DevExpress.XtraBars.LinkPersistInfo(barCekCurveNameVisible), new DevExpress.XtraBars.LinkPersistInfo(barCekSetAxisNameVisible), new DevExpress.XtraBars.LinkPersistInfo(barCekLegendVisible) }); - popMenuChart.Manager = barManager1; - popMenuChart.Name = "popMenuChart"; - // // barBtnSetChartAxis // barBtnSetChartAxis.Caption = "淇敼鍧愭爣"; @@ -241,43 +220,6 @@ barCekCurveEQVisible.Name = "barCekCurveEQVisible"; barCekCurveEQVisible.CheckedChanged += barCekCurveEQVisible_CheckedChanged; // - // barCekLineVisible - // - barCekLineVisible.Caption = "宸ヤ綔鐐�"; - barCekLineVisible.Id = 9; - barCekLineVisible.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barCekLineVisible.ImageOptions.SvgImage"); - barCekLineVisible.Name = "barCekLineVisible"; - barCekLineVisible.CheckedChanged += barCekLineVisible_CheckedChanged; - // - // barCekCurveNameVisible - // - barCekCurveNameVisible.BindableChecked = true; - barCekCurveNameVisible.Caption = "鏇茬嚎鍚�"; - barCekCurveNameVisible.Checked = true; - barCekCurveNameVisible.Id = 21; - barCekCurveNameVisible.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barCekCurveNameVisible.ImageOptions.SvgImage"); - barCekCurveNameVisible.Name = "barCekCurveNameVisible"; - barCekCurveNameVisible.CheckedChanged += barCekCurveNameVisible_CheckedChanged; - // - // barCekSetAxisNameVisible - // - barCekSetAxisNameVisible.BindableChecked = true; - barCekSetAxisNameVisible.Caption = "杞村悕绉�"; - barCekSetAxisNameVisible.Checked = true; - barCekSetAxisNameVisible.Id = 15; - barCekSetAxisNameVisible.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barCekSetAxisNameVisible.ImageOptions.SvgImage"); - barCekSetAxisNameVisible.Name = "barCekSetAxisNameVisible"; - barCekSetAxisNameVisible.CheckedChanged += barCekSetAxisNameVisible_CheckedChanged; - // - // barCekLegendVisible - // - barCekLegendVisible.Caption = "鍥句緥"; - barCekLegendVisible.Id = 10; - barCekLegendVisible.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barCekLegendVisible.ImageOptions.SvgImage"); - barCekLegendVisible.Name = "barCekLegendVisible"; - barCekLegendVisible.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; - barCekLegendVisible.CheckedChanged += barCekLegendVisible_CheckedChanged; - // // barManager1 // barManager1.Bars.AddRange(new DevExpress.XtraBars.Bar[] { barMenu }); @@ -286,7 +228,7 @@ barManager1.DockControls.Add(barDockControlLeft); barManager1.DockControls.Add(barDockControlRight); barManager1.Form = this; - barManager1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { barBtnSetChartAxis, barCekLineVisible, barCekLegendVisible, barBtnSetAxisQValue, barCekSetAxisNameVisible, barCekCurveQEVisible, barCekCurveQPVisible, barCekCurveNameVisible, barCekCurveEQVisible, barSubMenuVisible, barSubMenuEdit, barSubMenuQuery, barSubAdd, barBtnAddBySpeed, barBtnAddByHz, barBtnAddByPoint }); + barManager1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { barBtnSetChartAxis, barCekCurveQEVisible, barCekCurveQPVisible, barCekCurveEQVisible, barSubMenuVisible }); barManager1.MainMenu = barMenu; barManager1.MaxItemId = 30; barManager1.ShowFullMenus = true; @@ -298,7 +240,7 @@ barMenu.DockCol = 0; barMenu.DockRow = 0; barMenu.DockStyle = DevExpress.XtraBars.BarDockStyle.Top; - barMenu.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barSubMenuVisible), new DevExpress.XtraBars.LinkPersistInfo(barSubMenuEdit), new DevExpress.XtraBars.LinkPersistInfo(barSubMenuQuery), new DevExpress.XtraBars.LinkPersistInfo(barSubAdd) }); + barMenu.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barSubMenuVisible), new DevExpress.XtraBars.LinkPersistInfo(barBtnSetChartAxis) }); barMenu.OptionsBar.DrawBorder = false; barMenu.OptionsBar.MinHeight = 30; barMenu.OptionsBar.MultiLine = true; @@ -310,68 +252,9 @@ barSubMenuVisible.Caption = "鏄剧ず"; barSubMenuVisible.Id = 23; barSubMenuVisible.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barSubMenuVisible.ImageOptions.SvgImage"); - barSubMenuVisible.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barCekCurveQPVisible), new DevExpress.XtraBars.LinkPersistInfo(barCekCurveQEVisible), new DevExpress.XtraBars.LinkPersistInfo(barCekCurveEQVisible), new DevExpress.XtraBars.LinkPersistInfo(barCekCurveNameVisible, true), new DevExpress.XtraBars.LinkPersistInfo(barCekLegendVisible), new DevExpress.XtraBars.LinkPersistInfo(barCekSetAxisNameVisible) }); + barSubMenuVisible.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barCekCurveQPVisible), new DevExpress.XtraBars.LinkPersistInfo(barCekCurveQEVisible), new DevExpress.XtraBars.LinkPersistInfo(barCekCurveEQVisible) }); barSubMenuVisible.Name = "barSubMenuVisible"; barSubMenuVisible.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; - // - // barSubMenuEdit - // - barSubMenuEdit.Caption = "缂栬緫"; - barSubMenuEdit.Id = 24; - barSubMenuEdit.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barSubMenuEdit.ImageOptions.SvgImage"); - barSubMenuEdit.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barBtnSetChartAxis) }); - barSubMenuEdit.Name = "barSubMenuEdit"; - barSubMenuEdit.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; - // - // barSubMenuQuery - // - barSubMenuQuery.Caption = "鏌ヨ"; - barSubMenuQuery.Id = 25; - barSubMenuQuery.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barSubMenuQuery.ImageOptions.SvgImage"); - barSubMenuQuery.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barCekLineVisible), new DevExpress.XtraBars.LinkPersistInfo(barBtnSetAxisQValue) }); - barSubMenuQuery.Name = "barSubMenuQuery"; - barSubMenuQuery.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; - // - // barBtnSetAxisQValue - // - barBtnSetAxisQValue.Caption = "瀹氫綅娴侀噺鐐�"; - barBtnSetAxisQValue.Id = 13; - barBtnSetAxisQValue.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnSetAxisQValue.ImageOptions.SvgImage"); - barBtnSetAxisQValue.Name = "barBtnSetAxisQValue"; - barBtnSetAxisQValue.ItemClick += barBtnSetAxisQValue_ItemClick; - // - // barSubAdd - // - barSubAdd.Caption = "娣诲姞"; - barSubAdd.Id = 26; - barSubAdd.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barSubAdd.ImageOptions.SvgImage"); - barSubAdd.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barBtnAddBySpeed), new DevExpress.XtraBars.LinkPersistInfo(barBtnAddByHz), new DevExpress.XtraBars.LinkPersistInfo(barBtnAddByPoint) }); - barSubAdd.Name = "barSubAdd"; - barSubAdd.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; - // - // barBtnAddBySpeed - // - barBtnAddBySpeed.Caption = "杞��"; - barBtnAddBySpeed.Id = 27; - barBtnAddBySpeed.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnAddBySpeed.ImageOptions.SvgImage"); - barBtnAddBySpeed.Name = "barBtnAddBySpeed"; - barBtnAddBySpeed.ItemClick += barBtnAddBySpeed_ItemClick; - // - // barBtnAddByHz - // - barBtnAddByHz.Caption = "棰戠巼"; - barBtnAddByHz.Id = 28; - barBtnAddByHz.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnAddByHz.ImageOptions.SvgImage"); - barBtnAddByHz.Name = "barBtnAddByHz"; - barBtnAddByHz.ItemClick += barBtnAddByHz_ItemClick; - // - // barBtnAddByPoint - // - barBtnAddByPoint.Caption = "鍗曠偣"; - barBtnAddByPoint.Id = 29; - barBtnAddByPoint.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnAddByPoint.ImageOptions.SvgImage"); - barBtnAddByPoint.Name = "barBtnAddByPoint"; - barBtnAddByPoint.ItemClick += barBtnAddByPoint_ItemClick; // // barDockControlTop // @@ -405,19 +288,13 @@ barDockControlRight.Manager = barManager1; barDockControlRight.Size = new Size(0, 823); // - // popMenuLine - // - popMenuLine.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barBtnSetAxisQValue) }); - popMenuLine.Manager = barManager1; - popMenuLine.Name = "popMenuLine"; - // // bar1 // bar1.BarName = "Custom 2"; bar1.DockCol = 0; bar1.DockRow = 0; bar1.DockStyle = DevExpress.XtraBars.BarDockStyle.Top; - bar1.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barBtnSetChartAxis), new DevExpress.XtraBars.LinkPersistInfo(barCekCurveQPVisible), new DevExpress.XtraBars.LinkPersistInfo(barCekCurveQEVisible), new DevExpress.XtraBars.LinkPersistInfo(barCekSetAxisNameVisible), new DevExpress.XtraBars.LinkPersistInfo(barCekLegendVisible) }); + bar1.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barBtnSetChartAxis), new DevExpress.XtraBars.LinkPersistInfo(barCekCurveQPVisible), new DevExpress.XtraBars.LinkPersistInfo(barCekCurveQEVisible) }); bar1.OptionsBar.MultiLine = true; bar1.OptionsBar.UseWholeRow = true; bar1.Text = "Custom 2"; @@ -446,9 +323,7 @@ ((System.ComponentModel.ISupportInitialize)splineSeriesView3).EndInit(); ((System.ComponentModel.ISupportInitialize)series3).EndInit(); ((System.ComponentModel.ISupportInitialize)chartControl1).EndInit(); - ((System.ComponentModel.ISupportInitialize)popMenuChart).EndInit(); ((System.ComponentModel.ISupportInitialize)barManager1).EndInit(); - ((System.ComponentModel.ISupportInitialize)popMenuLine).EndInit(); ResumeLayout(false); PerformLayout(); } @@ -456,30 +331,17 @@ #endregion private DevExpress.XtraCharts.ChartControl chartControl1; - private DevExpress.XtraBars.PopupMenu popMenuChart; private DevExpress.XtraBars.BarManager barManager1; private DevExpress.XtraBars.BarDockControl barDockControlTop; private DevExpress.XtraBars.BarDockControl barDockControlBottom; private DevExpress.XtraBars.BarDockControl barDockControlLeft; private DevExpress.XtraBars.BarDockControl barDockControlRight; private DevExpress.XtraBars.BarButtonItem barBtnSetChartAxis; - private DevExpress.XtraBars.BarCheckItem barCekLineVisible; - private DevExpress.XtraBars.BarCheckItem barCekLegendVisible; - private DevExpress.XtraBars.PopupMenu popMenuLine; - private DevExpress.XtraBars.BarButtonItem barBtnSetAxisQValue; - private DevExpress.XtraBars.BarCheckItem barCekSetAxisNameVisible; private DevExpress.XtraBars.BarCheckItem barCekCurveQEVisible; private DevExpress.XtraBars.BarCheckItem barCekCurveQPVisible; - private DevExpress.XtraBars.BarCheckItem barCekCurveNameVisible; private DevExpress.XtraBars.BarCheckItem barCekCurveEQVisible; private DevExpress.XtraBars.Bar bar1; private DevExpress.XtraBars.Bar barMenu; private DevExpress.XtraBars.BarSubItem barSubMenuVisible; - private DevExpress.XtraBars.BarSubItem barSubMenuEdit; - private DevExpress.XtraBars.BarSubItem barSubMenuQuery; - private DevExpress.XtraBars.BarSubItem barSubAdd; - private DevExpress.XtraBars.BarButtonItem barBtnAddBySpeed; - private DevExpress.XtraBars.BarButtonItem barBtnAddByHz; - private DevExpress.XtraBars.BarButtonItem barBtnAddByPoint; } } diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/04-variable-speed-view/PumpVariableSpeedViewChart.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/04-variable-speed-view/PumpVariableSpeedViewChart.cs index af5e08c..9555024 100644 --- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/04-variable-speed-view/PumpVariableSpeedViewChart.cs +++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/04-variable-speed-view/PumpVariableSpeedViewChart.cs @@ -17,8 +17,7 @@ } #region Private Variable - - private List<PumpVariableSpeedViewModel> _vm_list = new List<PumpVariableSpeedViewModel>(); + private readonly string _tag_qh = "QH", _tag_qe = "QE", _tag_qp = "QP"; private XYDiagram _diagram; @@ -26,10 +25,8 @@ private XYDiagramPane _bottom_pane; private AxisX _axis_x_flow; private AxisY _axis_y_head; - private SecondaryAxisY _axis_y_eff, _axis_y_power; - private ConstantLine _query_flow_line; - - private TextAnnotation _anno_txt_query_info; + private SecondaryAxisY _axis_y_eff, _axis_y_power; + private PumpCoordinate _coordinate; private bool _qe_visible = true; @@ -38,72 +35,22 @@ private bool _equip_visible = true; private Yw.Geometry.CubicSpline2d _equip_line = null; private Yw.Geometry.Point2d _equip_pt = null; + private List<Tuple<string, Yw.Geometry.Point2d, Yw.Geometry.Point2d, Yw.Geometry.Point2d>> _equip_sect_pt_list; private bool _initial_data = false; - #endregion - - #region Public Variable - - /// <summary> - /// 宸ヤ綔绾挎槸鍚﹀彲瑙� - /// </summary> - public bool LineVisible - { - get => _line_visible; - set - { - _line_visible = value; - this.barCekLineVisible.Checked = _line_visible; - this.barBtnSetAxisQValue.Enabled = _line_visible; - } - } - private bool _line_visible = false; - - /// <summary> - /// 鏇茬嚎鍚嶆槸鍚﹀彲瑙� - /// </summary> - public bool LineNameVisible - { - get => _line_name_visible; - set - { - _line_name_visible = value; - this.barCekCurveNameVisible.Checked = _line_name_visible; - } - } - private bool _line_name_visible = true; + private PumpVariableSpeedViewViewModel _vm = null; #endregion - + #region Public Evnet /// <summary> /// 鍧愭爣鍙樻崲浜嬩欢 /// </summary> public event Action<PumpCoordinate> CoordinateChangedEvent = null; - - /// <summary> - /// 骞惰仈鐘舵�佸彉鎹簨浠� - /// </summary> - public event Action<bool, string> ParallelStatusChangedEvent = null; - - /// <summary> - /// 鏌ヨ鐐瑰彉鎹簨浠� - /// </summary> - public event Action<List<PumpQueryPointViewModel>> QueryPointChangedEvent = null; - - /// <summary> - /// 璁捐鐐瑰彉鎹簨浠� - /// </summary> - public event Action<List<PumpDesignPointViewModel>> DesignPointChangedEvent = null; - - public event Action AddBySpeedEvent = null; - - public event Action AddByHzEvent = null; - - public event Action AddByPointEvent = null; - + + #endregion #region Initial @@ -130,11 +77,7 @@ _axis_y_power = _diagram.SecondaryAxesY.GetAxisByName("AxisYQP"); _axis_y_power.SetSecondaryAxisYQPDisplay(); - _query_flow_line = (ConstantLine)_diagram.AxisX.ConstantLines.GetElementByName("WorkPointLine"); - _query_flow_line.SetWorkPointLineDisplay(); - - _anno_txt_query_info = this.chartControl1.AnnotationRepository[0] as TextAnnotation; - _anno_txt_query_info.SetTextAnnoWorkPointDisplay(); + _axis_x_flow.Visibility = DefaultBoolean.False; _axis_x_flow.GridLines.Visible = false; @@ -144,15 +87,7 @@ _axis_y_eff.GridLines.Visible = false; _axis_y_power.Visibility = DefaultBoolean.False; _axis_y_power.GridLines.Visible = false; - - - _query_flow_line.Visible = false; - _anno_txt_query_info.Visible = false; - - this.chartControl1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.chartControl1_MouseMove); - this.chartControl1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.chartControl1_MouseUp); - this.chartControl1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.chartControl1_MouseDown); - this.chartControl1.Resize += new System.EventHandler(this.chartControl1_Resize); + this.chartControl1.CustomPaint += ChartControl1_CustomPaint; } @@ -161,19 +96,16 @@ { if (e is not DXCustomPaintEventArgs dxArgs) return; - if (_vm_list == null || !_vm_list.Any()) + if (_vm == null) return; - if (_equip_line != null && _equip_visible) + if (_equip_line != null && _equip_sect_pt_list != null && _equip_sect_pt_list.Any() && _equip_visible) { using Pen pen = new(Color.Black, 2); - pen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDotDot; - foreach (var vm in _vm_list) + pen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDotDot; + foreach (var tuple in _equip_sect_pt_list) { - var sect_pt = vm.EquipPoint; - if (sect_pt == null) - continue; - DrawEquipPoint(dxArgs.Cache, pen, sect_pt, vm.CurrentCurveQE, vm.CurrentCurveQP); + DrawEquipPoint(dxArgs.Cache, pen, tuple.Item2, tuple.Item3, tuple.Item4); } DrawEquipLine(dxArgs.Cache, pen, _equip_line); @@ -199,7 +131,7 @@ cache.DrawPath(pen, path); } - private void DrawEquipPoint(GraphicsCache cache, Pen pen, Yw.Geometry.Point2d qh_sect_pt, Yw.Geometry.CubicSpline2d qe, Yw.Geometry.CubicSpline2d qp) + private void DrawEquipPoint(GraphicsCache cache, Pen pen, Yw.Geometry.Point2d qh_sect_pt, Yw.Geometry.Point2d qe_sect_pt, Yw.Geometry.Point2d qp_sect_pt) { if (qh_sect_pt == null) return; @@ -212,22 +144,21 @@ var qh_pt_y = qh_pt.Point.Y; cache.DrawLine(pen, new Point(qh_pt_x, qh_pt_y - offset_size), new Point(qh_pt_x, qh_pt_y + offset_size)); - if (qe != null && _qe_visible) - { - var qe_y = qe.GetPointY(qh_x); - var qe_pt = _diagram.DiagramToPoint(qh_x, qe_y, _axis_x_flow, _axis_y_eff); + if (qe_sect_pt != null && _qe_visible) + { + var qe_pt = _diagram.DiagramToPoint(qe_sect_pt.X, qe_sect_pt.Y, _axis_x_flow, _axis_y_eff); var qe_pt_x = qe_pt.Point.X; var qe_pt_y = qe_pt.Point.Y; cache.DrawLine(pen, new Point(qe_pt_x, qe_pt_y - offset_size), new Point(qe_pt_x, qe_pt_y + offset_size)); } - if (qp != null && _qp_visible) + if (qp_sect_pt != null && _qp_visible) { - var qp_y = qe.GetPointY(qh_x); - var qp_pt = _diagram.DiagramToPoint(qh_x, qp_y, _axis_x_flow, _axis_y_power); + var qp_pt = _diagram.DiagramToPoint(qp_sect_pt.X, qp_sect_pt.Y, _axis_x_flow, _axis_y_power); var qp_pt_x = qp_pt.Point.X; var qp_pt_y = qp_pt.Point.Y; cache.DrawLine(pen, new Point(qp_pt_x, qp_pt_y - offset_size), new Point(qp_pt_x, qp_pt_y + offset_size)); } + } /// <summary> @@ -248,10 +179,10 @@ /// <summary> /// 缁戝畾鏁版嵁 /// </summary> - public void SetBindingData(List<PumpVariableSpeedViewModel> list) + public void SetBindingData(PumpVariableSpeedViewViewModel vm) { - _vm_list = list; - _initial_data = list != null && list.Any(); + _vm = vm; + _initial_data = vm != null; UpdateChart(true); } @@ -261,78 +192,83 @@ public void SetDesignPoint(double x, double y, double? start_head = null) { _equip_pt = new Geometry.Point2d(x, y); - _equip_line = null; - if (_vm_list == null || !_vm_list.Any()) - { - this.DesignPointChangedEvent?.Invoke(null); + _equip_line = null; + _equip_sect_pt_list = null; + if (_vm == null) + { return; - } + } start_head ??= _coordinate.DispMinH(); - var max_hz_vm = _vm_list.OrderBy(x => x.CurrentHz).FirstOrDefault(); - - var equip_line = Yw.Geometry.EquipCurveHelper.CalcEquipCurve(max_hz_vm.CurrentCurveQH, _equip_pt, start_head.Value, out Yw.Geometry.Point2d sect_pt); + + var equip_line = Yw.Geometry.EquipCurveHelper.CalcEquipCurve(_vm.CurveQH, _equip_pt, start_head.Value, out Yw.Geometry.Point2d sect_pt); if (equip_line == null || sect_pt == null) return; - _equip_line = equip_line; + _equip_line = equip_line; + _equip_sect_pt_list = new List<Tuple<string, Geometry.Point2d, Geometry.Point2d, Geometry.Point2d>>(); - var design_pt_list = new List<PumpDesignPointViewModel>(); - foreach (var vm in _vm_list) + Yw.Geometry.Point2d sect_pt_eff=null, sect_pt_power = null; + if (_vm.CurveQE != null) + { + var eff = _vm.CurveQE.GetPointY(sect_pt.X); + sect_pt_eff = new Geometry.Point2d(sect_pt.X, eff); + } + if (_vm.CurveQP != null) + { + var power = _vm.CurveQP.GetPointY(sect_pt.X); + sect_pt_power = new Geometry.Point2d(sect_pt.X, power); + } + + _equip_sect_pt_list.Add(new(_vm.Id, sect_pt,sect_pt_eff, sect_pt_power)); + foreach (var vm in _vm.Items) { double flow = 0, head = 0; double? eff = null, power = null; - var pump_equip_line = Yw.Geometry.EquipCurveHelper.CalcEquipCurve(vm.CurrentCurveQH, _equip_pt, start_head.Value, out Yw.Geometry.Point2d pump_sect_pt); + var pump_equip_line = Yw.Geometry.EquipCurveHelper.CalcEquipCurve(vm.CurveQH, _equip_pt, start_head.Value, out Yw.Geometry.Point2d pump_sect_pt); if (pump_equip_line == null || pump_sect_pt == null) - return; - - vm.EquipPoint = pump_sect_pt; + return; + Yw.Geometry.Point2d pump_sect_pt_eff = null, pump_sect_pt_power = null; flow = pump_sect_pt.X; - head = vm.CurrentCurveQH.GetPointYUnlimited(flow); - if (vm.CurrentCurveQP != null) + head = vm.CurveQH.GetPointYUnlimited(flow); + if (vm.CurveQP != null) { - power = vm.CurrentCurveQP.GetPointYUnlimited(flow); + power = vm.CurveQP.GetPointYUnlimited(flow); eff = PumpCalcHelper.CalculateE(flow, head, power.Value); + + pump_sect_pt_eff = new Geometry.Point2d(flow, eff.Value); + pump_sect_pt_power = new Geometry.Point2d(flow, power.Value); } - else if (vm.CurrentCurveQE != null) + else if (vm.CurveQE != null) { - eff = vm.CurrentCurveQE.GetPointYUnlimited(flow); + eff = vm.CurveQE.GetPointYUnlimited(flow); power = PumpCalcHelper.CalculateP(flow, head, eff.Value); + + pump_sect_pt_eff = new Geometry.Point2d(flow, eff.Value); + pump_sect_pt_power = new Geometry.Point2d(flow, power.Value); } - 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 - }); - + _equip_sect_pt_list.Add(new(vm.Id, new Geometry.Point2d(flow, head), pump_sect_pt_eff, pump_sect_pt_power)); } + + UpdateChart(true); - this.DesignPointChangedEvent?.Invoke(design_pt_list); - UpdateChart(true); - - } + } /// <summary> /// 娓呯┖鏇茬嚎 /// </summary> public void Clear() { - _vm_list = new List<PumpVariableSpeedViewModel>(); + _vm = null; _initial_data = false; UpdateChart(true); } /// <summary> /// 鏇存柊鍥捐〃 - /// </summary>s + /// </summary> public void UpdateChart(bool calc_coordinate = false) { if (calc_coordinate || _coordinate == null) @@ -343,11 +279,7 @@ CalcSeries(); - CalcChartAxis(); - - CalcWorkPointByQ(); - - //CalcTextAnchorPoint(); + CalcChartAxis(); } #endregion @@ -364,7 +296,7 @@ /// </summary> private void CalcCoordinate() { - if (_vm_list == null || !_vm_list.Any()) + if (_vm == null) { //璁剧疆鎴愮櫧鏉垮潗鏍� _coordinate = new PumpCoordinate(); @@ -392,9 +324,8 @@ 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(); var xxx = qh_pt_list.Select(x => x.X); var yyy = qh_pt_list.Select(x => x.Y); @@ -405,23 +336,52 @@ _max_head = Math.Max(_max_head, yyy.Max()); } - - foreach (PumpVariableSpeedViewModel vm in _vm_list) + if (_vm.CurveQE != null) { - if (vm.CurrentCurveQE == null) - continue; - var qe_pt_list = vm.CurrentCurveQE.GetPointList(); + var qe_pt_list = _vm.CurveQE.GetPointList(); var yyy = qe_pt_list.Select(x => x.Y); + _min_eff = Math.Min(_min_eff, yyy.Min()); _max_eff = Math.Max(_max_eff, yyy.Max()); } - - foreach (PumpVariableSpeedViewModel vm in _vm_list) + if (_vm.CurveQP != null) { - if (vm.CurrentCurveQP == null) - continue; - var yyy = vm.CurrentCurveQP.GetPointList().Select(x => x.Y); + var yyy = _vm.CurveQP.GetPointList().Select(x => x.Y); _min_power = Math.Min(_min_power, yyy.Min()); _max_power = Math.Max(_max_power, yyy.Max()); + } + + if (_vm.Items != null && _vm.Items.Any()) + { + + foreach (var vm in _vm.Items) + { + { + var qh_pt_list = 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 (vm.CurveQE != null) + { + var qe_pt_list = vm.CurveQE.GetPointList(); + var yyy = qe_pt_list.Select(x => x.Y); + _min_eff = Math.Min(_min_eff, yyy.Min()); + _max_eff = Math.Max(_max_eff, yyy.Max()); + } + if (vm.CurveQP != null) + { + var yyy = vm.CurveQP.GetPointList().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, @@ -440,6 +400,7 @@ { _coordinate.GridNumberX++; } + } /// <summary> @@ -455,8 +416,7 @@ _axis_y_eff.GridLines.Visible = false; _axis_y_power.Visibility = DefaultBoolean.False; _axis_y_power.GridLines.Visible = false; - - _query_flow_line.Visible = false; + _bottom_pane.Visibility = ChartElementVisibility.Hidden; @@ -562,8 +522,8 @@ this.chartControl1.BeginInit(); this.chartControl1.Series.Clear(); - var annotationCount = this.chartControl1.AnnotationRepository.Count; - for (int i = annotationCount - 1; i > 0; i--) + var annotation_count = this.chartControl1.AnnotationRepository.Count; + for (int i = annotation_count - 1; i > 0; i--) { if (i == 0) break; @@ -571,111 +531,39 @@ } this.chartControl1.Legend.CustomItems.Clear(); - if (_vm_list.Count > 0) + if (_vm != null) { - foreach (var vm in _vm_list) + CreateLineSeries(_vm.Id, _vm.Name, _vm.CurveQH, _vm.CurveQE, _vm.CurveQP); + if (_vm.Items != null && _vm.Items.Any()) { - CreateLineSeries(vm); - } - } + foreach (var vm in _vm.Items) + { + CreateLineSeries(vm.Id, vm.Name, vm.CurveQH, vm.CurveQE, vm.CurveQP); + } + } + } + this.chartControl1.EndInit(); } - - /// <summary> - /// 璁$畻娉ㄩ噴瀹氫綅 - /// </summary> - private void CalcTextAnchorPoint() - { - var x = this.chartControl1.Location.X + this.chartControl1.Width ; - var y = this.chartControl1.Location.Y; - - (_anno_txt_query_info.AnchorPoint as ChartAnchorPoint).X = x; - (_anno_txt_query_info.AnchorPoint as ChartAnchorPoint).Y = y; - } - - - /// <summary> - /// 璁$畻宸ヤ綔鐐� - /// </summary> - public void CalcWorkPointByQ(double? x_flow = null) - { - if (!_line_visible) - { - _query_flow_line.Visible = false; - _query_flow_line.Title.Visible = false; - return; - } - else - { - _query_flow_line.Visible = true; - _query_flow_line.Title.Visible = true; - } - - if (_vm_list == null || !_vm_list.Any()) - return; - - - x_flow ??= _equip_pt?.X ?? _max_flow * 0.8; - if (x_flow < _min_flow || x_flow > _max_flow) - return; - - var query_pt_list = new List<PumpQueryPointViewModel>(); - foreach (var vm in _vm_list) - { - double flow = 0, head = 0; - double? eff = null, power = null; - - flow = x_flow.Value; - head = vm.CurrentCurveQH.GetPointY(flow); - if (vm.CurrentCurveQP != null) - { - power = vm.CurrentCurveQP.GetPointYUnlimited(flow); - eff = PumpCalcHelper.CalculateE(flow, head, power.Value); - } - else if (vm.CurrentCurveQE != null) - { - eff = vm.CurrentCurveQE.GetPointYUnlimited(flow); - power = PumpCalcHelper.CalculateP(flow, head, eff.Value); - } - - 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 - }); - } - - _query_flow_line.AxisValue = x_flow; - _query_flow_line.Title.Text = $"{x_flow:N1}"; - - this.QueryPointChangedEvent?.Invoke(query_pt_list); - } - + 銆� /// <summary> /// 鍒涘缓绾跨郴鍒� /// </summary> - private void CreateLineSeries(PumpVariableSpeedViewModel vm) + private void CreateLineSeries(string id, string curve_name, Yw.Geometry.CubicSpline2d qh, Yw.Geometry.CubicSpline2d qe, Yw.Geometry.CubicSpline2d qp) { var series_qh = new DevExpress.XtraCharts.Series(); series_qh.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Numerical; series_qh.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False; - series_qh.Name = _tag_qh + vm.Id.ToString(); + series_qh.Name = _tag_qh + id; series_qh.ShowInLegend = false; series_qh.CrosshairEnabled = DefaultBoolean.False; - series_qh.Tag = vm.Id.ToString(); - series_qh.LegendTextPattern = vm.Name; + series_qh.LegendTextPattern = curve_name; var series_qh_view = new DevExpress.XtraCharts.SplineSeriesView(); series_qh_view.LineStyle.Thickness = 2; - series_qh_view.Color = vm.CurrentColor; + //series_qh_view.Color = vm.Color; series_qh_view.EnableAntialiasing = DefaultBoolean.True; series_qh_view.LineTensionPercent = 50; @@ -684,7 +572,7 @@ series_qh.View = series_qh_view; series_qh.Visible = true; - var pt_qh_list = vm.CurrentCurveQH.GetPointList(12); + var pt_qh_list = qh.GetPointList(12); for (int i = 0; i < pt_qh_list.Count; i++) { series_qh.Points.Add(new SeriesPoint(pt_qh_list[i].X, new double[] { pt_qh_list[i].Y })); @@ -706,10 +594,10 @@ txt_qh.AutoHeight = true; txt_qh.AutoWidth = true; txt_qh.BackColor = System.Drawing.Color.Transparent; - txt_qh.Border.Color = vm.CurrentColor; + //txt_qh.Border.Color = vm.Color; txt_qh.ConnectorStyle = DevExpress.XtraCharts.AnnotationConnectorStyle.Line; txt_qh.DXFont = PumpChartDisplay.AnnoFontQH; - txt_qh.Name = _tag_qh + vm.Id.ToString(); + txt_qh.Name = _tag_qh + id; txt_qh.Padding.Bottom = 1; txt_qh.Padding.Left = 1; txt_qh.Padding.Right = 1; @@ -718,26 +606,26 @@ txt_qh.RuntimeMoving = true; txt_qh.RuntimeResizing = false; txt_qh.RuntimeRotation = false; - txt_qh.Text = vm.Name; - txt_qh.TextColor = vm.CurrentColor; + txt_qh.Text = curve_name; + //txt_qh.TextColor = vm.Color; txt_qh.ShapePosition = position_qh; - txt_qh.Visible = _line_name_visible; + txt_qh.Visible = true; this.chartControl1.AnnotationRepository.Add(txt_qh); this.chartControl1.Series.Add(series_qh); - if (vm.CurrentCurveQE != null) + if (qe != null) { var series_qe = new DevExpress.XtraCharts.Series(); series_qe.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Numerical; series_qe.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False; - series_qe.Name = _tag_qe + vm.Id.ToString(); + series_qe.Name = _tag_qe + id; series_qe.ShowInLegend = false; series_qe.CrosshairEnabled = DefaultBoolean.False; - series_qe.Tag = vm.Id.ToString(); + series_qe.Tag = id; var series_qe_view = new DevExpress.XtraCharts.SplineSeriesView(); series_qe_view.LineStyle.Thickness = 2; - series_qe_view.Color = vm.CurrentColor; + //series_qe_view.Color = vm.Color; series_qe_view.AxisY = _axis_y_eff; series_qe_view.Pane = _default_pane; series_qe_view.EnableAntialiasing = DefaultBoolean.True; @@ -748,7 +636,7 @@ series_qe.View = series_qe_view; series_qe.Visible = _qe_visible; - var pt_qe_list = vm.CurrentCurveQE.GetPointList(12); + var pt_qe_list = qe.GetPointList(12); for (int i = 0; i < pt_qe_list.Count; i++) { series_qe.Points.Add(new SeriesPoint(pt_qe_list[i].X, new double[] { pt_qe_list[i].Y })); @@ -757,19 +645,19 @@ this.chartControl1.Series.Add(series_qe); } - if (vm.CurrentCurveQP != null) + if (qp != null) { var series_qp = new DevExpress.XtraCharts.Series(); series_qp.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Numerical; series_qp.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False; - series_qp.Name = _tag_qp + vm.Id.ToString(); + series_qp.Name = _tag_qp + id; series_qp.ShowInLegend = false; series_qp.CrosshairEnabled = DefaultBoolean.False; - series_qp.Tag = vm.Id.ToString(); + series_qp.Tag = id; var series_qp_view = new DevExpress.XtraCharts.SplineSeriesView(); series_qp_view.LineStyle.Thickness = 2; - series_qp_view.Color = vm.CurrentColor; + //series_qp_view.Color = vm.Color; series_qp_view.AxisY = _axis_y_power; series_qp_view.Pane = _bottom_pane; series_qp_view.EnableAntialiasing = DefaultBoolean.True; @@ -780,155 +668,30 @@ series_qp.View = series_qp_view; series_qp.Visible = _qp_visible; - var pt_qp_list = vm.CurrentCurveQP.GetPointList(12); + var pt_qp_list = qp.GetPointList(12); for (int i = 0; i < pt_qp_list.Count; i++) { series_qp.Points.Add(new SeriesPoint(pt_qp_list[i].X, new double[] { pt_qp_list[i].Y })); } this.chartControl1.Series.Add(series_qp); - } - + } } #endregion - #region ChartEvent - - // 鍙抽敭瀵硅薄 - private object _rightClickObj = null; - private bool _onMoveWorkPointLine = false; - private void chartControl1_MouseDown(object sender, MouseEventArgs e) - { - if (!_initial_data) - return; - var hitInfo = chartControl1.CalcHitInfo(e.Location); - if (e.Button == MouseButtons.Left) - { - if (hitInfo.InSeries) - { - _rightClickObj = hitInfo.Series; - - } - else if (hitInfo.InAxis) - { - _rightClickObj = hitInfo.Axis; - } - else if (hitInfo.InConstantLine) - { - if (hitInfo.ConstantLine == _query_flow_line) - { - _onMoveWorkPointLine = true; - } - - - } - else if (hitInfo.InAnnotation) - { - _rightClickObj = hitInfo.Annotation; - } - else - { - _rightClickObj = null; - } - } - } - - private void chartControl1_MouseMove(object sender, MouseEventArgs e) - { - if (!_initial_data) - return; - if (_onMoveWorkPointLine) - { - var diagramCoordinates = _diagram.PointToDiagram(e.Location); - var axisValue = diagramCoordinates.GetAxisValue(_axis_x_flow); - if (axisValue == null) - return; - double chartQ = axisValue.NumericalValue; - CalcWorkPointByQ(chartQ); - } - else - { - var hitInfo = chartControl1.CalcHitInfo(e.Location); - if (hitInfo.InConstantLine) - { - this.chartControl1.Cursor = Cursors.Hand; - } - else if (hitInfo.InAnnotation) - { - this.chartControl1.Cursor = Cursors.SizeAll; - } - else - { - this.chartControl1.Cursor = Cursors.Default; - } - } - } - - private void chartControl1_MouseUp(object sender, MouseEventArgs e) - { - if (!_initial_data) - return; - _onMoveWorkPointLine = false; - } - - private void chartControl1_Resize(object sender, EventArgs e) - { - CalcTextAnchorPoint(); - } - #endregion + #region Right Click Menu #region Event - private void barBtnSetAxisQValue_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - if (_vm_list == null || !_vm_list.Any()) - return; - var dlg = new PumpAxisValueDlg(); - dlg.SetBindingData(); - dlg.VerifyValueChanged += (value) => - { - if (value < _min_flow || value > _max_flow) - return false; - CalcWorkPointByQ(value); - return true; - }; - dlg.ShowDialog(); - } - - private void barCekLineVisible_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - SetLineVisible(this.barCekLineVisible.Checked); - } - - private void barCekCurveNameVisible_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - SetCurveNameVisible(this.barCekCurveNameVisible.Checked); - } - - - private void barCekLegendVisible_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - SetLegendVisible(this.barCekLegendVisible.Checked); - } - - private void barCekSetAxisNameVisible_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - SetAxisNameVisible(this.barCekSetAxisNameVisible.Checked); - } - + private void barBtnSetChartAxis_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { SetChartAxis(); - } - - private void barCekCurveQHVisible_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - _default_pane.Visibility = _default_pane.Visibility == ChartElementVisibility.Visible ? ChartElementVisibility.Hidden : ChartElementVisibility.Visible; - } - + } + private void barCekCurveQEVisible_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { _qe_visible = this.barCekCurveQEVisible.Checked; @@ -948,71 +711,8 @@ } #endregion - - /// <summary> - /// 璁剧疆宸ヤ綔鐐规樉绀� - /// </summary> - public void SetLineVisible(bool visible) - { - if (!_initial_data) - return; - LineVisible = visible; - CalcWorkPointByQ(); - } - - /// <summary> - /// 璁剧疆瑁呯疆鏇茬嚎鏄剧ず - /// </summary> - public void SetEquipVisible(bool visible) - { - if (!_initial_data) - return; - _equip_visible = visible; - UpdateChart(true); - } - - /// <summary> - /// 璁剧疆鏁堢巼鏇茬嚎鏄剧ず - /// </summary> - public void SetQeVisible(bool visible) - { - this.barCekCurveQEVisible.Checked = visible; - } - - /// <summary> - /// 璁剧疆鏇茬嚎鍚� - /// </summary> - public void SetCurveNameVisible(bool visible) - { - if (!_initial_data) - return; - _line_name_visible = visible; - for (int i = 1; i < this.chartControl1.AnnotationRepository.Count; i++) - { - var anno = this.chartControl1.AnnotationRepository[i]; - anno.Visible = _line_name_visible; - } - } - - /// <summary> - /// 璁剧疆鍥句緥鏄剧ず - /// </summary> - public void SetLegendVisible(bool visible) - { - this.chartControl1.Legend.Visibility = visible ? DefaultBoolean.True : DefaultBoolean.False; - } - - /// <summary> - /// 璁剧疆杞村悕绉版樉绀� - /// </summary> - public void SetAxisNameVisible(bool visible) - { - _axis_x_flow.Title.Visibility = visible ? DefaultBoolean.True : DefaultBoolean.False; - _axis_y_head.Title.Visibility = visible ? DefaultBoolean.True : DefaultBoolean.False; - _axis_y_eff.Title.Visibility = visible ? DefaultBoolean.True : DefaultBoolean.False; - _axis_y_power.Title.Visibility = visible ? DefaultBoolean.True : DefaultBoolean.False; - } - + + /// <summary> /// 璁剧疆鍧愭爣杞� /// </summary> @@ -1031,25 +731,7 @@ #endregion - #region Add Event - - private void barBtnAddBySpeed_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - this.AddBySpeedEvent?.Invoke(); - } - - private void barBtnAddByHz_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - this.AddByHzEvent?.Invoke(); - - } - - private void barBtnAddByPoint_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - this.AddByPointEvent?.Invoke(); - } - - #endregion + } diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/04-variable-speed-view/PumpVariableSpeedViewChart.resx b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/04-variable-speed-view/PumpVariableSpeedViewChart.resx index d3f14dc..9b3f9c9 100644 --- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/04-variable-speed-view/PumpVariableSpeedViewChart.resx +++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/01-single/04-variable-speed-view/PumpVariableSpeedViewChart.resx @@ -117,9 +117,6 @@ <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> - <metadata name="popMenuChart.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>200, 17</value> - </metadata> <assembly alias="DevExpress.Data.v23.2" name="DevExpress.Data.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <data name="barBtnSetChartAxis.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> @@ -202,108 +199,6 @@ Pg0KPC9zdmc+Cw== </value> </data> - <data name="barCekLineVisible.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value> - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAADgFAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iVmVydGljYWxfQXhpc19Mb2dfU2NhbGUiIHN0eWxlPSJlbmFibGUtYmFj - a2dyb3VuZDpuZXcgMCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbGFja3tm - aWxsOiM3MjcyNzI7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5zdDB7b3BhY2l0eTowLjU7fQo8L3N0 - eWxlPg0KICA8ZyBjbGFzcz0ic3QwIj4NCiAgICA8cmVjdCB4PSI0IiB5PSIyNiIgd2lkdGg9IjI2IiBo - ZWlnaHQ9IjIiIGNsYXNzPSJCbGFjayIgLz4NCiAgPC9nPg0KICA8cG9seWdvbiBwb2ludHM9IjQsMiA0 - LDQgMiw0IDIsNiA0LDYgNCw4IDIsOCAyLDEwIDQsMTAgNCwxMiAyLDEyIDIsMTQgNCwxNCA0LDE2IDIs - MTYgMiwxOCA0LDE4IDQsMjAgMiwyMCAyLDIyICAgNCwyMiA0LDI0IDIsMjQgMiwyNiA0LDI2IDQsMjgg - NiwyOCA2LDIgIiBjbGFzcz0iQmxhY2siIC8+DQogIDxwYXRoIGQ9Ik0xNC42LDEwSDEwVjJoMS43djYu - NWgyLjlWMTB6IE0xOC42LDEwYy0xLjEsMC0yLTAuNC0yLjctMS4xYy0wLjctMC43LTEtMS43LTEtMi44 - YzAtMS4yLDAuNC0yLjIsMS4xLTMgIEMxNi42LDIuNCwxNy42LDIsMTguNywyYzEuMSwwLDIsMC40LDIu - NywxLjFzMSwxLjcsMSwyLjljMCwxLjItMC40LDIuMi0xLjEsMi45UzE5LjcsMTAsMTguNiwxMHogTTE4 - LjcsMy41Yy0wLjYsMC0xLjEsMC4yLTEuNCwwLjcgIGMtMC40LDAuNS0wLjUsMS4xLTAuNSwxLjhjMCww - LjgsMC4yLDEuNCwwLjUsMS44YzAuNCwwLjQsMC44LDAuNywxLjQsMC43YzAuNiwwLDEuMS0wLjIsMS40 - LTAuN3MwLjUtMSwwLjUtMS44ICBjMC0wLjgtMC4yLTEuNC0wLjUtMS45QzE5LjcsMy43LDE5LjMsMy41 - LDE4LjcsMy41eiBNMzAsOS4zYy0wLjgsMC40LTEuNywwLjctMi44LDAuN0MyNiwxMCwyNSw5LjcsMjQu - Myw5cy0xLjEtMS42LTEuMS0yLjggIGMwLTEuMiwwLjQtMi4yLDEuMi0zUzI2LjIsMiwyNy41LDJjMC44 - LDAsMS41LDAuMSwyLjIsMC4zVjRjLTAuNi0wLjMtMS4zLTAuNS0yLjItMC41Yy0wLjcsMC0xLjMsMC4y - LTEuOCwwLjdDMjUuMyw0LjYsMjUsNS4zLDI1LDYgIGMwLDAuOCwwLjIsMS40LDAuNiwxLjhzMSwwLjcs - MS42LDAuN2MwLjQsMCwwLjctMC4xLDEtMC4yVjYuOGgtMS41VjUuNUgzMFY5LjN6IiBjbGFzcz0iQmx1 - ZSIgLz4NCjwvc3ZnPgs= -</value> - </data> - <data name="barCekCurveNameVisible.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value> - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALUDAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAxNiAxNiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg - MTYgMTYiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkdyZWVue2ZpbGw6IzExOUI0OTt9Cgku - Qmx1ZXtmaWxsOiMzNDc1QkE7fQoJLkJsYWNre2ZpbGw6IzczNzM3Mzt9Cjwvc3R5bGU+DQogIDxyZWN0 - IHg9IjAiIHk9IjEiIHdpZHRoPSIxNiIgaGVpZ2h0PSIzIiBjbGFzcz0iR3JlZW4iIC8+DQogIDxwb2x5 - Z29uIHBvaW50cz0iMTUsNCAxNSwxNCAxLDE0IDEsNCAwLDQgMCwxNSAxNiwxNSAxNiw0ICIgY2xhc3M9 - IkJsYWNrIiAvPg0KICA8cGF0aCBkPSJNOSw2SDhWNWgydjIuMkMxMC4zLDcuMSwxMC42LDcsMTEuMSw3 - QzEyLjYsNywxMyw3LjksMTMsOXYxYzAsMC45LTAuMiwyLTIsMmMtMC40LDAtMS4yLDAtMi0wLjFWNnog - TTEwLDExICBjMC4zLDAsMC44LDAuMSwxLDAuMWMwLjgsMCwwLjktMC4zLDAuOS0xLjFWOWMwLTAuOC0w - LjMtMS4xLTAuOS0xLjFjLTAuMywwLTAuOCwwLjEtMSwwLjFWMTF6IiBjbGFzcz0iQmx1ZSIgLz4NCiAg - PHBhdGggZD0iTTcsMTFWNy4zQzYuNCw3LjEsNS44LDcsNS4xLDdDMy4xLDcsMyw4LjMsMyw5djFjMCww - LjksMC4yLDIsMS45LDJjMC4yLDAsMC43LDAsMS4zLTAuM1YxMkg3aDF2LTFIN3ogTTYsMTEgIGMtMC4z - LDAuMS0wLjcsMC4xLTAuOSwwLjFjLTAuOCwwLTEtMC4zLTEtMVY5YzAtMC43LDAuMi0xLjEsMS0xLjFD - NS4zLDcuOSw1LjcsOCw2LDhWMTF6IiBjbGFzcz0iQmx1ZSIgLz4NCjwvc3ZnPgs= -</value> - </data> - <data name="barCekSetAxisNameVisible.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value> - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAEMEAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iVmVydGljYWxfVGl0bGUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpu - ZXcgMCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbGFja3tmaWxsOiM3Mjcy - NzI7fQoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJLnN0MHtvcGFjaXR5OjAuNTt9Cjwvc3R5bGU+DQog - IDxwb2x5Z29uIHBvaW50cz0iMTQsMjggMTQsMiAxMiwyIDEyLDMwIDMyLDMwIDMyLDI4ICIgY2xhc3M9 - IkJsYWNrIiAvPg0KICA8ZyBjbGFzcz0ic3QwIj4NCiAgICA8cG9seWdvbiBwb2ludHM9IjMwLDIgMTQs - MiAxNCw0IDMwLDQgMzAsMjggMzIsMjggMzIsNCAzMiwyICAiIGNsYXNzPSJCbGFjayIgLz4NCiAgPC9n - Pg0KICA8cGF0aCBkPSJNMTAsMTRINy41bC0wLjctMi4ySDMuMkwyLjUsMTRIMEwzLjcsNGgyLjdMMTAs - MTR6IE02LjMsMTBMNS4yLDYuN0M1LjEsNi40LDUsNi4xLDUsNS44SDUgIGMwLDAuMy0wLjEsMC42LTAu - MiwwLjlMMy43LDEwSDYuM3ogTTIsMjZWMTZoMy42YzEuMSwwLDIsMC4yLDIuNiwwLjZjMC42LDAuNCww - LjksMSwwLjksMS43YzAsMC41LTAuMiwxLTAuNSwxLjRzLTAuOCwwLjctMS40LDAuOCAgdjBjMC43LDAu - MSwxLjMsMC40LDEuNywwLjhzMC42LDEsMC42LDEuNmMwLDAuOS0wLjMsMS42LTEsMi4yQzcuOSwyNS43 - LDcsMjYsNS44LDI2SDJ6IE00LjMsMTcuN1YyMGgxYzAuNSwwLDAuOC0wLjEsMS4xLTAuMyAgYzAuMy0w - LjIsMC40LTAuNSwwLjQtMC45YzAtMC43LTAuNS0xLjEtMS42LTEuMUg0LjN6IE00LjMsMjEuN3YyLjZo - MS4yYzAuNSwwLDAuOS0wLjEsMS4yLTAuNGMwLjMtMC4yLDAuNC0wLjYsMC40LTEgIGMwLTAuNC0wLjEt - MC43LTAuNC0wLjljLTAuMy0wLjItMC43LTAuMy0xLjItMC4zSDQuM3oiIGNsYXNzPSJZZWxsb3ciIC8+ - DQo8L3N2Zz4L -</value> - </data> - <data name="barCekLegendVisible.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value> - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALgDAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg - MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ - LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3 - RDc7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7b3Bh - Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tm - aWxsOiNGRkIxMTU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iU2hvd0xlZ2VuZCI+DQogICAgPGcgY2xhc3M9 - InN0MSI+DQogICAgICA8cG9seWdvbiBwb2ludHM9IjMwLDAgNCwwIDQsMiAzMCwyIDMwLDI4IDMyLDI4 - IDMyLDIgMzIsMCAgICIgY2xhc3M9IkJsYWNrIiAvPg0KICAgIDwvZz4NCiAgICA8cmVjdCB4PSI2IiB5 - PSI0IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iUmVkIiAvPg0KICAgIDxyZWN0IHg9IjYiIHk9 - IjEyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iQmx1ZSIgLz4NCiAgICA8cmVjdCB4PSI2IiB5 - PSIyMCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9IlllbGxvdyIgLz4NCiAgICA8cGF0aCBkPSJN - NCwyOFYwSDJ2MzBoMzB2LTJINHogTTI2LDhIMTZWNmgxMFY4eiBNMjYsMTRIMTZ2MmgxMFYxNHogTTI2 - LDIySDE2djJoMTBWMjJ6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCjwvc3ZnPgs= -</value> - </data> <metadata name="barManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>17, 17</value> </metadata> @@ -325,144 +220,4 @@ Pg0KPC9zdmc+Cw== </value> </data> - <data name="barSubMenuEdit.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value> - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAAQDAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg - MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku - Qmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9CgkuWWVsbG93e2ZpbGw6I0ZG - QjExNTt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh - Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8cGF0aCBkPSJNMjQsMjQu - OFYyOEg0VjRoMjB2Ny4ybDItMlYzYzAtMC41LTAuNS0xLTEtMUgzQzIuNSwyLDIsMi41LDIsM3YyNmMw - LDAuNSwwLjUsMSwxLDFoMjJjMC41LDAsMS0wLjUsMS0xdi02LjIgIEwyNCwyNC44eiIgY2xhc3M9IkJs - YWNrIiAvPg0KICA8cGF0aCBkPSJNMjksMTdsLTgsOGwtNC00bDgtOEwyOSwxN3ogTTMwLDE2bDEuNy0x - LjdjMC40LTAuNCwwLjQtMSwwLTEuM0wyOSwxMC4zYy0wLjQtMC40LTEtMC40LTEuMywwTDI2LDEyTDMw - LDE2eiAgIE0xNiwyMnY0aDRMMTYsMjJ6IiBjbGFzcz0iQmx1ZSIgLz4NCjwvc3ZnPgs= -</value> - </data> - <data name="barSubMenuQuery.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value> - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAANoCAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg - MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z - ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz - OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp - dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9Ilpvb20iPg0KICAgIDxwYXRoIGQ9Ik0yNy43LDI1LjNM - MjAuNSwxOGMxLTEuNCwxLjUtMy4yLDEuNS01YzAtNS00LTktOS05cy05LDQtOSw5YzAsNSw0LDksOSw5 - YzEuOSwwLDMuNi0wLjYsNS0xLjVsNy4zLDcuMyAgIGMwLjMsMC4zLDAuOSwwLjMsMS4yLDBsMS4yLTEu - MkMyOC4xLDI2LjIsMjguMSwyNS42LDI3LjcsMjUuM3ogTTYsMTNjMC0zLjksMy4xLTcsNy03czcsMy4x - LDcsN2MwLDMuOS0zLjEsNy03LDdTNiwxNi45LDYsMTN6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4N - Cjwvc3ZnPgs= -</value> - </data> - <data name="barBtnSetAxisQValue.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value> - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAO8CAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iSG9yaXpvbnRhbF9BeGlzX0xlZnRfdG9fUmlnaHQiIHN0eWxlPSJlbmFi - bGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5C - bGFja3tmaWxsOiM3MjcyNzI7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5zdDB7b3BhY2l0eTowLjU7 - fQo8L3N0eWxlPg0KICA8ZyBjbGFzcz0ic3QwIj4NCiAgICA8cmVjdCB4PSI0IiB5PSIyIiB3aWR0aD0i - MiIgaGVpZ2h0PSIxOCIgY2xhc3M9IkJsYWNrIiAvPg0KICA8L2c+DQogIDxwb2x5Z29uIHBvaW50cz0i - MzAsMjcgMjYsMjQgMjYsMjYgNCwyNiA0LDI4IDI2LDI4IDI2LDMwICIgY2xhc3M9IkJsdWUiIC8+DQog - IDxwb2x5Z29uIHBvaW50cz0iNCwxOCA0LDIwIDYsMjAgNiwyMiA4LDIyIDgsMjAgMTAsMjAgMTAsMjIg - MTIsMjIgMTIsMjAgMTQsMjAgMTQsMjIgMTYsMjIgMTYsMjAgMTgsMjAgMTgsMjIgMjAsMjIgICAyMCwy - MCAyMiwyMCAyMiwyMiAyNCwyMiAyNCwyMCAyNiwyMCAyNiwyMiAyOCwyMiAyOCwyMCAzMCwyMCAzMCwx - OCAiIGNsYXNzPSJCbGFjayIgLz4NCjwvc3ZnPgs= -</value> - </data> - <data name="barSubAdd.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value> - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAGICAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg - MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z - ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz - OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp - dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkFkZENpcmNsZWQiPg0KICAgIDxwYXRoIGQ9Ik0xNiw0 - QzkuNCw0LDQsOS40LDQsMTZzNS40LDEyLDEyLDEyczEyLTUuNCwxMi0xMlMyMi42LDQsMTYsNHogTTI0 - LDE4aC02djZoLTR2LTZIOHYtNGg2VjhoNHY2aDZWMTh6IiBjbGFzcz0iR3JlZW4iIC8+DQogIDwvZz4N - Cjwvc3ZnPgs= -</value> - </data> - <data name="barBtnAddBySpeed.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value> - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAHgDAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg - MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ - LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD - MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh - Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw - MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu - bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRXhwYW5kQ29sbGFwc2UiPg0KICAg - IDxwYXRoIGQ9Ik05LDBDNCwwLDAsNCwwLDlzNCw5LDksOWMwLjUsMCwxLTAuMSwxLjUtMC4xYzEuMS0z - LjYsMy45LTYuNCw3LjQtNy40YzAtMC41LDAuMS0xLDAuMS0xLjVDMTgsNCwxNCwwLDksMHogICAgTTE0 - LDEwaC00djRIOHYtNEg0VjhoNFY0aDJ2NGg0VjEweiIgY2xhc3M9IkdyZWVuIiAvPg0KICAgIDxwYXRo - IGQ9Ik0yMSwxMmMtNSwwLTksNC05LDlzNCw5LDksOXM5LTQsOS05UzI2LDEyLDIxLDEyeiBNMjYsMjJI - MTZ2LTJoMTBWMjJ6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgPC9nPg0KPC9zdmc+Cw== -</value> - </data> - <data name="barBtnAddByHz.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value> - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALUDAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg - MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLlll - bGxvd3tmaWxsOiNGRkIxMTU7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD - MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh - Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntvcGFjaXR5OjAuMzU7fQoJLnN0M3tv - cGFjaXR5OjAuNjU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iU3dpZnRQbG90Ij4NCiAgICA8cG9seWdvbiBw - b2ludHM9IjMwLDQgMzAsOCAyOCw4IDI4LDExIDI2LDExIDI2LDYgMjQsNiAyNCwyIDIyLDIgMjIsOCAy - MCw4IDIwLDE0IDE4LDE0IDE4LDEyIDE2LDEyIDE2LDE2IDE0LDE2ICAgIDE0LDIyIDEyLDIyIDEyLDE4 - IDEwLDE4IDEwLDE0IDgsMTQgOCwyMCA2LDIwIDYsMTYgNCwxNiA0LDEyIDIsMTIgMiwxNiAwLDE2IDAs - MjIgMiwyMiAyLDE4IDQsMTggNCwyMiA2LDIyIDYsMjQgOCwyNCA4LDIyIDEwLDIyICAgIDEwLDI0IDEy - LDI0IDEyLDI4IDE0LDI4IDE0LDI0IDE2LDI0IDE2LDE4IDE4LDE4IDE4LDIwIDIwLDIwIDIwLDE2IDIy - LDE2IDIyLDEwIDI0LDEwIDI0LDE0IDI2LDE0IDI2LDE4IDI4LDE4IDI4LDE0IDMwLDE0IDMwLDEwICAg - IDMyLDEwIDMyLDQgICIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs= -</value> - </data> - <data name="barBtnAddByPoint.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value> - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIsBAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAxNSAxNSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iQmxhY2tDaXJjbGVfMV8iIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpu - ZXcgMCAwIDE1IDE1Ij4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbGFja3tmaWxsOiM3Mjcy - NzI7fQo8L3N0eWxlPg0KICA8Y2lyY2xlIGN4PSI3LjUiIGN5PSI3LjUiIHI9IjcuNSIgaWQ9IkJsYWNr - Q2lyY2xlIiBjbGFzcz0iQmxhY2siIC8+DQo8L3N2Zz4L -</value> - </data> - <metadata name="popMenuLine.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>397, 17</value> - </metadata> </root> \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/02-multi/01-parallel/PumpParallelChart.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/02-multi/01-parallel/PumpParallelChart.cs index 03e3294..62178c3 100644 --- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/02-multi/01-parallel/PumpParallelChart.cs +++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/02-multi/01-parallel/PumpParallelChart.cs @@ -44,7 +44,7 @@ private bool _initial_data = false; - private PumpParallelViewModel _paralle_vm = null; + private PumpParallelViewModel _vm = null; #endregion @@ -170,7 +170,7 @@ using Pen pen = new(Color.Black, 2); pen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDotDot; - DrawEquipPoint(dxArgs.Cache, pen, _equip_sect_pt, _paralle_vm.CurrentCurveQE, _paralle_vm.CurrentCurveQP); + DrawEquipPoint(dxArgs.Cache, pen, _equip_sect_pt, _vm.CurrentCurveQE, _vm.CurrentCurveQP); DrawEquipLine(dxArgs.Cache, pen, _equip_line); } @@ -263,7 +263,7 @@ } if (qp != null && _qp_visible) { - var qp_y = qe.GetPointY(qh_x); + var qp_y = qp.GetPointY(qh_x); var qp_pt = _diagram.DiagramToPoint(qh_x, qp_y, _axis_x_flow, _axis_y_power); var qp_pt_x = qp_pt.Point.X; var qp_pt_y = qp_pt.Point.Y; @@ -304,14 +304,14 @@ _equip_pt = new Geometry.Point2d(x, y); _equip_line = null; _equip_sect_pt = null; - if (_paralle_vm == null || (_vm_list == null || !_vm_list.Any())) + if (_vm == null || (_vm_list == null || !_vm_list.Any())) { this.DesignPointChangedEvent?.Invoke(null); return; } start_head ??= _coordinate.DispMinH(); - var equip_line = Yw.Geometry.EquipCurveHelper.CalcEquipCurve(_paralle_vm.CurrentCurveQH, _equip_pt, start_head.Value, out Yw.Geometry.Point2d sect_pt); + var equip_line = Yw.Geometry.EquipCurveHelper.CalcEquipCurve(_vm.CurrentCurveQH, _equip_pt, start_head.Value, out Yw.Geometry.Point2d sect_pt); if (equip_line == null || sect_pt == null) return; @@ -465,10 +465,10 @@ _max_power = Math.Max(_max_power, yyy.Max()); } - if (_paralle_vm != null) + if (_vm != null) { { - var qh_pt_list = _paralle_vm.CurveQH.GetPointList(); + var qh_pt_list = _vm.CurveQH.GetPointList(); var xxx = qh_pt_list.Select(x => x.X); var yyy = qh_pt_list.Select(x => x.Y); @@ -480,17 +480,17 @@ _max_head = Math.Max(_max_head, yyy.Max()); } - if (_paralle_vm.CurveQE != null) + if (_vm.CurveQE != null) { - var qe_pt_list = _paralle_vm.CurveQE.GetPointList(); + var qe_pt_list = _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) + if (_vm.CurveQP != null) { - var qp_pt_list = _paralle_vm.CurveQP.GetPointList(); + var qp_pt_list = _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()); @@ -635,8 +635,8 @@ this.chartControl1.BeginInit(); this.chartControl1.Series.Clear(); - var annotationCount = this.chartControl1.AnnotationRepository.Count; - for (int i = annotationCount - 1; i > 0; i--) + var annotation_count = this.chartControl1.AnnotationRepository.Count; + for (int i = annotation_count - 1; i > 0; i--) { if (i == 0) break; @@ -650,7 +650,7 @@ { CreateLineSeries(vm); } - CalcParallelSeries(_vm_list); + CalcParallelSeries(_vm_list.Count >= 2 ? _vm_list : null); } this.chartControl1.EndInit(); } @@ -660,11 +660,12 @@ /// </summary> private void CalcParallelSeries(List<PumpParallelViewModel> list) { - _paralle_vm = null; + _vm = null; this.barCekLineVisible.Enabled = false; if (list == null || !list.Any()) { LineVisible = false; + this.ParallelStatusChangedEvent?.Invoke(false, "骞惰仈澶辫触!"); return; } @@ -693,22 +694,22 @@ var qe = new Yw.Geometry.CubicSpline2d(calc_pt_qe_list); var qp = new Yw.Geometry.CubicSpline2d(calc_pt_qp_list); - _paralle_vm = new Yw.WinFrmUI.Phart.PumpParallelViewModel(); - _paralle_vm.Id = "parallel"; - _paralle_vm.Name = "骞惰仈绾�"; - _paralle_vm.CurrentColor = Color.Black; - _paralle_vm.CurveQH = qh; - _paralle_vm.CurveQE = qe; - _paralle_vm.CurveQP = qp; - _paralle_vm.CurrentCurveQH = qh; - _paralle_vm.CurrentCurveQE = qe; - _paralle_vm.CurrentCurveQP = qp; + _vm = new Yw.WinFrmUI.Phart.PumpParallelViewModel(); + _vm.Id = "parallel"; + _vm.Name = "骞惰仈绾�"; + _vm.CurrentColor = Color.Black; + _vm.CurveQH = qh; + _vm.CurveQE = qe; + _vm.CurveQP = qp; + _vm.CurrentCurveQH = qh; + _vm.CurrentCurveQE = qe; + _vm.CurrentCurveQP = qp; - _paralle_vm.CurveQH = qh; - _paralle_vm.CurveQE = qe; - _paralle_vm.CurveQP = qp; + _vm.CurveQH = qh; + _vm.CurveQE = qe; + _vm.CurveQP = qp; - CreateLineSeries(_paralle_vm); + CreateLineSeries(_vm); this.barCekLineVisible.Enabled = true; this.ParallelStatusChangedEvent?.Invoke(true, "骞惰仈鎴愬姛!"); @@ -745,13 +746,13 @@ _anno_txt_query_info.Visible = true; } - if (_paralle_vm==null) + if (_vm==null) return; if (_vm_list == null || !_vm_list.Any()) return; - var min_flow = _paralle_vm.CurveQH.MinX; - var max_flow = _paralle_vm.CurveQH.MaxX; + var min_flow = _vm.CurveQH.MinX; + var max_flow = _vm.CurveQH.MaxX; x_flow ??= _equip_pt?.X ?? max_flow *0.8; if (x_flow < min_flow || x_flow > max_flow) @@ -761,16 +762,16 @@ double? paralle_eff = null, paralle_power = null; paralle_flow = x_flow.Value; - paralle_head = _paralle_vm.CurrentCurveQH.GetPointYUnlimited(paralle_flow); + paralle_head = _vm.CurrentCurveQH.GetPointYUnlimited(paralle_flow); - if (_paralle_vm.CurrentCurveQP != null) + if (_vm.CurrentCurveQP != null) { - paralle_power = _paralle_vm.CurrentCurveQP.GetPointYUnlimited(paralle_flow); + paralle_power = _vm.CurrentCurveQP.GetPointYUnlimited(paralle_flow); paralle_eff = PumpCalcHelper.CalculateE(paralle_flow, paralle_head, paralle_power.Value); } - else if (_paralle_vm.CurrentCurveQE != null) + else if (_vm.CurrentCurveQE != null) { - paralle_eff = _paralle_vm.CurrentCurveQE.GetPointYUnlimited(paralle_flow); + paralle_eff = _vm.CurrentCurveQE.GetPointYUnlimited(paralle_flow); paralle_power = PumpCalcHelper.CalculateP(paralle_flow, paralle_head, paralle_eff.Value); } -- Gitblit v1.9.3