Shuxia Ning
2024-11-03 342fa8be89ce72d4a1f87fc857def22b41722dfc
曲线 问题修改
已修改12个文件
867 ■■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/99-common/PumpParallelChartDlg.cs 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/PumpParallelAnalyDlg.cs 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/01-perform/PumpPerformChart.Designer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/01-perform/PumpPerformChart.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/02-perform-compare/PumpPerformCompareChart.Designer.cs 360 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/02-perform-compare/PumpPerformCompareChart.cs 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/02-perform-compare/PumpPerformCompareChart.resx 180 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/03-serial-parallel/PumpSerialParallelChart.cs 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/03-serial-parallel/PumpSerialParallelInfoViewModel.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/04-variable-speed/PumpVariableSpeedChart.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/04-coordinate/PumpAxisValueDlg.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/02-valve-chart/01-chart/ValvePerform2dChart.cs 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/99-common/PumpParallelChartDlg.cs
@@ -189,20 +189,38 @@
                return default;
            }
            Yw.Geometry.CubicSpline2d qh = new Yw.Geometry.CubicSpline2d(calc_pt_qh_list);
            Yw.Geometry.CubicSpline2d qe = new Yw.Geometry.CubicSpline2d(calc_pt_qe_list);
            Yw.Geometry.CubicSpline2d qp = new Yw.Geometry.CubicSpline2d(calc_pt_qp_list);
            var total_flow = list.Sum(x => x.Qh.MaxX);
            var parallel_flow = calc_pt_qh_list.Max(x => x.X);
            if (total_flow > parallel_flow * 1.05)
            {
                var ex_ratio = total_flow / parallel_flow;
                if (qh != null)
                    qh.MaxX = qh.MaxX * ex_ratio;
                if (qe != null)
                    qe.MaxX = qe.MaxX * ex_ratio;
                if (qp != null)
                    qp.MaxX = qp.MaxX * ex_ratio;
            }
            var vm_sp = new Yw.WinFrmUI.Phart.PumpSerialParallelInfoViewModel();
            vm_sp.Id = _parallel_id;
            vm_sp.Name = line_name;
            vm_sp.Qh = new Yw.Geometry.CubicSpline2d(calc_pt_qh_list);
            vm_sp.Qe = new Yw.Geometry.CubicSpline2d(calc_pt_qe_list);
            vm_sp.Qp = new Yw.Geometry.CubicSpline2d(calc_pt_qp_list);
            vm_sp.Qh = qh;
            vm_sp.Qe = qe;
            vm_sp.Qp = qp;
            vm_sp.QhCalc = vm_sp.Qh;
            vm_sp.QeCalc = vm_sp.Qe;
            vm_sp.QpCalc = vm_sp.Qp;
            vm_sp.Color = Color.Black;
            vm_sp.IsBp = true;
            vm_sp.IsDefault = true;
            var pt_list = vm_sp.Qp.GetPointList(12);
            return vm_sp;
        }
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/PumpParallelAnalyDlg.cs
@@ -121,7 +121,7 @@
                    vm.Qp = new CubicSpline2d(qp_pt_list);
                }
                vm.CalcuQ = x.CalcuQ;
                vm.CalcuH = x.CalcuH;
                vm.CalcuH = x.CalcuH;
                vm.Color = GetRandomColor(i);
                vm.Calc();
                vm_list.Add(vm);
@@ -189,25 +189,60 @@
            line_name = "并联曲线";
            calc_bol = helper.CalculateParallel(out calc_pt_qh_list, out calc_pt_qe_list, out calc_pt_qp_list);
            if (!calc_bol || calc_pt_qh_list.Count < 3)
            if (!calc_bol || calc_pt_qh_list.Count < 4)
            {
                return default;
            }
            var qh = new Yw.Geometry.CubicSpline2d(calc_pt_qh_list);
            var qe = new Yw.Geometry.CubicSpline2d(calc_pt_qe_list);
            var qp = new Yw.Geometry.CubicSpline2d(calc_pt_qp_list);
            var vm_sp = new Yw.WinFrmUI.Phart.PumpSerialParallelInfoViewModel();
            vm_sp.Id = _parallel_id;
            vm_sp.Name = line_name;
            vm_sp.Qh = new Yw.Geometry.CubicSpline2d(calc_pt_qh_list);
            vm_sp.Qe = new Yw.Geometry.CubicSpline2d(calc_pt_qe_list);
            vm_sp.Qp = new Yw.Geometry.CubicSpline2d(calc_pt_qp_list);
            vm_sp.QhCalc = vm_sp.Qh;
            vm_sp.QeCalc = vm_sp.Qe;
            vm_sp.QpCalc = vm_sp.Qp;
            vm_sp.Qh = qh;
            vm_sp.Qe = qe;
            vm_sp.Qp = qp;
            vm_sp.Color = Color.Black;
            vm_sp.IsBp = true;
            vm_sp.IsDefault = true;
            var pt_list = vm_sp.Qp.GetPointList(12);
            var total_flow = list.Sum(x => x.Qh.MaxX);
            var parallel_flow = calc_pt_qh_list.Max(x => x.X);
            double extend_ratio = 1;
            if (total_flow > parallel_flow * 1.05)
            {
                extend_ratio = total_flow / parallel_flow;
                extend_ratio = Math.Round(extend_ratio, 1);
                if (qh != null)
                {
                    var ex_pt_list = qh.GetPointList();
                    var ex_qh = new Yw.Geometry.CubicSpline2d(ex_pt_list);
                    ex_qh.MaxX = ex_qh.MaxX * extend_ratio;
                    vm_sp.QhCalc = ex_qh;
                }
                if (qe != null)
                {
                    var ex_pt_list = qe.GetPointList();
                    var ex_qe = new Yw.Geometry.CubicSpline2d(ex_pt_list);
                    ex_qe.MaxX = ex_qe.MaxX * extend_ratio;
                    vm_sp.QeCalc = ex_qe;
                }
                if (qp != null)
                {
                    var ex_pt_list = qp.GetPointList();
                    var ex_qp = new Yw.Geometry.CubicSpline2d(ex_pt_list);
                    ex_qp.MaxX = ex_qp.MaxX * extend_ratio;
                    vm_sp.QpCalc = ex_qp;
                }
            }
            vm_sp.ExtendFlow = qh.MaxX;
            vm_sp.ExtendRatio = extend_ratio;
            return vm_sp;
        }
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/01-perform/PumpPerformChart.Designer.cs
@@ -195,7 +195,7 @@
            series2.Name = "SeriesCurveQE";
            series2.SeriesID = 1;
            splineSeriesView2.AxisYName = "AxisYQE";
            splineSeriesView2.Color = Color.Green;
            splineSeriesView2.Color = Color.Green;
            series2.View = splineSeriesView2;
            series3.Name = "SeriesCurveQP";
            series3.SeriesID = 2;
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/01-perform/PumpPerformChart.cs
@@ -1,14 +1,8 @@
using DevExpress.Charts.Model;
using DevExpress.Utils;
using DevExpress.Utils;
using DevExpress.XtraCharts;
using DevExpress.XtraEditors;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Yw.Geometry;
using static DevExpress.Utils.Drawing.Helpers.NativeMethods;
namespace Yw.WinFrmUI.Phart
{
@@ -88,7 +82,11 @@
            set
            {
                _lineVisible = value;
                this.barCekLineVisible.Checked = _lineVisible;
                this.barCekLineVisible.Checked = _lineVisible;
                this.barBtnSetAxisHValue.Enabled = _lineVisible;
                this.barBtnSetAxisQValue.Enabled = _lineVisible;
                this.barBtnPositioningMaxE.Enabled = _lineVisible;
                this.barBtnPositioningMaxQ.Enabled = _lineVisible;
            }
        }
        private bool _lineVisible = false;
@@ -111,10 +109,10 @@
        /// </summary>
        private void InitialChart()
        {
            this.chartControl1.SetChartDisplay();
            this.chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
            _main_chart_diagram = (XYDiagram)chartControl1.Diagram;
            _bottom_panel = (XYDiagramPane)_main_chart_diagram.FindPaneByName("BottomPanel");
@@ -218,9 +216,7 @@
                    path.AddCurve(g_pts.ToArray());
                    dxArgs.Cache.DrawPath(pen, path);
                }
            }
            }
        }
@@ -702,7 +698,8 @@
            if (workQ == null)
            {
                workQ = (minQ + maxQ) / 2;
                //workQ = (minQ + maxQ) / 2;
                workQ = minQ;
            }
            else
            {
@@ -764,7 +761,7 @@
            if (workH < minH || workH > maxH)
                return;
            var workQ = _qh.GetPointY(workH);
            var workQ = _qh.GetPointsX(workH)?.LastOrDefault();
            CalcWorkPointByQ(workQ);
        }
@@ -776,10 +773,10 @@
            if (!_lineVisible)
                return;
            if (_qe == null)
                return;
            var workQ = _qe.MaxX;
                return;
            var pt_list = _qe.GetPointList();
            pt_list = pt_list.OrderBy(x => x.Y).ToList();
            var workQ = pt_list.Last().X;
            CalcWorkPointByQ(workQ);
        }
@@ -975,7 +972,7 @@
        // 右键对象 
        private object _rightClickObj = null;
        private bool _onMoveWorkPointLine = false;
        private bool _onMoveWorkHLine = false;
        private bool _onMoveWorkHLine = false;
        private void chartControl1_MouseDown(object sender, MouseEventArgs e)
        {
            if (!_initial_data)
@@ -1029,6 +1026,7 @@
        {
            if (!_initial_data)
                return;
            if (_onMoveWorkPointLine)
            {
                var diagramCoordinates = _main_chart_diagram.PointToDiagram(e.Location);
@@ -1047,8 +1045,24 @@
                    return;
                double chartH = axisValue.NumericalValue;
                CalcWorkPointByH(chartH);
            }
            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)
@@ -1093,6 +1107,7 @@
                return;
            var dlg = new PumpAxisValueDlg();
            dlg.SetBindingData();
            dlg.Text = "扬程";
            dlg.VerifyValueChanged += (value) =>
            {
                var min = _qh_pt_list.Min(x => x.Y);
@@ -1119,7 +1134,6 @@
                    item.Visible = _eq_visible;
                }
            }
        }
        private void barBtnPositioningMaxQ_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
@@ -1202,7 +1216,7 @@
        {
            if (!_initial_data)
                return;
            _lineVisible = visible;
            LineVisible = visible;
            CalcWorkPointByQ();
        }
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/02-perform-compare/PumpPerformCompareChart.Designer.cs
@@ -31,29 +31,29 @@
        private void InitializeComponent()
        {
            components = new System.ComponentModel.Container();
            DevExpress.XtraCharts.TextAnnotation textAnnotation2 = new DevExpress.XtraCharts.TextAnnotation();
            DevExpress.XtraCharts.ChartAnchorPoint chartAnchorPoint2 = new DevExpress.XtraCharts.ChartAnchorPoint();
            DevExpress.XtraCharts.RelativePosition relativePosition2 = new DevExpress.XtraCharts.RelativePosition();
            DevExpress.XtraCharts.XYDiagram xyDiagram2 = new DevExpress.XtraCharts.XYDiagram();
            DevExpress.XtraCharts.ConstantLine constantLine3 = new DevExpress.XtraCharts.ConstantLine();
            DevExpress.XtraCharts.ConstantLine constantLine4 = new DevExpress.XtraCharts.ConstantLine();
            DevExpress.XtraCharts.XYDiagramPane xyDiagramPane2 = new DevExpress.XtraCharts.XYDiagramPane();
            DevExpress.XtraCharts.SecondaryAxisY secondaryAxisy3 = new DevExpress.XtraCharts.SecondaryAxisY();
            DevExpress.XtraCharts.SecondaryAxisY secondaryAxisy4 = new DevExpress.XtraCharts.SecondaryAxisY();
            DevExpress.XtraCharts.Series series8 = new DevExpress.XtraCharts.Series();
            DevExpress.XtraCharts.SplineSeriesView splineSeriesView8 = new DevExpress.XtraCharts.SplineSeriesView();
            DevExpress.XtraCharts.Series series9 = new DevExpress.XtraCharts.Series();
            DevExpress.XtraCharts.SplineSeriesView splineSeriesView9 = new DevExpress.XtraCharts.SplineSeriesView();
            DevExpress.XtraCharts.Series series10 = new DevExpress.XtraCharts.Series();
            DevExpress.XtraCharts.SplineSeriesView splineSeriesView10 = new DevExpress.XtraCharts.SplineSeriesView();
            DevExpress.XtraCharts.Series series11 = new DevExpress.XtraCharts.Series();
            DevExpress.XtraCharts.SplineSeriesView splineSeriesView11 = new DevExpress.XtraCharts.SplineSeriesView();
            DevExpress.XtraCharts.Series series12 = new DevExpress.XtraCharts.Series();
            DevExpress.XtraCharts.SplineSeriesView splineSeriesView12 = new DevExpress.XtraCharts.SplineSeriesView();
            DevExpress.XtraCharts.Series series13 = new DevExpress.XtraCharts.Series();
            DevExpress.XtraCharts.SplineSeriesView splineSeriesView13 = new DevExpress.XtraCharts.SplineSeriesView();
            DevExpress.XtraCharts.Series series14 = new DevExpress.XtraCharts.Series();
            DevExpress.XtraCharts.SplineSeriesView splineSeriesView14 = new DevExpress.XtraCharts.SplineSeriesView();
            DevExpress.XtraCharts.TextAnnotation textAnnotation1 = new DevExpress.XtraCharts.TextAnnotation();
            DevExpress.XtraCharts.ChartAnchorPoint chartAnchorPoint1 = new DevExpress.XtraCharts.ChartAnchorPoint();
            DevExpress.XtraCharts.RelativePosition relativePosition1 = new DevExpress.XtraCharts.RelativePosition();
            DevExpress.XtraCharts.XYDiagram xyDiagram1 = new DevExpress.XtraCharts.XYDiagram();
            DevExpress.XtraCharts.ConstantLine constantLine1 = new DevExpress.XtraCharts.ConstantLine();
            DevExpress.XtraCharts.ConstantLine constantLine2 = new DevExpress.XtraCharts.ConstantLine();
            DevExpress.XtraCharts.XYDiagramPane xyDiagramPane1 = new DevExpress.XtraCharts.XYDiagramPane();
            DevExpress.XtraCharts.SecondaryAxisY secondaryAxisy1 = new DevExpress.XtraCharts.SecondaryAxisY();
            DevExpress.XtraCharts.SecondaryAxisY secondaryAxisy2 = new DevExpress.XtraCharts.SecondaryAxisY();
            DevExpress.XtraCharts.Series series1 = new DevExpress.XtraCharts.Series();
            DevExpress.XtraCharts.SplineSeriesView splineSeriesView1 = new DevExpress.XtraCharts.SplineSeriesView();
            DevExpress.XtraCharts.Series series2 = new DevExpress.XtraCharts.Series();
            DevExpress.XtraCharts.SplineSeriesView splineSeriesView2 = new DevExpress.XtraCharts.SplineSeriesView();
            DevExpress.XtraCharts.Series series3 = new DevExpress.XtraCharts.Series();
            DevExpress.XtraCharts.SplineSeriesView splineSeriesView3 = new DevExpress.XtraCharts.SplineSeriesView();
            DevExpress.XtraCharts.Series series4 = new DevExpress.XtraCharts.Series();
            DevExpress.XtraCharts.SplineSeriesView splineSeriesView4 = new DevExpress.XtraCharts.SplineSeriesView();
            DevExpress.XtraCharts.Series series5 = new DevExpress.XtraCharts.Series();
            DevExpress.XtraCharts.SplineSeriesView splineSeriesView5 = new DevExpress.XtraCharts.SplineSeriesView();
            DevExpress.XtraCharts.Series series6 = new DevExpress.XtraCharts.Series();
            DevExpress.XtraCharts.SplineSeriesView splineSeriesView6 = new DevExpress.XtraCharts.SplineSeriesView();
            DevExpress.XtraCharts.Series series7 = new DevExpress.XtraCharts.Series();
            DevExpress.XtraCharts.SplineSeriesView splineSeriesView7 = new DevExpress.XtraCharts.SplineSeriesView();
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PumpPerformCompareChart));
            chartControl1 = new DevExpress.XtraCharts.ChartControl();
            popMenuChart = new DevExpress.XtraBars.PopupMenu(components);
@@ -85,27 +85,27 @@
            popMenuLine = new DevExpress.XtraBars.PopupMenu(components);
            bar1 = new DevExpress.XtraBars.Bar();
            ((System.ComponentModel.ISupportInitialize)chartControl1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)textAnnotation2).BeginInit();
            ((System.ComponentModel.ISupportInitialize)xyDiagram2).BeginInit();
            ((System.ComponentModel.ISupportInitialize)constantLine3).BeginInit();
            ((System.ComponentModel.ISupportInitialize)constantLine4).BeginInit();
            ((System.ComponentModel.ISupportInitialize)xyDiagramPane2).BeginInit();
            ((System.ComponentModel.ISupportInitialize)secondaryAxisy3).BeginInit();
            ((System.ComponentModel.ISupportInitialize)secondaryAxisy4).BeginInit();
            ((System.ComponentModel.ISupportInitialize)series8).BeginInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView8).BeginInit();
            ((System.ComponentModel.ISupportInitialize)series9).BeginInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView9).BeginInit();
            ((System.ComponentModel.ISupportInitialize)series10).BeginInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView10).BeginInit();
            ((System.ComponentModel.ISupportInitialize)series11).BeginInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView11).BeginInit();
            ((System.ComponentModel.ISupportInitialize)series12).BeginInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView12).BeginInit();
            ((System.ComponentModel.ISupportInitialize)series13).BeginInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView13).BeginInit();
            ((System.ComponentModel.ISupportInitialize)series14).BeginInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView14).BeginInit();
            ((System.ComponentModel.ISupportInitialize)textAnnotation1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)xyDiagram1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)constantLine1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)constantLine2).BeginInit();
            ((System.ComponentModel.ISupportInitialize)xyDiagramPane1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)secondaryAxisy1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)secondaryAxisy2).BeginInit();
            ((System.ComponentModel.ISupportInitialize)series1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)series2).BeginInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView2).BeginInit();
            ((System.ComponentModel.ISupportInitialize)series3).BeginInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView3).BeginInit();
            ((System.ComponentModel.ISupportInitialize)series4).BeginInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView4).BeginInit();
            ((System.ComponentModel.ISupportInitialize)series5).BeginInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView5).BeginInit();
            ((System.ComponentModel.ISupportInitialize)series6).BeginInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView6).BeginInit();
            ((System.ComponentModel.ISupportInitialize)series7).BeginInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView7).BeginInit();
            ((System.ComponentModel.ISupportInitialize)popMenuChart).BeginInit();
            ((System.ComponentModel.ISupportInitialize)barManager1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)popMenuLine).BeginInit();
@@ -113,75 +113,75 @@
            // 
            // chartControl1
            // 
            chartAnchorPoint2.X = 871;
            chartAnchorPoint2.Y = 783;
            textAnnotation2.AnchorPoint = chartAnchorPoint2;
            textAnnotation2.AnnotationID = 0;
            textAnnotation2.AutoHeight = true;
            textAnnotation2.AutoWidth = true;
            textAnnotation2.Name = "TextAnnoWorkPoint";
            relativePosition2.Angle = -205.38790629109593D;
            relativePosition2.ConnectorLength = 65.30696746902278D;
            textAnnotation2.ShapePosition = relativePosition2;
            textAnnotation2.Text = "工作点";
            textAnnotation2.TextAlignment = StringAlignment.Near;
            chartControl1.AnnotationRepository.AddRange(new DevExpress.XtraCharts.Annotation[] { textAnnotation2 });
            chartAnchorPoint1.X = 871;
            chartAnchorPoint1.Y = 783;
            textAnnotation1.AnchorPoint = chartAnchorPoint1;
            textAnnotation1.AnnotationID = 0;
            textAnnotation1.AutoHeight = true;
            textAnnotation1.AutoWidth = true;
            textAnnotation1.Name = "TextAnnoWorkPoint";
            relativePosition1.Angle = -205.38790629109593D;
            relativePosition1.ConnectorLength = 65.30696746902278D;
            textAnnotation1.ShapePosition = relativePosition1;
            textAnnotation1.Text = "工作点";
            textAnnotation1.TextAlignment = StringAlignment.Near;
            chartControl1.AnnotationRepository.AddRange(new DevExpress.XtraCharts.Annotation[] { textAnnotation1 });
            chartControl1.BorderOptions.Visibility = DevExpress.Utils.DefaultBoolean.False;
            constantLine3.AxisValueSerializable = "1";
            constantLine3.ConstantLineID = 0;
            constantLine3.LineStyle.LineJoin = System.Drawing.Drawing2D.LineJoin.Miter;
            constantLine3.LineStyle.Thickness = 2;
            constantLine3.Name = "WorkPointLine";
            constantLine3.Title.DXFont = new DevExpress.Drawing.DXFont("Tahoma", 8F);
            constantLine3.Title.Text = "工作点";
            xyDiagram2.AxisX.ConstantLines.AddRange(new DevExpress.XtraCharts.ConstantLine[] { constantLine3 });
            xyDiagram2.AxisX.Title.Text = "流量 (m³/h)";
            xyDiagram2.AxisX.Title.Visibility = DevExpress.Utils.DefaultBoolean.Default;
            xyDiagram2.AxisX.VisibleInPanesSerializable = "-1";
            xyDiagram2.AxisY.Color = Color.DodgerBlue;
            constantLine4.AxisValueSerializable = "1";
            constantLine4.ConstantLineID = 0;
            constantLine4.LineStyle.LineJoin = System.Drawing.Drawing2D.LineJoin.Miter;
            constantLine4.LineStyle.Thickness = 2;
            constantLine4.Name = "WorkHLine";
            constantLine4.Title.Text = "扬程";
            xyDiagram2.AxisY.ConstantLines.AddRange(new DevExpress.XtraCharts.ConstantLine[] { constantLine4 });
            xyDiagram2.AxisY.Label.TextColor = Color.DodgerBlue;
            xyDiagram2.AxisY.Title.Alignment = StringAlignment.Far;
            xyDiagram2.AxisY.Title.EnableAntialiasing = DevExpress.Utils.DefaultBoolean.False;
            xyDiagram2.AxisY.Title.Text = "扬程/m";
            xyDiagram2.AxisY.Title.TextColor = Color.DodgerBlue;
            xyDiagram2.AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True;
            xyDiagram2.AxisY.VisibleInPanesSerializable = "-1";
            xyDiagram2.DefaultPane.BorderVisible = false;
            xyDiagram2.DefaultPane.Title.Text = "无数据";
            xyDiagramPane2.Name = "BottomPanel";
            xyDiagramPane2.PaneID = 0;
            xyDiagramPane2.RuntimeCollapse = DevExpress.Utils.DefaultBoolean.False;
            xyDiagramPane2.Visibility = DevExpress.XtraCharts.ChartElementVisibility.Hidden;
            xyDiagram2.Panes.AddRange(new DevExpress.XtraCharts.XYDiagramPane[] { xyDiagramPane2 });
            secondaryAxisy3.AxisID = 0;
            secondaryAxisy3.Color = Color.Green;
            secondaryAxisy3.Label.Border.Visibility = DevExpress.Utils.DefaultBoolean.False;
            secondaryAxisy3.Label.TextColor = Color.Green;
            secondaryAxisy3.Name = "AxisYQE";
            secondaryAxisy3.Title.Text = "效率/%";
            secondaryAxisy3.Title.TextColor = Color.Green;
            secondaryAxisy3.Title.Visibility = DevExpress.Utils.DefaultBoolean.Default;
            secondaryAxisy3.VisibleInPanesSerializable = "-1";
            secondaryAxisy4.AxisID = 1;
            secondaryAxisy4.Label.Border.Visibility = DevExpress.Utils.DefaultBoolean.False;
            secondaryAxisy4.Label.TextColor = Color.Crimson;
            secondaryAxisy4.Name = "AxisYQP";
            secondaryAxisy4.NumericScaleOptions.AutoGrid = false;
            secondaryAxisy4.NumericScaleOptions.GridSpacing = 2D;
            secondaryAxisy4.Title.Alignment = StringAlignment.Near;
            secondaryAxisy4.Title.Text = "功率/kW";
            secondaryAxisy4.Title.TextColor = Color.Crimson;
            secondaryAxisy4.Title.Visibility = DevExpress.Utils.DefaultBoolean.Default;
            secondaryAxisy4.VisibleInPanesSerializable = "-1";
            xyDiagram2.SecondaryAxesY.AddRange(new DevExpress.XtraCharts.SecondaryAxisY[] { secondaryAxisy3, secondaryAxisy4 });
            chartControl1.Diagram = xyDiagram2;
            constantLine1.AxisValueSerializable = "1";
            constantLine1.ConstantLineID = 0;
            constantLine1.LineStyle.LineJoin = System.Drawing.Drawing2D.LineJoin.Miter;
            constantLine1.LineStyle.Thickness = 2;
            constantLine1.Name = "WorkPointLine";
            constantLine1.Title.DXFont = new DevExpress.Drawing.DXFont("Tahoma", 8F);
            constantLine1.Title.Text = "工作点";
            xyDiagram1.AxisX.ConstantLines.AddRange(new DevExpress.XtraCharts.ConstantLine[] { constantLine1 });
            xyDiagram1.AxisX.Title.Text = "流量 (m³/h)";
            xyDiagram1.AxisX.Title.Visibility = DevExpress.Utils.DefaultBoolean.Default;
            xyDiagram1.AxisX.VisibleInPanesSerializable = "-1";
            xyDiagram1.AxisY.Color = Color.DodgerBlue;
            constantLine2.AxisValueSerializable = "1";
            constantLine2.ConstantLineID = 0;
            constantLine2.LineStyle.LineJoin = System.Drawing.Drawing2D.LineJoin.Miter;
            constantLine2.LineStyle.Thickness = 2;
            constantLine2.Name = "WorkHLine";
            constantLine2.Title.Text = "扬程";
            xyDiagram1.AxisY.ConstantLines.AddRange(new DevExpress.XtraCharts.ConstantLine[] { constantLine2 });
            xyDiagram1.AxisY.Label.TextColor = Color.DodgerBlue;
            xyDiagram1.AxisY.Title.Alignment = StringAlignment.Far;
            xyDiagram1.AxisY.Title.EnableAntialiasing = DevExpress.Utils.DefaultBoolean.False;
            xyDiagram1.AxisY.Title.Text = "扬程/m";
            xyDiagram1.AxisY.Title.TextColor = Color.DodgerBlue;
            xyDiagram1.AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True;
            xyDiagram1.AxisY.VisibleInPanesSerializable = "-1";
            xyDiagram1.DefaultPane.BorderVisible = false;
            xyDiagram1.DefaultPane.Title.Text = "无数据";
            xyDiagramPane1.Name = "BottomPanel";
            xyDiagramPane1.PaneID = 0;
            xyDiagramPane1.RuntimeCollapse = DevExpress.Utils.DefaultBoolean.False;
            xyDiagramPane1.Visibility = DevExpress.XtraCharts.ChartElementVisibility.Hidden;
            xyDiagram1.Panes.AddRange(new DevExpress.XtraCharts.XYDiagramPane[] { xyDiagramPane1 });
            secondaryAxisy1.AxisID = 0;
            secondaryAxisy1.Color = Color.Green;
            secondaryAxisy1.Label.Border.Visibility = DevExpress.Utils.DefaultBoolean.False;
            secondaryAxisy1.Label.TextColor = Color.Green;
            secondaryAxisy1.Name = "AxisYQE";
            secondaryAxisy1.Title.Text = "效率/%";
            secondaryAxisy1.Title.TextColor = Color.Green;
            secondaryAxisy1.Title.Visibility = DevExpress.Utils.DefaultBoolean.Default;
            secondaryAxisy1.VisibleInPanesSerializable = "-1";
            secondaryAxisy2.AxisID = 1;
            secondaryAxisy2.Label.Border.Visibility = DevExpress.Utils.DefaultBoolean.False;
            secondaryAxisy2.Label.TextColor = Color.Crimson;
            secondaryAxisy2.Name = "AxisYQP";
            secondaryAxisy2.NumericScaleOptions.AutoGrid = false;
            secondaryAxisy2.NumericScaleOptions.GridSpacing = 2D;
            secondaryAxisy2.Title.Alignment = StringAlignment.Near;
            secondaryAxisy2.Title.Text = "功率/kW";
            secondaryAxisy2.Title.TextColor = Color.Crimson;
            secondaryAxisy2.Title.Visibility = DevExpress.Utils.DefaultBoolean.Default;
            secondaryAxisy2.VisibleInPanesSerializable = "-1";
            xyDiagram1.SecondaryAxesY.AddRange(new DevExpress.XtraCharts.SecondaryAxisY[] { secondaryAxisy1, secondaryAxisy2 });
            chartControl1.Diagram = xyDiagram1;
            chartControl1.Dock = DockStyle.Fill;
            chartControl1.Legend.AlignmentHorizontal = DevExpress.XtraCharts.LegendAlignmentHorizontal.Right;
            chartControl1.Legend.Border.Visibility = DevExpress.Utils.DefaultBoolean.False;
@@ -191,55 +191,55 @@
            chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True;
            chartControl1.Location = new Point(0, 34);
            chartControl1.Name = "chartControl1";
            series8.Name = "SeriesCurveQH";
            series8.SeriesID = 0;
            splineSeriesView8.Color = Color.DodgerBlue;
            series8.View = splineSeriesView8;
            series9.Name = "SeriesCurveQE";
            series9.SeriesID = 1;
            splineSeriesView9.AxisYName = "AxisYQE";
            splineSeriesView9.Color = Color.Green;
            series9.View = splineSeriesView9;
            series10.Name = "SeriesCurveQP";
            series10.SeriesID = 2;
            splineSeriesView10.AxisYName = "AxisYQP";
            splineSeriesView10.Color = Color.Crimson;
            series10.View = splineSeriesView10;
            series11.Name = "SeriesEquipCurve";
            series11.SeriesID = 6;
            series11.ShowInLegend = false;
            splineSeriesView11.Color = Color.FromArgb(0, 0, 0);
            splineSeriesView11.LineStyle.Thickness = 1;
            series11.View = splineSeriesView11;
            series12.Name = "SeriesCurveQHwk";
            series12.SeriesID = 7;
            series12.ShowInLegend = false;
            splineSeriesView12.Color = Color.Black;
            splineSeriesView12.LineStyle.DashStyle = DevExpress.XtraCharts.DashStyle.Dash;
            series12.View = splineSeriesView12;
            series13.Name = "SeriesCurveQEwk";
            series13.SeriesID = 8;
            series13.ShowInLegend = false;
            splineSeriesView13.AxisYName = "AxisYQE";
            splineSeriesView13.Color = Color.Black;
            splineSeriesView13.LineStyle.DashStyle = DevExpress.XtraCharts.DashStyle.Dash;
            splineSeriesView13.LineStyle.LineJoin = System.Drawing.Drawing2D.LineJoin.Miter;
            series13.View = splineSeriesView13;
            series14.Name = "SeriesCurveQPwk";
            series14.SeriesID = 9;
            series14.ShowInLegend = false;
            splineSeriesView14.AxisYName = "AxisYQP";
            splineSeriesView14.Color = Color.Black;
            series14.View = splineSeriesView14;
            series1.Name = "SeriesCurveQH";
            series1.SeriesID = 0;
            splineSeriesView1.Color = Color.DodgerBlue;
            series1.View = splineSeriesView1;
            series2.Name = "SeriesCurveQE";
            series2.SeriesID = 1;
            splineSeriesView2.AxisYName = "AxisYQE";
            splineSeriesView2.Color = Color.Green;
            series2.View = splineSeriesView2;
            series3.Name = "SeriesCurveQP";
            series3.SeriesID = 2;
            splineSeriesView3.AxisYName = "AxisYQP";
            splineSeriesView3.Color = Color.Crimson;
            series3.View = splineSeriesView3;
            series4.Name = "SeriesEquipCurve";
            series4.SeriesID = 6;
            series4.ShowInLegend = false;
            splineSeriesView4.Color = Color.FromArgb(0, 0, 0);
            splineSeriesView4.LineStyle.Thickness = 1;
            series4.View = splineSeriesView4;
            series5.Name = "SeriesCurveQHwk";
            series5.SeriesID = 7;
            series5.ShowInLegend = false;
            splineSeriesView5.Color = Color.Black;
            splineSeriesView5.LineStyle.DashStyle = DevExpress.XtraCharts.DashStyle.Dash;
            series5.View = splineSeriesView5;
            series6.Name = "SeriesCurveQEwk";
            series6.SeriesID = 8;
            series6.ShowInLegend = false;
            splineSeriesView6.AxisYName = "AxisYQE";
            splineSeriesView6.Color = Color.Black;
            splineSeriesView6.LineStyle.DashStyle = DevExpress.XtraCharts.DashStyle.Dash;
            splineSeriesView6.LineStyle.LineJoin = System.Drawing.Drawing2D.LineJoin.Miter;
            series6.View = splineSeriesView6;
            series7.Name = "SeriesCurveQPwk";
            series7.SeriesID = 9;
            series7.ShowInLegend = false;
            splineSeriesView7.AxisYName = "AxisYQP";
            splineSeriesView7.Color = Color.Black;
            series7.View = splineSeriesView7;
            chartControl1.SeriesSerializable = new DevExpress.XtraCharts.Series[]
    {
    series8,
    series9,
    series10,
    series11,
    series12,
    series13,
    series14
    series1,
    series2,
    series3,
    series4,
    series5,
    series6,
    series7
    };
            chartControl1.Size = new Size(1023, 822);
            chartControl1.TabIndex = 0;
@@ -500,27 +500,27 @@
            Controls.Add(barDockControlTop);
            Name = "PumpPerformCompareChart";
            Size = new Size(1023, 856);
            ((System.ComponentModel.ISupportInitialize)textAnnotation2).EndInit();
            ((System.ComponentModel.ISupportInitialize)constantLine3).EndInit();
            ((System.ComponentModel.ISupportInitialize)constantLine4).EndInit();
            ((System.ComponentModel.ISupportInitialize)xyDiagramPane2).EndInit();
            ((System.ComponentModel.ISupportInitialize)secondaryAxisy3).EndInit();
            ((System.ComponentModel.ISupportInitialize)secondaryAxisy4).EndInit();
            ((System.ComponentModel.ISupportInitialize)xyDiagram2).EndInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView8).EndInit();
            ((System.ComponentModel.ISupportInitialize)series8).EndInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView9).EndInit();
            ((System.ComponentModel.ISupportInitialize)series9).EndInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView10).EndInit();
            ((System.ComponentModel.ISupportInitialize)series10).EndInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView11).EndInit();
            ((System.ComponentModel.ISupportInitialize)series11).EndInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView12).EndInit();
            ((System.ComponentModel.ISupportInitialize)series12).EndInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView13).EndInit();
            ((System.ComponentModel.ISupportInitialize)series13).EndInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView14).EndInit();
            ((System.ComponentModel.ISupportInitialize)series14).EndInit();
            ((System.ComponentModel.ISupportInitialize)textAnnotation1).EndInit();
            ((System.ComponentModel.ISupportInitialize)constantLine1).EndInit();
            ((System.ComponentModel.ISupportInitialize)constantLine2).EndInit();
            ((System.ComponentModel.ISupportInitialize)xyDiagramPane1).EndInit();
            ((System.ComponentModel.ISupportInitialize)secondaryAxisy1).EndInit();
            ((System.ComponentModel.ISupportInitialize)secondaryAxisy2).EndInit();
            ((System.ComponentModel.ISupportInitialize)xyDiagram1).EndInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView1).EndInit();
            ((System.ComponentModel.ISupportInitialize)series1).EndInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView2).EndInit();
            ((System.ComponentModel.ISupportInitialize)series2).EndInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView3).EndInit();
            ((System.ComponentModel.ISupportInitialize)series3).EndInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView4).EndInit();
            ((System.ComponentModel.ISupportInitialize)series4).EndInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView5).EndInit();
            ((System.ComponentModel.ISupportInitialize)series5).EndInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView6).EndInit();
            ((System.ComponentModel.ISupportInitialize)series6).EndInit();
            ((System.ComponentModel.ISupportInitialize)splineSeriesView7).EndInit();
            ((System.ComponentModel.ISupportInitialize)series7).EndInit();
            ((System.ComponentModel.ISupportInitialize)chartControl1).EndInit();
            ((System.ComponentModel.ISupportInitialize)popMenuChart).EndInit();
            ((System.ComponentModel.ISupportInitialize)barManager1).EndInit();
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/02-perform-compare/PumpPerformCompareChart.cs
@@ -79,7 +79,11 @@
            set
            {
                _lineVisible = value;
                this.barCekLineVisible.Checked = _lineVisible;
                this.barCekLineVisible.Checked = _lineVisible;
                this.barBtnSetAxisHValue.Enabled = _lineVisible;
                this.barBtnSetAxisQValue.Enabled = _lineVisible;
                this.barBtnPositioningMaxE.Enabled = _lineVisible;
                this.barBtnPositioningMaxQ.Enabled = _lineVisible;
            }
        }
        private bool _lineVisible = false;
@@ -818,7 +822,8 @@
            if (workQ == null)
            {
                workQ = (minQ + maxQ) / 2;
                workQ = minQ;
                //workQ = (minQ + maxQ) / 2;
            }
            else
            {
@@ -922,10 +927,10 @@
                return;
            if (_qe == null)
                return;
            var workQ = _qe.MaxX;
            CalcWorkPointByQ(workQ);
            var pt_list = _qe.GetPointList();
            pt_list = pt_list.OrderBy(x => x.Y).ToList();
            var workQ = pt_list.Last().X;
            CalcWorkPointByQ(workQ);
        }
        /// <summary>
@@ -1211,7 +1216,22 @@
                    return;
                double chartH = axisValue.NumericalValue;
                CalcWorkPointByH(chartH);
            }
            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;
                }
            }
        }
@@ -1257,6 +1277,7 @@
                return;
            var dlg = new PumpAxisValueDlg();
            dlg.SetBindingData();
            dlg.Text = "扬程";
            dlg.VerifyValueChanged += (value) =>
            {
                var min = _qh_pt_list.Min(x => x.Y);
@@ -1358,7 +1379,7 @@
        {
            if (!_initial_data)
                return;
            _lineVisible = visible;
            LineVisible = visible;
            CalcWorkPointByQ();
        }
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/02-perform-compare/PumpPerformCompareChart.resx
@@ -435,96 +435,6 @@
  <metadata name="barManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
  <data name="barBtnPositioningMaxQ.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAJEDAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iVG9wXzEwX0l0ZW1zIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3
        IDAgMCAzMiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkuQmxhY2t7ZmlsbDojNzI3Mjcy
        O30KCS5HcmVlbntmaWxsOiMwMzlDMjM7fQo8L3N0eWxlPg0KICA8cGF0aCBkPSJNMzEsMkgxQzAuNSwy
        LDAsMi41LDAsM3YyNmMwLDAuNSwwLjUsMSwxLDFoMzBjMC41LDAsMS0wLjUsMS0xVjNDMzIsMi41LDMx
        LjUsMiwzMSwyeiBNOCwxNHYxMEg2VjE0SDNsNC02ICBsNCw2SDh6IE0zMCwyOEgxNFY0aDE2VjI4eiIg
        Y2xhc3M9IkdyZWVuIiAvPg0KICA8cGF0aCBkPSJNMjQuNiwyMGMtMiwwLTMtMS4zLTMtMy45YzAtMS4z
        LDAuMy0yLjQsMC44LTMuMWMwLjUtMC43LDEuMy0xLjEsMi4zLTEuMWMxLjksMCwyLjksMS4zLDIuOSwz
        LjkgIGMwLDEuMy0wLjMsMi4zLTAuOCwzQzI2LjMsMTkuNywyNS42LDIwLDI0LjYsMjB6IE0yNC43LDEz
        LjNjLTAuOCwwLTEuMiwwLjktMS4yLDIuOGMwLDEuNywwLjQsMi42LDEuMiwyLjZjMC44LDAsMS4xLTAu
        OSwxLjEtMi43ICBDMjUuOCwxNC4yLDI1LjQsMTMuMywyNC43LDEzLjN6IE0xOCwyMHYtNS4yaC0ydi0x
        LjJjMC4zLDAsMC42LDAsMC44LTAuMWMwLjMsMCwwLjUtMC4xLDAuNy0wLjNjMC4yLTAuMSwwLjQtMC4z
        LDAuNS0wLjUgIGMwLjEtMC4yLDAuMi0wLjUsMC4zLTAuOGgxLjN2OEgxOHoiIGNsYXNzPSJCbGFjayIg
        Lz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="barBtnPositioningMaxE.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAJgEAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iVG9wXzEwX1BlcmNlbnQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpu
        ZXcgMCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbGFja3tmaWxsOiM3Mjcy
        NzI7fQoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cjwvc3R5bGU+DQogIDxwYXRoIGQ9Ik0zMSwySDFDMC41
        LDIsMCwyLjUsMCwzdjI0YzAsMC41LDAuNSwxLDEsMWgzMGMwLjUsMCwxLTAuNSwxLTFWM0MzMiwyLjUs
        MzEuNSwyLDMxLDJ6IE04LDEydjEwSDZWMTJIM2w0LTYgIGw0LDZIOHogTTMwLDI2SDE0VjRoMTZWMjZ6
        IiBjbGFzcz0iR3JlZW4iIC8+DQogIDxwYXRoIGQ9Ik0xOC42LDE1LjFjLTAuOCwwLTEuNC0wLjItMS45
        LTAuN2MtMC41LTAuNC0wLjctMS0wLjctMS44YzAtMC44LDAuMi0xLjUsMC43LTEuOXMxLjItMC43LDIt
        MC43ICBjMC44LDAsMS40LDAuMiwxLjksMC42YzAuNCwwLjQsMC43LDEsMC43LDEuOGMwLDAuOC0wLjIs
        MS40LTAuNywxLjlDMjAsMTQuOCwxOS40LDE1LjEsMTguNiwxNS4xeiBNMjYsMTBsLTYuMiwxMEgxOGw2
        LjItMTBIMjZ6ICAgTTE4LjcsMTEuMmMtMC43LDAtMS4xLDAuNS0xLjEsMS40YzAsMC45LDAuMywxLjMs
        MSwxLjNjMC43LDAsMS4xLTAuNSwxLjEtMS40QzE5LjcsMTEuNiwxOS40LDExLjIsMTguNywxMS4yeiBN
        MjUuMywyMCAgYy0wLjgsMC0xLjQtMC4yLTEuOS0wLjdzLTAuNy0xLTAuNy0xLjhjMC0wLjgsMC4yLTEu
        NSwwLjctMS45YzAuNS0wLjUsMS4yLTAuNywyLTAuN2MwLjgsMCwxLjQsMC4yLDEuOSwwLjZzMC43LDEs
        MC43LDEuOCAgYzAsMC44LTAuMiwxLjQtMC43LDEuOUMyNi44LDE5LjgsMjYuMSwyMCwyNS4zLDIweiBN
        MjUuNCwxNi4xYy0wLjcsMC0xLjEsMC41LTEuMSwxLjRjMCwwLjksMC40LDEuMywxLjEsMS4zYzAuNyww
        LDEuMS0wLjUsMS4xLTEuNCAgYzAtMC40LTAuMS0wLjctMC4zLTFDMjYsMTYuMiwyNS43LDE2LjEsMjUu
        NCwxNi4xeiIgY2xhc3M9IkJsYWNrIiAvPg0KPC9zdmc+Cw==
</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="barBtnSetAxisHValue.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAOICAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iVmVydGljYWxfQXhpc19Cb3R0b21fdG9fVXAiIHN0eWxlPSJlbmFibGUt
        YmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbHVl
        e2ZpbGw6IzExNzdENzt9CgkuQmxhY2t7ZmlsbDojNzI3MjcyO30KCS5zdDB7b3BhY2l0eTowLjU7fQo8
        L3N0eWxlPg0KICA8cG9seWdvbiBwb2ludHM9IjEyLDIgMTIsNCAxMCw0IDEwLDYgMTIsNiAxMiw4IDEw
        LDggMTAsMTAgMTIsMTAgMTIsMTIgMTAsMTIgMTAsMTQgMTIsMTQgMTIsMTYgMTAsMTYgMTAsMTggMTIs
        MTggICAxMiwyMCAxMCwyMCAxMCwyMiAxMiwyMiAxMiwyNCAxMCwyNCAxMCwyNiAxMiwyNiAxMiwyOCAx
        NCwyOCAxNCwyICIgY2xhc3M9IkJsYWNrIiAvPg0KICA8ZyBjbGFzcz0ic3QwIj4NCiAgICA8cmVjdCB4
        PSIxNCIgeT0iMjYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIyIiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4N
        CiAgPHBvbHlnb24gcG9pbnRzPSI4LDYgNSwyIDIsNiA0LDYgNCwyOCA2LDI4IDYsNiAiIGNsYXNzPSJC
        bHVlIiAvPg0KPC9zdmc+Cw==
</value>
  </data>
  <data name="barSubMenuVisible.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
@@ -583,6 +493,96 @@
        Cjwvc3ZnPgs=
</value>
  </data>
  <data name="barBtnSetAxisHValue.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAOICAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iVmVydGljYWxfQXhpc19Cb3R0b21fdG9fVXAiIHN0eWxlPSJlbmFibGUt
        YmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbHVl
        e2ZpbGw6IzExNzdENzt9CgkuQmxhY2t7ZmlsbDojNzI3MjcyO30KCS5zdDB7b3BhY2l0eTowLjU7fQo8
        L3N0eWxlPg0KICA8cG9seWdvbiBwb2ludHM9IjEyLDIgMTIsNCAxMCw0IDEwLDYgMTIsNiAxMiw4IDEw
        LDggMTAsMTAgMTIsMTAgMTIsMTIgMTAsMTIgMTAsMTQgMTIsMTQgMTIsMTYgMTAsMTYgMTAsMTggMTIs
        MTggICAxMiwyMCAxMCwyMCAxMCwyMiAxMiwyMiAxMiwyNCAxMCwyNCAxMCwyNiAxMiwyNiAxMiwyOCAx
        NCwyOCAxNCwyICIgY2xhc3M9IkJsYWNrIiAvPg0KICA8ZyBjbGFzcz0ic3QwIj4NCiAgICA8cmVjdCB4
        PSIxNCIgeT0iMjYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIyIiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4N
        CiAgPHBvbHlnb24gcG9pbnRzPSI4LDYgNSwyIDIsNiA0LDYgNCwyOCA2LDI4IDYsNiAiIGNsYXNzPSJC
        bHVlIiAvPg0KPC9zdmc+Cw==
</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="barBtnPositioningMaxQ.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAJEDAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iVG9wXzEwX0l0ZW1zIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3
        IDAgMCAzMiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkuQmxhY2t7ZmlsbDojNzI3Mjcy
        O30KCS5HcmVlbntmaWxsOiMwMzlDMjM7fQo8L3N0eWxlPg0KICA8cGF0aCBkPSJNMzEsMkgxQzAuNSwy
        LDAsMi41LDAsM3YyNmMwLDAuNSwwLjUsMSwxLDFoMzBjMC41LDAsMS0wLjUsMS0xVjNDMzIsMi41LDMx
        LjUsMiwzMSwyeiBNOCwxNHYxMEg2VjE0SDNsNC02ICBsNCw2SDh6IE0zMCwyOEgxNFY0aDE2VjI4eiIg
        Y2xhc3M9IkdyZWVuIiAvPg0KICA8cGF0aCBkPSJNMjQuNiwyMGMtMiwwLTMtMS4zLTMtMy45YzAtMS4z
        LDAuMy0yLjQsMC44LTMuMWMwLjUtMC43LDEuMy0xLjEsMi4zLTEuMWMxLjksMCwyLjksMS4zLDIuOSwz
        LjkgIGMwLDEuMy0wLjMsMi4zLTAuOCwzQzI2LjMsMTkuNywyNS42LDIwLDI0LjYsMjB6IE0yNC43LDEz
        LjNjLTAuOCwwLTEuMiwwLjktMS4yLDIuOGMwLDEuNywwLjQsMi42LDEuMiwyLjZjMC44LDAsMS4xLTAu
        OSwxLjEtMi43ICBDMjUuOCwxNC4yLDI1LjQsMTMuMywyNC43LDEzLjN6IE0xOCwyMHYtNS4yaC0ydi0x
        LjJjMC4zLDAsMC42LDAsMC44LTAuMWMwLjMsMCwwLjUtMC4xLDAuNy0wLjNjMC4yLTAuMSwwLjQtMC4z
        LDAuNS0wLjUgIGMwLjEtMC4yLDAuMi0wLjUsMC4zLTAuOGgxLjN2OEgxOHoiIGNsYXNzPSJCbGFjayIg
        Lz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="barBtnPositioningMaxE.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAJgEAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iVG9wXzEwX1BlcmNlbnQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpu
        ZXcgMCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbGFja3tmaWxsOiM3Mjcy
        NzI7fQoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cjwvc3R5bGU+DQogIDxwYXRoIGQ9Ik0zMSwySDFDMC41
        LDIsMCwyLjUsMCwzdjI0YzAsMC41LDAuNSwxLDEsMWgzMGMwLjUsMCwxLTAuNSwxLTFWM0MzMiwyLjUs
        MzEuNSwyLDMxLDJ6IE04LDEydjEwSDZWMTJIM2w0LTYgIGw0LDZIOHogTTMwLDI2SDE0VjRoMTZWMjZ6
        IiBjbGFzcz0iR3JlZW4iIC8+DQogIDxwYXRoIGQ9Ik0xOC42LDE1LjFjLTAuOCwwLTEuNC0wLjItMS45
        LTAuN2MtMC41LTAuNC0wLjctMS0wLjctMS44YzAtMC44LDAuMi0xLjUsMC43LTEuOXMxLjItMC43LDIt
        MC43ICBjMC44LDAsMS40LDAuMiwxLjksMC42YzAuNCwwLjQsMC43LDEsMC43LDEuOGMwLDAuOC0wLjIs
        MS40LTAuNywxLjlDMjAsMTQuOCwxOS40LDE1LjEsMTguNiwxNS4xeiBNMjYsMTBsLTYuMiwxMEgxOGw2
        LjItMTBIMjZ6ICAgTTE4LjcsMTEuMmMtMC43LDAtMS4xLDAuNS0xLjEsMS40YzAsMC45LDAuMywxLjMs
        MSwxLjNjMC43LDAsMS4xLTAuNSwxLjEtMS40QzE5LjcsMTEuNiwxOS40LDExLjIsMTguNywxMS4yeiBN
        MjUuMywyMCAgYy0wLjgsMC0xLjQtMC4yLTEuOS0wLjdzLTAuNy0xLTAuNy0xLjhjMC0wLjgsMC4yLTEu
        NSwwLjctMS45YzAuNS0wLjUsMS4yLTAuNywyLTAuN2MwLjgsMCwxLjQsMC4yLDEuOSwwLjZzMC43LDEs
        MC43LDEuOCAgYzAsMC44LTAuMiwxLjQtMC43LDEuOUMyNi44LDE5LjgsMjYuMSwyMCwyNS4zLDIweiBN
        MjUuNCwxNi4xYy0wLjcsMC0xLjEsMC41LTEuMSwxLjRjMCwwLjksMC40LDEuMywxLjEsMS4zYzAuNyww
        LDEuMS0wLjUsMS4xLTEuNCAgYzAtMC40LTAuMS0wLjctMC4zLTFDMjYsMTYuMiwyNS43LDE2LjEsMjUu
        NCwxNi4xeiIgY2xhc3M9IkJsYWNrIiAvPg0KPC9zdmc+Cw==
</value>
  </data>
  <data name="barBtnExport.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/03-serial-parallel/PumpSerialParallelChart.cs
@@ -59,6 +59,7 @@
            {
                _line_visible = value;
                this.barCekLineVisible.Checked = _line_visible;
                this.barBtnSetAxisQValue.Enabled = _line_visible;
            }
        }
        private bool _line_visible = false;
@@ -95,9 +96,9 @@
        private void InitialChart()
        {
            this.chartControl1.SetChartDisplay();
            this.chartControl1.Legend.Direction = DevExpress.XtraCharts.LegendDirection.TopToBottom;
            this.chartControl1.Legend.Direction = DevExpress.XtraCharts.LegendDirection.TopToBottom;
            _main_chart_diagram = (XYDiagram)this.chartControl1.Diagram;
            _main_chart_diagram = (XYDiagram)this.chartControl1.Diagram;
            _pane_qh = _main_chart_diagram.DefaultPane;
            _pane_qe = (XYDiagramPane)_main_chart_diagram.FindPaneByName("PaneQE");
            _pane_qp = (XYDiagramPane)_main_chart_diagram.FindPaneByName("PaneQP");
@@ -135,6 +136,51 @@
            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;
        }
        private void ChartControl1_CustomPaint(object sender, CustomPaintEventArgs e)
        {
            if (e is not DXCustomPaintEventArgs dxArgs)
                return;
            if (_vm_list == null || !_vm_list.Any())
                return;
            try
            {
                foreach (var vm in _vm_list)
                {
                    if (!vm.ExtendFlow.HasValue)
                        continue;
                    var x = vm.ExtendFlow.Value;
                    using (Pen pen = new Pen(vm.Color, 2))
                    {
                        // 中心点
                        var y = vm.QhCalc.GetPointY(x);
                        var c_pt_qh = _main_chart_diagram.DiagramToPoint(x, y, _axis_x_q, _axis_y_qh);
                        dxArgs.Cache.DrawLine(pen, new Point((int)c_pt_qh.Point.X, (int)c_pt_qh.Point.Y - 15), new Point((int)c_pt_qh.Point.X, (int)c_pt_qh.Point.Y + 15));
                        var y_qe = vm.QeCalc.GetPointY(x);
                        var c_pt_qe = _main_chart_diagram.DiagramToPoint(x, y_qe, _axis_x_q, _axis_y_qe);
                        dxArgs.Cache.DrawLine(pen, new Point((int)c_pt_qe.Point.X, (int)c_pt_qe.Point.Y - 15), new Point((int)c_pt_qe.Point.X, (int)c_pt_qe.Point.Y + 15));
                        var y_qp = vm.QpCalc.GetPointY(x);
                        var c_pt_qp = _main_chart_diagram.DiagramToPoint(x, y_qp, _axis_x_q, _axis_y_qp);
                        dxArgs.Cache.DrawLine(pen, new Point((int)c_pt_qp.Point.X, (int)c_pt_qp.Point.Y - 15), new Point((int)c_pt_qp.Point.X, (int)c_pt_qp.Point.Y + 15));
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        /// <summary>
@@ -626,7 +672,9 @@
            if (workQ == null)
            {
                workQ = (_minQ + _maxQ) / 2;
                workQ = _minQ;
                //workQ = (minQ + maxQ) / 2;
                //workQ = (_minQ + _maxQ) / 2;
            }
            if (workQ < _minQ || workQ > _maxQ)
@@ -711,7 +759,8 @@
            series_qh.CrosshairEnabled = DefaultBoolean.False;
            series_qh.Tag = curve.Id.ToString();
            series_qh.ShowInLegend = true;
            series_qh.LegendTextPattern = curve.Name;
            series_qh.LegendTextPattern = curve.Name;
            var series_qh_view = new DevExpress.XtraCharts.SplineSeriesView();
            series_qh_view.LineStyle.Thickness = 2;
@@ -997,8 +1046,23 @@
                if (axisValue == null)
                    return;
                double chartQ = axisValue.NumericalValue;
                CalcWorkPointByQ(chartQ);
                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;
                }
            }
        }
@@ -1094,7 +1158,7 @@
        {
            if (!_initialData)
                return;
            _line_visible = visible;
            LineVisible = visible;
            CalcWorkPointByQ();
        }
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/03-serial-parallel/PumpSerialParallelInfoViewModel.cs
@@ -19,7 +19,7 @@
            this.QueryP = rhs.QueryP;
            this.QueryE = rhs.QueryE;
            this.ExtendRatio = rhs.ExtendRatio;
            this.IsDefault = rhs.IsDefault;
            this.IsDefault = rhs.IsDefault;
            this.RunStatus = rhs.RunStatus;
            this.CalcuQ = rhs.CalcuQ;
            this.CalcuH = rhs.CalcuH;
@@ -38,8 +38,9 @@
        public bool IsDefault { get; set; }  
        public bool RunStatus { get; set; }
         
        public double? CalcuQ { get; set; }
        public double? CalcuH { get; set; }
        public double? CalcuQ { get; set; }
        public double? CalcuH { get; set; }
        public  double? ExtendFlow { get; set; }
        public void Calc()
        {
            this.CurrentSpeed = Math.Round(this.CurrentHz / 50 * this.RatedSpeed);
@@ -57,6 +58,11 @@
            if (this.QpCalc != null)
                this.QpCalc.MaxX = this.QpCalc.MaxX * this.ExtendRatio / 100;
            if (this.ExtendRatio>100)
            {
                this.ExtendFlow = this.Qh.MaxX;
            }
        }
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/04-variable-speed/PumpVariableSpeedChart.cs
@@ -63,6 +63,7 @@
            {
                _line_visible = value;
                this.barCekLineVisible.Checked = _line_visible;
                this.barBtnSetAxisQValue.Enabled = _line_visible;
            }
        }
        private bool _line_visible = false;
@@ -705,7 +706,8 @@
            if (workQ == null)
            {
                workQ = (_minQ + _maxQ) / 2;
                workQ = _minQ;
                //workQ = (_minQ + _maxQ) / 2;
            }
            if (workQ < _minQ || workQ > _maxQ)
@@ -1097,6 +1099,22 @@
                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)
@@ -1191,7 +1209,7 @@
        {
            if (!_initialData)
                return;
            _line_visible = visible;
            LineVisible = visible;
            CalcWorkPointByQ();
        }
         
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/04-coordinate/PumpAxisValueDlg.cs
@@ -8,6 +8,7 @@
        public PumpAxisValueDlg()
        {
            InitializeComponent();
            this.Text = "流量";
        }
        public event Func<double, bool> VerifyValueChanged;
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/02-valve-chart/01-chart/ValvePerform2dChart.cs
@@ -67,7 +67,9 @@
            set
            {
                _lineVisible = value;
                this.barCekLineVisible.Checked = _lineVisible;
                this.barCekLineVisible.Checked = _lineVisible;
                this.barBtnSetAxisQValue.Enabled = _lineVisible;
                this.barBtnPositioningMaxQ.Enabled = _lineVisible;
            }
        }
        private bool _lineVisible = false;
@@ -403,7 +405,8 @@
            if (workQ == null)
            {
                workQ = (minQ + maxQ) / 2;
                //workQ = (minQ + maxQ) / 2;
                workQ = minQ;
            }
            else
            {
@@ -446,9 +449,8 @@
            var minH = _pt_ql_list.Min(x => x.Y);
            var maxH = _pt_ql_list.Max(x => x.Y);
            if (workH < minH || workH > maxH)
                return;
            var workQ = _cubic_spline_ql.GetPointY(workH);
                return;
            var workQ = _cubic_spline_ql.GetPointsX(workH)?.LastOrDefault();
            CalcWorkPointByQ(workQ);
        } 
     
@@ -644,8 +646,23 @@
                if (axisValue == null)
                    return;
                double chartH = axisValue.NumericalValue;
                CalcWorkPointByH(chartH);
                CalcWorkPointByH(chartH);
            }
            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;
                }
            }
        }
@@ -691,6 +708,7 @@
                return;
            var dlg = new PumpAxisValueDlg();
            dlg.SetBindingData();
            dlg.Text = "水损";
            dlg.VerifyValueChanged += (value) =>
            {
                var min = _pt_ql_list.Min(x => x.Y);
@@ -777,7 +795,7 @@
        {
            if (!_initial_data)
                return;
            _lineVisible = visible;
            LineVisible = visible;
            CalcWorkPointByQ();
        }