Shuxia Ning
2024-12-19 b0c978129ba55cf81e8470b6c9326745a5dbc7d1
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/00-core/02-extensions/PhartVmoExtensions.cs
@@ -35,7 +35,7 @@
        /// <summary>
        /// 获取默认的泵曲线
        /// </summary>
        public static PumpCurveViewModel GetDefaultPumpCurveViewMdoel(this List<HStation.Vmo.PhartGraphVmo> vmo_list)
        public static PumpCurveViewModel GetDefaultPumpCurveViewMdoel(this List<Yw.Vmo.PhartGraphVmo> vmo_list)
        {
            if (vmo_list == null || !vmo_list.Any())
            {
@@ -53,41 +53,65 @@
        /// <summary>
        /// 获取泵曲线列表
        /// </summary> 
        public static List<PumpCurveViewModel> GetPumpCurveViewMdoelList(this List<HStation.Vmo.PhartGraphVmo> vmo_list)
        public static List<PumpCurveViewModel> GetPumpCurveViewMdoelList(this HStation.Vmo.PhartDiagramRelationExtensionsVmo vmo)
        {
            if (vmo == null)
            {
                return default;
            }
            var diagram = vmo.Diagram;
            if (diagram == null)
            {
                return default;
            }
            var graph_list = diagram.GraphList;
            if (graph_list == null || !graph_list.Any())
            {
                return default;
            }
            return graph_list.GetPumpCurveViewMdoelList();
        }
        /// <summary>
        /// 获取泵曲线列表
        /// </summary>
        public static List<PumpCurveViewModel> GetPumpCurveViewMdoelList(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.PerformCurveBase)>();
            var filter_list = new List<(double, double, Yw.Ahart.eCurveType, object)>();
            foreach (var vmo in vmo_list)
            {
                if (vmo.GraphType == HStation.PhartRelation.eGraphType.QH)
                if (vmo.GraphType == (int)HStation.PhartRelation.eGraphType.QH)
                {
                    var paras = HStation.Model.QHGraphParasModel.ToModel(vmo.GraphParas);
                    if (paras != null)
                    {
                        var curve = vmo.GetPerformCurve();
                        filter_list.Add((paras.Hz, paras.N, curve));
                        var curve = Yw.Pump.CurveQHHelper.ToModel(vmo.GeometryInfo);
                        filter_list.Add((paras.Hz, paras.N, Yw.Ahart.eCurveType.QH, curve));
                    }
                }
                else if (vmo.GraphType == HStation.PhartRelation.eGraphType.QE)
                else if (vmo.GraphType == (int)HStation.PhartRelation.eGraphType.QE)
                {
                    var paras = HStation.Model.QEGraphParasModel.ToModel(vmo.GraphParas);
                    if (paras != null)
                    {
                        var curve = vmo.GetPerformCurve();
                        filter_list.Add((paras.Hz, paras.N, curve));
                        var curve = Yw.Pump.CurveQEHelper.ToModel(vmo.GeometryInfo);
                        filter_list.Add((paras.Hz, paras.N, Yw.Ahart.eCurveType.QE, curve));
                    }
                }
                else if (vmo.GraphType == HStation.PhartRelation.eGraphType.QP)
                else if (vmo.GraphType == (int)HStation.PhartRelation.eGraphType.QP)
                {
                    var paras = HStation.Model.QPGraphParasModel.ToModel(vmo.GraphParas);
                    if (paras != null)
                    {
                        var curve = vmo.GetPerformCurve();
                        filter_list.Add((paras.Hz, paras.N, curve));
                        var curve = Yw.Pump.CurveQPHelper.ToModel(vmo.GeometryInfo);
                        filter_list.Add((paras.Hz, paras.N, Yw.Ahart.eCurveType.QP, curve));
                    }
                }
            }
@@ -103,11 +127,11 @@
            {
                var hz = item_list.Key.Item1;
                var n = item_list.Key.Item2;
                var curve_list = item_list.Select(x => x.Item3).ToList();
                var curve_list = item_list.Select(x => x.Item4).ToList();
                var qh = curve_list.Find(x => x is Yw.Pump.CurveQH) as Yw.Pump.CurveQH;
                var qe = curve_list.Find(x => x is Yw.Pump.CurveQE) as Yw.Pump.CurveQE;
                var qp = curve_list.Find(x => x is Yw.Pump.CurveQP) as Yw.Pump.CurveQP;
                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 qp = (Yw.Pump.CurveQP)curve_list.Find(x => x is Yw.Pump.CurveQP);
                if (qh == null)
                    continue;
@@ -159,9 +183,9 @@
        /// <summary>
        /// 获取等效线列表
        /// </summary> 
        public static List<CurveEqualEViewModel> GetCurveEqualEViewMdoelList(this List<HStation.Vmo.PhartGraphVmo> vmo_list)
        public static List<CurveEqualEViewModel> GetCurveEqualEViewMdoelList(this List<Yw.Vmo.PhartGraphVmo> vmo_list)
        {
            vmo_list = vmo_list?.Where(x => x.GraphType == HStation.PhartRelation.eGraphType.EqualE).ToList();
            vmo_list = vmo_list?.Where(x => x.GraphType == (int)HStation.PhartRelation.eGraphType.EqualE).ToList();
            if (vmo_list == null || !vmo_list.Any())
            {
                return default;
@@ -211,9 +235,9 @@
        /// <summary>
        /// 获取等功线列表
        /// </summary> 
        public static List<CurveEqualPViewModel> GetCurveEqualPViewMdoelList(this List<HStation.Vmo.PhartGraphVmo> vmo_list)
        public static List<CurveEqualPViewModel> GetCurveEqualPViewMdoelList(this List<Yw.Vmo.PhartGraphVmo> vmo_list)
        {
            vmo_list = vmo_list?.Where(x => x.GraphType == HStation.PhartRelation.eGraphType.EqualP).ToList();
            vmo_list = vmo_list?.Where(x => x.GraphType == (int)HStation.PhartRelation.eGraphType.EqualP).ToList();
            if (vmo_list == null || !vmo_list.Any())
            {
                return default;
@@ -242,29 +266,31 @@
        /// <summary>
        /// 获取特性曲线
        /// </summary>
        public static Yw.Ahart.PerformCurveBase GetPerformCurve(this HStation.Vmo.PhartGraphVmo vmo)
        public static Yw.Ahart.PerformCurveBase GetPerformCurve(this Yw.Vmo.PhartGraphVmo vmo)
        {
            if (vmo == null)
                return default;
            var performCurve = HStation.Service.PhartRelation.PhartGraphHelper.GetPerformCurve(vmo.GeometryStyle, vmo.GeometryInfo);
            var performCurve = HStation.Service.PhartRelation.PhartGraphHelper.GetPerformCurve( (HStation.PhartRelation.eGeometryStyle) vmo.GeometryStyle, vmo.GeometryInfo);
            return performCurve;
        }
        /// <summary>
        /// 获取性能点列表
        /// </summary>
        public static List<Yw.Geometry.Point2d> GetFeatPointList(this HStation.Vmo.PhartGraphVmo vmo, int point_number = 12, double min_space = 0.0001)
        public static List<Yw.Geometry.Point2d> GetFeatPointList(this Yw.Vmo.PhartGraphVmo vmo, int point_number = 12, double min_space = 0.0001)
        {
            if (vmo == null)
                return default;
            var graph_type = vmo.GraphType;
            var geometry_info = vmo.GeometryInfo;
            var pts = HStation.Service.PhartRelation.PhartGraphHelper.GetFeatPointList(graph_type, geometry_info, point_number, min_space);
            var pts = HStation.Service.PhartRelation.PhartGraphHelper.GetFeatPointList((HStation.PhartRelation.eGraphType)graph_type, geometry_info, point_number, min_space);
            return pts?.ToList();
        }
        #endregion
    }
}