| | |
| | | namespace HStation.WinFrmUI |
| | | using Yw.WinFrmUI.Phart; |
| | | |
| | | namespace HStation.WinFrmUI |
| | | { |
| | | /// <summary> |
| | | /// 图表Vmo 扩展方法 |
| | |
| | | /// <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()) |
| | | { |
| | |
| | | /// <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()) |
| | | { |
| | |
| | | } |
| | | |
| | | /// <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()) |
| | | { |
| | |
| | | /// <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()) |
| | | { |
| | |
| | | { |
| | | 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); |
| | |
| | | } |
| | | 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); |
| | |
| | | } |
| | | 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); |
| | |
| | | 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) |
| | | { |
| | |
| | | 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 |
| | | |
| | |
| | | /// <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()) |
| | | { |
| | |
| | | /// <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()) |
| | |
| | | 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; |
| | |
| | | /// <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()) |
| | | { |
| | |
| | | /// <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()) |
| | |
| | | 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; |
| | |
| | | { |
| | | 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; |
| | | } |
| | | |
| | |
| | | { |
| | | 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(); |
| | | } |
| | | |
| | |
| | | if (vmo == null) |
| | | return default; |
| | | var paras = vmo.GeometryParasModel(); |
| | | var define_pt_list = paras.DefinePoints; |
| | | 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 line_pt_list = performCurve.FeatCurve.GetPointList(30); |
| | | 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 HStation.Model.FeatCurveGeometryParasModel GeometryParasModel(this Yw.Vmo.PhartGraphVmo vmo) |
| | | public static CurveGeometryParasViewModel GeometryParasModel(this Yw.Vmo.PhartGraphVmo vmo) |
| | | { |
| | | if (vmo == null) |
| | | return default; |
| | |
| | | return default; |
| | | if (vmo.GeometryStyle != (int)HStation.PhartRelation.eGeometryStyle.FeatCurve) |
| | | return default; |
| | | return HStation.Model.FeatCurveGeometryParasModel.ToModel(vmo.GeometryInfo); |
| | | return CurveGeometryParasViewModel.ToModel(vmo.GeometryParas); |
| | | } |
| | | |
| | | } |