Shuxia Ning
2024-12-02 0fd4a678c2218c42d383e964a6b4aca975aa7b7a
WinFrmUI/Yw.WinFrmUI.Phart.Core/v2/02-pump/01-chart/PumpParallelChart - ¸´ÖÆ.cs
ÎļþÃû´Ó WinFrmUI/Yw.WinFrmUI.Phart.Core/v2/02-pump/01-view/PumpParallelChart.cs ÐÞ¸Ä
@@ -78,9 +78,25 @@
        #region Public Evnet
        public event Action<PumpCoordinate> OnCurveCoordinateChanged;
        /// <summary>
        /// åæ ‡å˜æ¢äº‹ä»¶
        /// </summary>
        public event Action<PumpCoordinate> CoordinateChangedEvent = null;
        /// <summary>
        /// å¹¶è”状态变换事件
        /// </summary>
        public event Action<PumpCoordinate> ParallelStatusChangedEvent = null;
        public event Action<string, PumpGroupPt> OnCalcQueryPoint = null;
        /// <summary>
        /// æŸ¥è¯¢ç‚¹å˜æ¢äº‹ä»¶
        /// </summary>
        public event Action<List<PumpQueryPointViewModel>> QueryPointChangedEvent = null;
        /// <summary>
        /// è®¾è®¡ç‚¹å˜æ¢äº‹ä»¶
        /// </summary>
        public event Action<List<PumpQueryPointViewModel>> DesignPointChangedEvent = null;
        #endregion
@@ -287,6 +303,21 @@
        #region Add Set   
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        /// <param name="list"></param>
        public void SetBindingData(List<PumpParallelViewModel> list)
        {
        }
        public void SetDesignPoint(double flow,double head)
        {
        }
        /// <summary>
        /// æ·»åŠ æ›²çº¿
        /// </summary>  
        public void Add(List<PumpSerialParallelInfoViewModel> vm_list, Yw.Geometry.Point2d equip_pt)
@@ -365,7 +396,7 @@
        /// <summary>
        /// è®¾ç½®æ›²çº¿
        /// </summary> 
        public void SetInfo(string id, string name, Color color)
        public void Set(string id, string name, Color color)
        {
            var exist = _vm_list.FirstOrDefault(x => x.Id == id);
            if (exist == null)
@@ -717,14 +748,14 @@
            if (exist_default)
            {
                var def_vm = _vm_list.Find(x => x.IsDefault);
                var min_flow = def_vm.Qh.MinX;
                var max_flow = def_vm.Qh.MaxX;
                var min_flow = def_vm.CurveQH.MinX;
                var max_flow = def_vm.CurveQH.MaxX;
                work_flow ??= _equip_pt?.X ?? max_flow / 3 * 2;
                if (work_flow < min_flow || work_flow > max_flow)
                    return;
                var work_pt = new PumpGroupPt(0, 0, 0, 0, 0);
                var work_pt = new PumpQueryPointViewModel();
                work_pt.Q = work_flow.Value;
                work_pt.H = def_vm.QhCalc.GetPointY(work_flow.Value);
@@ -736,18 +767,18 @@
                    if (def_vm.QpCalc != null)
                    {
                        work_pt.P = def_vm.QpCalc.GetPointY(work_pt.Q);
                        work_pt.E = PumpCalcHelper.CalculateE(work_pt.Q, work_pt.H, work_pt.P);
                        work_pt.E = PumpCalcHelper.CalculateE(work_pt.Q, work_pt.H, work_pt.P.Value);
                    }
                    else
                    {
                        work_pt.E = def_vm.QeCalc.GetPointY(work_pt.Q);
                    }
                    work_info_str_builder.AppendLine($"效率:{work_pt.E.ToString("N2")} ");
                    work_info_str_builder.AppendLine($"效率:{work_pt.E.Value.ToString("N2")} ");
                }
                if (def_vm.QpCalc != null)
                {
                    work_pt.P = def_vm.QpCalc.GetPointY(work_pt.Q);
                    work_info_str_builder.Append($"功率:{work_pt.P.ToString("N1")} ");
                    work_info_str_builder.Append($"功率:{work_pt.P.Value.ToString("N1")} ");
                }
                _anno_txt_query_info.Text = work_info_str_builder.ToString();
@@ -757,7 +788,7 @@
                {
                    if (vm.IsDefault)
                        continue;
                    var pump_work_pt = new PumpGroupPt(0, 0, 0, 0, 0);
                    var pump_work_pt = new PumpQueryPointViewModel();
                    pump_work_pt.Q = vm.QhCalc.GetPointsX(work_pt.H).LastOrDefault();
                    pump_work_pt.H = work_pt.H;
                    if (vm.QeCalc != null)
@@ -765,7 +796,7 @@
                        if (vm.QpCalc != null)
                        {
                            pump_work_pt.P = vm.QpCalc.GetPointY(pump_work_pt.Q);
                            pump_work_pt.E = PumpCalcHelper.CalculateE(pump_work_pt.Q, pump_work_pt.H, pump_work_pt.P);
                            pump_work_pt.E = PumpCalcHelper.CalculateE(pump_work_pt.Q, pump_work_pt.H, pump_work_pt.P.Value);
                        }
                        else
                        {
@@ -776,9 +807,9 @@
                    {
                        pump_work_pt.P = vm.QpCalc.GetPointY(pump_work_pt.Q);
                    }
                    if (this.OnCalcQueryPoint != null)
                    if (this.QueryPointChangedEvent != null)
                    {
                        this.OnCalcQueryPoint(vm.Id, pump_work_pt);
                        this.QueryPointChangedEvent(vm.Id, pump_work_pt);
                    }
                }
            }
@@ -791,6 +822,7 @@
            _query_flow_line.AxisValue = work_flow;
            _query_flow_line.Title.Text = work_flow.Value.ToString("N1");
        }
        /// <summary>
@@ -1173,7 +1205,7 @@
            {
                _coordinate = rhs;
                CalcChartAxis();
                this.OnCurveCoordinateChanged?.Invoke(_coordinate);
                this.CoordinateChangedEvent?.Invoke(_coordinate);
            };
            dlg.ShowDialog();
        }