namespace HStation.Service.PhartRelation { /// /// 特性曲线辅助类 /// public class PhartGraphHelper { #region 获取特性曲线 /// /// 获取特性曲线 /// public static Yw.Ahart.PerformCurveBase GetPerformCurve(eGeometryStyle geometryStyle, string geometryInfo) { if (string.IsNullOrEmpty(geometryInfo)) { return default; } Yw.Ahart.PerformCurveBase performCurve = null; switch ((eGeometryStyle)geometryStyle) { case eGeometryStyle.FeatCurve: { performCurve = Yw.Ahart.PerformCurveHelper.ToModel(geometryInfo); } break; default: break; } return performCurve; } /// /// 获取性能点列表 /// public static List GetFeatPointList(eGraphType graphType, string geometryInfo, int pointNumber = 12, double minSpace = 0.0001) { if (string.IsNullOrEmpty(geometryInfo)) { return default; } List pts = null; switch (graphType) { case eGraphType.QH: { var curve = Yw.Pump.CurveQHHelper.ToModel(geometryInfo); if (curve != null) { pts = curve.FeatCurve.GetPointList(pointNumber, minSpace); } } break; case eGraphType.QP: { var curve = Yw.Pump.CurveQPHelper.ToModel(geometryInfo); if (curve != null) { pts = curve.FeatCurve.GetPointList(pointNumber, minSpace); } } break; case eGraphType.QE: { var curve = Yw.Pump.CurveQEHelper.ToModel(geometryInfo); if (curve != null) { pts = curve.FeatCurve.GetPointList(pointNumber, minSpace); } } break; case eGraphType.QNPSH: { } break; case eGraphType.EqualE: { var curve = Yw.Pump.CurveEqualEHelper.ToModel(geometryInfo); if (curve != null) { pts = curve.FeatCurve.GetPointList(pointNumber, minSpace); } } break; case eGraphType.EqualP: { var curve = Yw.Pump.CurveEqualPHelper.ToModel(geometryInfo); if (curve != null) { pts = curve.FeatCurve.GetPointList(pointNumber, minSpace); } } break; case eGraphType.QL: { var curve = Yw.Ahart.CurveQLHelper.ToModel(geometryInfo); if (curve != null) { pts = curve.FeatCurve.GetPointList(pointNumber, minSpace); } } break; case eGraphType.OL: { var curve = Yw.Ahart.CurveOLHelper.ToModel(geometryInfo); if (curve != null) { pts = curve.FeatCurve.GetPointList(pointNumber, minSpace); } } break; case eGraphType.VOL: { var curve = Yw.Ahart.CurveVOLHelper.ToModel(geometryInfo); if (curve != null) { pts = curve.FeatCurve.GetPointList(pointNumber, minSpace); } } break; } return pts; } #endregion #region 获取图形参数 /// /// 获取 GraphParas /// public static object GetGraphParas(eGraphType graphType, string graphParas) { if (string.IsNullOrEmpty(graphParas)) { return default; } object obj = null; switch (graphType) { case eGraphType.QH: { obj = Model.QHGraphParasModel.ToModel(graphParas); } break; case eGraphType.QP: { obj = Model.QPGraphParasModel.ToModel(graphParas); } break; case eGraphType.QE: { obj = Model.QEGraphParasModel.ToModel(graphParas); } break; case eGraphType.QNPSH: { } break; case eGraphType.EqualE: { obj = Model.EqualEGraphParasModel.ToModel(graphParas); } break; case eGraphType.EqualP: { obj = Model.EqualPGraphParasModel.ToModel(graphParas); } break; case eGraphType.QL: { } break; case eGraphType.OL: { } break; case eGraphType.VOL: { } break; default: break; } return obj; } /// /// 获取 GraphParas /// public static T GetGraphParas(eGraphType graphType, string graphParas) { if (string.IsNullOrEmpty(graphParas)) { return default; } var obj = GetGraphParas(graphType, graphParas); if (obj is T t) { return t; } return default; } #endregion #region 获取几何参数 /// /// 获取 GeometryParas /// public static object GetGeometryParas(eGeometryStyle geometryStyle, string geometryParas) { if (string.IsNullOrEmpty(geometryParas)) { return default; } object obj = null; switch (geometryStyle) { case eGeometryStyle.FeatCurve: { obj = CurveGeometryParasModel.ToModel(geometryParas); } break; default: break; } return obj; } /// /// 获取 GeometryParas /// public static T GetGeometryParas(eGeometryStyle geometryStyle, string graphParas) { if (string.IsNullOrEmpty(graphParas)) { return default; } var obj = GetGeometryParas(geometryStyle, graphParas); if (obj is T t) { return t; } return default; } #endregion #region 获取存储字符串 /// /// to 存储字符串 /// public static string ToDbString(eGraphType graphType, Yw.Ahart.eFeatType featType, List pts) { var dbString = string.Empty; if (pts == null || pts.Count < 1) { return dbString; } Yw.Ahart.IFeatCurve featCurve = null; switch (featType) { case Yw.Ahart.eFeatType.Polynomial: { featCurve = new Yw.Ahart.PolynomialCurve(pts); } break; case Yw.Ahart.eFeatType.Cubic: { featCurve = new Yw.Ahart.CubicCurve(pts); } break; case Yw.Ahart.eFeatType.Through: { featCurve = new Yw.Ahart.ThroughCurve(pts); } break; } if (featCurve == null || featCurve.IsInvalid()) { return dbString; } switch (graphType) { case eGraphType.QH: { var curve = new Yw.Pump.CurveQH(featType, featCurve); dbString = curve.ToDbString(); } break; case eGraphType.QP: { var curve = new Yw.Pump.CurveQP(featType, featCurve); dbString = curve.ToDbString(); } break; case eGraphType.QE: { var curve = new Yw.Pump.CurveQE(featType, featCurve); dbString = curve.ToDbString(); } break; case eGraphType.QNPSH: { } break; case eGraphType.EqualE: { var curve = new Yw.Pump.CurveEqualE(featType, featCurve); dbString = curve.ToDbString(); } break; case eGraphType.EqualP: { var curve = new Yw.Pump.CurveEqualP(featType, featCurve); dbString = curve.ToDbString(); } break; case eGraphType.QL: { var curve = new Yw.Ahart.CurveQL(featType, featCurve); dbString = curve.ToDbString(); } break; case eGraphType.OL: { var curve = new Yw.Ahart.CurveOL(featType, featCurve); dbString = curve.ToDbString(); } break; case eGraphType.VOL: { var curve = new Yw.Ahart.CurveVOL(featType, featCurve); dbString = curve.ToDbString(); } break; } return dbString; } #endregion } }