lixiaojun
2024-12-02 dbcef6befb123066754141adef6dc3ef6653b6ce
WinFrmUI/Yw.WinFrmUI.Phart.Core/v2/02-pump/01-chart/PumpVariableSpeedChart.cs
ÎļþÃû´Ó WinFrmUI/Yw.WinFrmUI.Phart.Core/v2/02-pump/01-view/PumpVariableSpeedChart.cs ÐÞ¸Ä
@@ -80,7 +80,7 @@
        public event Action<PumpCoordinate> OnCurveCoordinateChanged;
        public event Action<string, PumpGroupPt> OnCalcQueryPoint = null;
        public event Action<string, PumpQueryPointViewModel> OnCalcQueryPoint = null;
        public event Action AddBySpeedEvent = null;
@@ -162,7 +162,7 @@
                var equip_paras = EquipCurveHelper.CalcEquipCurve(vm.QhCalc, _equip_pt, dis_min_h, out Yw.Geometry.Point2d sect_pt); 
                if (equip_paras == null || sect_pt == null)
                    continue;
                if (equip_paras.EquipCurve.IsInvalid())
                if (equip_paras.IsInvalid())
                    continue;
                var c_pt_qh = _diagram.DiagramToPoint(sect_pt.X, sect_pt.Y, _axis_x_flow, _axis_y_head);
                dxArgs.Cache.DrawLine(pen, new Point((int)c_pt_qh.Point.X, (int)c_pt_qh.Point.Y - 10), new Point((int)c_pt_qh.Point.X, (int)c_pt_qh.Point.Y + 10));
@@ -181,7 +181,7 @@
                if (vm.IsDefault)
                { 
                    var pts = equip_paras.EquipCurve.GetPointList().Select(x => new PointF((float)x.X, (float)x.Y)).ToArray();
                    var pts = equip_paras.GetPointList().Select(x => new PointF((float)x.X, (float)x.Y)).ToArray();
                    using var path = new System.Drawing.Drawing2D.GraphicsPath();
                    var g_pts = new List<PointF>();
                    foreach (var pt in pts)
@@ -646,7 +646,7 @@
        /// <summary>
        /// è®¡ç®—工作点
        /// </summary> 
        public void CalcWorkPointByQ(double? work_flow = null)
        public void CalcWorkPointByQ(double? x_flow = null)
        {
            if (!_line_visible)
            {
@@ -672,13 +672,13 @@
                var min_flow = def_vm.Qh.MinX;
                var max_flow = def_vm.Qh.MaxX;
                work_flow ??= _equip_pt?.X ?? max_flow / 3 * 2;
                if (work_flow < min_flow || work_flow > max_flow)
                x_flow ??= _equip_pt?.X ?? max_flow / 3 * 2;
                if (x_flow < min_flow || x_flow > max_flow)
                    return;
                var work_pt = new PumpGroupPt(0, 0, 0, 0, 0);
                work_pt.Q = work_flow.Value;
                work_pt.H = def_vm.QhCalc.GetPointY(work_flow.Value);
                var work_pt = new PumpQueryPointViewModel();
                work_pt.Q = x_flow.Value;
                work_pt.H = def_vm.QhCalc.GetPointY(x_flow.Value);
                var work_info_str_builder = new StringBuilder();
                work_info_str_builder.AppendLine($"流量:{work_pt.Q.ToString("N1")} ");
@@ -688,18 +688,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();
@@ -709,7 +709,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)
@@ -717,7 +717,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
                        {
@@ -736,13 +736,13 @@
            }
            else
            {
                work_flow ??= _max_flow / 3 * 2;
                if (work_flow < _min_flow || work_flow > _max_flow)
                x_flow ??= _max_flow / 3 * 2;
                if (x_flow < _min_flow || x_flow > _max_flow)
                    return;
            }
            _query_flow_line.AxisValue = work_flow;
            _query_flow_line.Title.Text = work_flow.Value.ToString("N1");
            _query_flow_line.AxisValue = x_flow;
            _query_flow_line.Title.Text = x_flow.Value.ToString("N1");
        }
        /// <summary>