From b0a694ccba71736f9092f30e45be94689ce92416 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期一, 31 三月 2025 11:13:49 +0800 Subject: [PATCH] 计算模块替换 --- WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/00-core/02-extensions/PhartVmoExtensions.cs | 225 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 182 insertions(+), 43 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/00-core/02-extensions/PhartVmoExtensions.cs b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/00-core/02-extensions/PhartVmoExtensions.cs index 2544cfb..9ebf979 100644 --- a/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/00-core/02-extensions/PhartVmoExtensions.cs +++ b/WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/00-core/02-extensions/PhartVmoExtensions.cs @@ -1,4 +1,6 @@ -锘� namespace HStation.WinFrmUI +锘縰sing Yw.WinFrmUI.Phart; + +namespace HStation.WinFrmUI { /// <summary> /// 鍥捐〃Vmo 鎵╁睍鏂规硶 @@ -12,12 +14,12 @@ /// <summary> /// 鑾峰彇榛樿鐨勬车鏇茬嚎 /// </summary> - public static PumpCurveViewModel GetDefaultPumpCurveViewMdoel(this Yw.Vmo.PhartDiagramExGraphListVmo vmo) + public static PumpPerformCurveViewModel GetDefaultPumpCurveViewMdoel(this Yw.Vmo.PhartDiagramExGraphListVmo vmo) { if (vmo == null) { return default; - } + } var graph_list = vmo.GraphList; if (graph_list == null || !graph_list.Any()) { @@ -30,7 +32,7 @@ /// <summary> /// 鑾峰彇榛樿鐨勬车鏇茬嚎 /// </summary> - public static PumpCurveViewModel GetDefaultPumpCurveViewMdoel(this List<Yw.Vmo.PhartGraphVmo> vmo_list) + public static PumpPerformCurveViewModel GetDefaultPumpCurveViewMdoel(this List<Yw.Vmo.PhartGraphVmo> vmo_list) { if (vmo_list == null || !vmo_list.Any()) { @@ -46,15 +48,39 @@ } /// <summary> - /// 鑾峰彇娉垫洸绾垮垪琛� + /// 鑾峰彇鍙橀�熸车鏇茬嚎鍒楄〃 /// </summary> - public static List<PumpCurveViewModel> GetPumpCurveViewMdoelList(this Yw.Vmo.PhartDiagramExGraphListVmo vmo) + public static List<PumpPerformCurveViewModel> GetVariableSpeedPumpCurveViewMdoelList(this Yw.Vmo.PhartDiagramExGraphListVmo vmo) { - if (vmo == null) { return default; - } + } + var graph_list = vmo.GraphList; + if (graph_list == null || !graph_list.Any()) + { + return default; + } + var vm_list = graph_list.GetPumpCurveViewMdoelList(); + if (vm_list == null || !vm_list.Any()) + { + return default; + } + var vm_default = vm_list.OrderBy(x => x.Hz).LastOrDefault(); + vm_list.Remove(vm_default); + return vm_list; + } + + + /// <summary> + /// 鑾峰彇娉垫洸绾垮垪琛� + /// </summary> + public static List<PumpPerformCurveViewModel> GetPumpCurveViewMdoelList(this Yw.Vmo.PhartDiagramExGraphListVmo vmo) + { + if (vmo == null) + { + return default; + } var graph_list = vmo.GraphList; if (graph_list == null || !graph_list.Any()) { @@ -67,7 +93,7 @@ /// <summary> /// 鑾峰彇娉垫洸绾垮垪琛� /// </summary> - public static List<PumpCurveViewModel> GetPumpCurveViewMdoelList(this List<Yw.Vmo.PhartGraphVmo> vmo_list) + public static List<PumpPerformCurveViewModel> GetPumpCurveViewMdoelList(this List<Yw.Vmo.PhartGraphVmo> vmo_list) { if (vmo_list == null || !vmo_list.Any()) { @@ -79,7 +105,7 @@ { if (vmo.GraphType == (int)HStation.PhartRelation.eGraphType.QH) { - var paras = HStation.Model.QHGraphParasModel.ToModel(vmo.GraphParas); + var paras = QHGraphParasViewModel.ToModel(vmo.GraphParas); if (paras != null) { var curve = Yw.Pump.CurveQHHelper.ToModel(vmo.GeometryInfo); @@ -88,7 +114,7 @@ } else if (vmo.GraphType == (int)HStation.PhartRelation.eGraphType.QE) { - var paras = HStation.Model.QEGraphParasModel.ToModel(vmo.GraphParas); + var paras = QEGraphParasViewModel.ToModel(vmo.GraphParas); if (paras != null) { var curve = Yw.Pump.CurveQEHelper.ToModel(vmo.GeometryInfo); @@ -97,7 +123,7 @@ } else if (vmo.GraphType == (int)HStation.PhartRelation.eGraphType.QP) { - var paras = HStation.Model.QPGraphParasModel.ToModel(vmo.GraphParas); + var paras = QPGraphParasViewModel.ToModel(vmo.GraphParas); if (paras != null) { var curve = Yw.Pump.CurveQPHelper.ToModel(vmo.GeometryInfo); @@ -111,7 +137,7 @@ return default; } - var vm_list = new List<PumpCurveViewModel>(); + var vm_list = new List<PumpPerformCurveViewModel>(); var group = filter_list.GroupBy(x => new { x.Item1, x.Item2 }); foreach (var item_list in group) { @@ -120,28 +146,120 @@ var curve_list = item_list.Select(x => x.Item4).ToList(); var qh = (Yw.Pump.CurveQH)curve_list.Find(x => x is Yw.Pump.CurveQH); - var qe = (Yw.Pump.CurveQE)curve_list.Find(x => x is Yw.Pump.CurveQE); + var qe = (Yw.Pump.CurveQE)curve_list.Find(x => x is Yw.Pump.CurveQE); var qp = (Yw.Pump.CurveQP)curve_list.Find(x => x is Yw.Pump.CurveQP); if (qh == null) continue; - var vm = new PumpCurveViewModel(); + var vm = new PumpPerformCurveViewModel(); vm.Hz = hz; vm.N = n; - vm.CurveQH = new CurveQHViewModel(qh); + vm.CurveQH = new QHViewModel(qh); if (qe != null) { - vm.CurveQE = new CurveQEViewModel(qe); + vm.CurveQE = new QEViewModel(qe); } if (qp != null) { - vm.CurveQP = new CurveQPViewModel(qp); + vm.CurveQP = new QPViewModel(qp); } vm_list.Add(vm); } return vm_list; } + + /// <summary> + /// 鑾峰彇娉垫洸绾垮垪琛� + /// </summary> + public static List<(double hz, double n, Yw.Vmo.PhartGraphVmo QH, Yw.Vmo.PhartGraphVmo QE, Yw.Vmo.PhartGraphVmo QP)> GetVmoList(this List<Yw.Vmo.PhartGraphVmo> vmo_list) + { + if (vmo_list == null || !vmo_list.Any()) + { + return default; + } + + var filter_list = new List<(double, double, Yw.Ahart.eCurveType, Yw.Vmo.PhartGraphVmo)>(); + foreach (var vmo in vmo_list) + { + if (vmo.GraphType == (int)HStation.PhartRelation.eGraphType.QH) + { + var paras = QHGraphParasViewModel.ToModel(vmo.GraphParas); + if (paras != null) + { + var curve = Yw.Pump.CurveQHHelper.ToModel(vmo.GeometryInfo); + filter_list.Add((paras.Hz, paras.N, Yw.Ahart.eCurveType.QH, vmo)); + } + } + else if (vmo.GraphType == (int)HStation.PhartRelation.eGraphType.QE) + { + var paras = QEGraphParasViewModel.ToModel(vmo.GraphParas); + if (paras != null) + { + var curve = Yw.Pump.CurveQEHelper.ToModel(vmo.GeometryInfo); + filter_list.Add((paras.Hz, paras.N, Yw.Ahart.eCurveType.QE, vmo)); + } + } + else if (vmo.GraphType == (int)HStation.PhartRelation.eGraphType.QP) + { + var paras = QPGraphParasViewModel.ToModel(vmo.GraphParas); + if (paras != null) + { + var curve = Yw.Pump.CurveQPHelper.ToModel(vmo.GeometryInfo); + filter_list.Add((paras.Hz, paras.N, Yw.Ahart.eCurveType.QP, vmo)); + } + } + } + + if (filter_list == null || !filter_list.Any()) + { + return default; + } + + var list = new List<(double hz, double n, Yw.Vmo.PhartGraphVmo QH, Yw.Vmo.PhartGraphVmo QE, Yw.Vmo.PhartGraphVmo QP)>(); + var group = filter_list.GroupBy(x => new { x.Item1, x.Item2 }); + foreach (var item_list in group) + { + var hz = item_list.Key.Item1; + var n = item_list.Key.Item2; + var curve_list = item_list.Select(x => x.Item4).ToList(); + + var qh = curve_list.Find(x => x.GraphType == (int)HStation.PhartRelation.eGraphType.QH); + var qe = curve_list.Find(x => x.GraphType == (int)HStation.PhartRelation.eGraphType.QE); + var qp = curve_list.Find(x => x.GraphType == (int)HStation.PhartRelation.eGraphType.QP); + + if (qh == null) + continue; + + list.Add((hz, n, qh, qe, qp)); + } + + return list; + } + + /// <summary> + /// 鑾峰彇娉垫洸绾垮垪琛� + /// </summary> + public static (Yw.Vmo.PhartGraphVmo QH, Yw.Vmo.PhartGraphVmo QE, Yw.Vmo.PhartGraphVmo QP) GetDefaultVmo(this Yw.Vmo.PhartDiagramExGraphListVmo vmo) + { + if (vmo == null) + { + return default; + } + var graph_list = vmo.GraphList; + if (graph_list == null || !graph_list.Any()) + { + return default; + } + var vmo_list = graph_list.GetVmoList(); + if (vmo_list == null || !vmo_list.Any()) + { + return default; + } + var vmo_def = vmo_list.OrderBy(x => x.hz).LastOrDefault(); + return new(vmo_def.QH, vmo_def.QE, vmo_def.QP); + } + #endregion @@ -150,12 +268,12 @@ /// <summary> /// 鑾峰彇绛夋晥绾垮垪琛� /// </summary> - public static List<CurveEqualEViewModel> GetCurveEqualEViewMdoelList(this Yw.Vmo.PhartDiagramExGraphListVmo vmo) + public static List<EqualEViewModel> GetCurveEqualEViewMdoelList(this Yw.Vmo.PhartDiagramExGraphListVmo vmo) { if (vmo == null) { return default; - } + } var graph_list = vmo.GraphList; if (graph_list == null || !graph_list.Any()) { @@ -168,7 +286,7 @@ /// <summary> /// 鑾峰彇绛夋晥绾垮垪琛� /// </summary> - public static List<CurveEqualEViewModel> GetCurveEqualEViewMdoelList(this List<Yw.Vmo.PhartGraphVmo> vmo_list) + public static List<EqualEViewModel> GetCurveEqualEViewMdoelList(this List<Yw.Vmo.PhartGraphVmo> vmo_list) { vmo_list = vmo_list?.Where(x => x.GraphType == (int)HStation.PhartRelation.eGraphType.EqualE).ToList(); if (vmo_list == null || !vmo_list.Any()) @@ -176,14 +294,15 @@ return default; } - var vm_list = new List<CurveEqualEViewModel>(); + var vm_list = new List<EqualEViewModel>(); foreach (var vmo in vmo_list) { - var paras = HStation.Model.EqualEGraphParasModel.ToModel(vmo.GraphParas); + var graph_paras = Yw.WinFrmUI.Phart.EqualEGraphParasViewModel.ToModel(vmo.GraphParas); + var geometry_paras = Yw.WinFrmUI.Phart.CurveGeometryParasViewModel.ToModel(vmo.GeometryInfo); var curve = vmo.GetPerformCurve() as Yw.Pump.CurveEqualE; if (curve == null) continue; - var vm = new CurveEqualEViewModel(curve, paras); + var vm = new EqualEViewModel(curve, graph_paras, geometry_paras); vm_list.Add(vm); } return vm_list; @@ -197,12 +316,12 @@ /// <summary> /// 鑾峰彇绛夊姛绾垮垪琛� /// </summary> - public static List<CurveEqualPViewModel> GetCurveEqualPViewMdoelList(this Yw.Vmo.PhartDiagramExGraphListVmo vmo) + public static List<EqualPViewModel> GetCurveEqualPViewMdoelList(this Yw.Vmo.PhartDiagramExGraphListVmo vmo) { if (vmo == null) { return default; - } + } var graph_list = vmo.GraphList; if (graph_list == null || !graph_list.Any()) { @@ -215,7 +334,7 @@ /// <summary> /// 鑾峰彇绛夊姛绾垮垪琛� /// </summary> - public static List<CurveEqualPViewModel> GetCurveEqualPViewMdoelList(this List<Yw.Vmo.PhartGraphVmo> vmo_list) + public static List<EqualPViewModel> GetCurveEqualPViewMdoelList(this List<Yw.Vmo.PhartGraphVmo> vmo_list) { vmo_list = vmo_list?.Where(x => x.GraphType == (int)HStation.PhartRelation.eGraphType.EqualP).ToList(); if (vmo_list == null || !vmo_list.Any()) @@ -223,14 +342,15 @@ return default; } - var vm_list = new List<CurveEqualPViewModel>(); + var vm_list = new List<EqualPViewModel>(); foreach (var vmo in vmo_list) { - var paras = HStation.Model.EqualPGraphParasModel.ToModel(vmo.GraphParas); + var graph_paras = EqualPGraphParasViewModel.ToModel(vmo.GraphParas); + var geometry_paras = Yw.WinFrmUI.Phart.CurveGeometryParasViewModel.ToModel(vmo.GeometryInfo); var curve = vmo.GetPerformCurve() as Yw.Pump.CurveEqualP; if (curve == null) continue; - var vm = new CurveEqualPViewModel(curve, paras); + var vm = new EqualPViewModel(curve, graph_paras, geometry_paras); vm_list.Add(vm); } return vm_list; @@ -250,7 +370,7 @@ { if (vmo == null) return default; - var performCurve = HStation.Service.PhartRelation.PhartGraphHelper.GetPerformCurve( (HStation.PhartRelation.eGeometryStyle) vmo.GeometryStyle, vmo.GeometryInfo); + var performCurve = PhartGraphHelper.GetPerformCurve((Yw.Ahart.eCurveType)vmo.GraphType, vmo.GeometryInfo); return performCurve; } @@ -261,31 +381,50 @@ { if (vmo == null) return default; - var graph_type = vmo.GraphType; - var geometry_info = vmo.GeometryInfo; - var pts = HStation.Service.PhartRelation.PhartGraphHelper.GetFeatPointList((HStation.PhartRelation.eGraphType)graph_type, geometry_info, point_number, min_space); + var curve = vmo.GetPerformCurve(); + var pts = curve.FeatCurve.GetPointList(point_number, min_space); return pts?.ToList(); } - - #endregion - - /// <summary> /// 鑾峰彇鐗规�ф洸绾� /// </summary> - public static (Yw.Ahart.eCurveType, Yw.Ahart.eFeatType, List<Yw.Geometry.Point2d>) GetCurveInfo(this Yw.Vmo.PhartGraphVmo vmo) + public static (Yw.Ahart.eCurveType curve_type, Yw.Ahart.eFeatType feat_type, List<Yw.Geometry.Point2d> define_pt_list, List<Yw.Geometry.Point2d> line_pt_list) GetCurveInfo(this Yw.Vmo.PhartGraphVmo vmo) { if (vmo == null) return default; + var paras = vmo.GeometryParasModel(); + var define_pt_list = paras?.DefinePoints; - var performCurve = HStation.Service.PhartRelation.PhartGraphHelper.GetPerformCurve((HStation.PhartRelation.eGeometryStyle)vmo.GeometryStyle, vmo.GeometryInfo); + var performCurve = PhartGraphHelper.GetPerformCurve((Yw.Ahart.eCurveType)vmo.GraphType, vmo.GeometryInfo); var curve_type = (Yw.Ahart.eCurveType)vmo.GraphType; var feat_type = performCurve.FeatType; - var pt_list = performCurve.FeatCurve.GetPointList(30); - return new(curve_type, feat_type, pt_list); - + var line_pt_list = performCurve.FeatCurve.GetPointList(50); + if (define_pt_list == null) + { + define_pt_list = line_pt_list?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList(); + } + return new(curve_type, feat_type, define_pt_list, line_pt_list); } + + + + #endregion + + /// <summary> + /// 鑾峰彇鐗规�ф洸绾� + /// </summary> + public static CurveGeometryParasViewModel GeometryParasModel(this Yw.Vmo.PhartGraphVmo vmo) + { + if (vmo == null) + return default; + if (string.IsNullOrEmpty(vmo.GeometryParas)) + return default; + if (vmo.GeometryStyle != (int)HStation.PhartRelation.eGeometryStyle.FeatCurve) + return default; + return CurveGeometryParasViewModel.ToModel(vmo.GeometryParas); + } + } } -- Gitblit v1.9.3