using Yw.WinFrmUI.Phart; namespace Yw.WinFrmUI { /// /// 图例辅助类 /// public class PhartGraphHelper { #region 获取特性曲线 /// /// 获取特性曲线 /// public static Yw.Ahart.PerformCurveBase GetPerformCurve(Yw.Ahart.eCurveType curveType, string geometryInfo) { if (string.IsNullOrEmpty(geometryInfo)) { return default; } Yw.Ahart.PerformCurveBase curve = null; switch (curveType) { case Yw.Ahart.eCurveType.QH: { curve = Yw.Pump.CurveQHHelper.ToModel(geometryInfo); } break; case Yw.Ahart.eCurveType.QP: { curve = Yw.Pump.CurveQPHelper.ToModel(geometryInfo); } break; case Yw.Ahart.eCurveType.QE: { curve = Yw.Pump.CurveQEHelper.ToModel(geometryInfo); } break; case Yw.Ahart.eCurveType.QNPSH: { } break; case Yw.Ahart.eCurveType.EqualE: { curve = Yw.Pump.CurveEqualEHelper.ToModel(geometryInfo); } break; case Yw.Ahart.eCurveType.EqualP: { curve = Yw.Pump.CurveEqualPHelper.ToModel(geometryInfo); } break; case Yw.Ahart.eCurveType.QL: { curve = Yw.Ahart.CurveQLHelper.ToModel(geometryInfo); } break; case Yw.Ahart.eCurveType.OL: { curve = Yw.Ahart.CurveOLHelper.ToModel(geometryInfo); } break; case Yw.Ahart.eCurveType.VOL: { curve = Yw.Ahart.CurveVOLHelper.ToModel(geometryInfo); } break; default: break; } return curve; } /// /// 获取特性曲线 /// public static T GetPerformCurve(Yw.Ahart.eCurveType curveType, string geometryInfo) { if (string.IsNullOrEmpty(geometryInfo)) { return default; } var obj = GetPerformCurve(curveType, geometryInfo); if (obj is T t) { return t; } return default; } /// /// 获取性能点列表 /// public static List GetFeatPointList(Yw.Ahart.eCurveType curveType, string geometryInfo, int pointNumber = 12, double minSpace = 0.0001) { if (string.IsNullOrEmpty(geometryInfo)) { return default; } var curve = GetPerformCurve(curveType, geometryInfo); if (curve == null || curve.IsInvalid()) { return default; } var pts = curve.FeatCurve.GetPointList(pointNumber, minSpace); return pts; } #endregion #region 获取图形参数 /// /// 获取 GraphParas /// public static object GetGraphParas(Yw.Ahart.eCurveType curveType, string graphParas) { if (string.IsNullOrEmpty(graphParas)) { return default; } object obj = null; switch (curveType) { case Ahart.eCurveType.QH: { obj = QHGraphParasViewModel.ToModel(graphParas); } break; case Ahart.eCurveType.QP: { obj = QPGraphParasViewModel.ToModel(graphParas); } break; case Ahart.eCurveType.QE: { obj = QEGraphParasViewModel.ToModel(graphParas); } break; case Ahart.eCurveType.QNPSH: { } break; case Ahart.eCurveType.EqualE: { obj = EqualEGraphParasViewModel.ToModel(graphParas); } break; case Ahart.eCurveType.EqualP: { obj = EqualPGraphParasViewModel.ToModel(graphParas); } break; case Ahart.eCurveType.QL: { obj = QLGraphParasViewModel.ToModel(graphParas); } break; case Ahart.eCurveType.OL: { obj = OLGraphParasViewModel.ToModel(graphParas); } break; case Ahart.eCurveType.VOL: { obj = VOLGraphParasViewModel.ToModel(graphParas); } break; default: break; } return obj; } /// /// 获取 GraphParas /// public static T GetGraphParas(Yw.Ahart.eCurveType curveType, string graphParas) { if (string.IsNullOrEmpty(graphParas)) { return default; } var obj = GetGraphParas(curveType, graphParas); if (obj is T t) { return t; } return default; } #endregion #region 获取几何参数 /// /// 获取 GeometryParas /// public static CurveGeometryParasViewModel GetGeometryParas(Yw.Ahart.eCurveType curveType, string geometryParas) { if (string.IsNullOrEmpty(geometryParas)) { return default; } CurveGeometryParasViewModel obj = null; switch (curveType) { case Ahart.eCurveType.QH: { obj = CurveGeometryParasViewModel.ToModel(geometryParas); } break; case Ahart.eCurveType.QP: { obj = CurveGeometryParasViewModel.ToModel(geometryParas); } break; case Ahart.eCurveType.QE: { obj = CurveGeometryParasViewModel.ToModel(geometryParas); } break; case Ahart.eCurveType.QNPSH: { obj = CurveGeometryParasViewModel.ToModel(geometryParas); } break; case Ahart.eCurveType.EqualE: { obj = CurveGeometryParasViewModel.ToModel(geometryParas); } break; case Ahart.eCurveType.EqualP: { obj = CurveGeometryParasViewModel.ToModel(geometryParas); } break; case Ahart.eCurveType.QL: { obj = CurveGeometryParasViewModel.ToModel(geometryParas); } break; case Ahart.eCurveType.OL: { obj = CurveGeometryParasViewModel.ToModel(geometryParas); } break; case Ahart.eCurveType.VOL: { obj = CurveGeometryParasViewModel.ToModel(geometryParas); } break; default: break; } return obj; } #endregion #region 获取注释参数 /// /// 获取 AnnotationParas /// public static List GetAnnotationParasList(Yw.Ahart.eCurveType curveType, string annotationParas) { if (string.IsNullOrEmpty(annotationParas)) { return default; } List list = null; switch (curveType) { case Ahart.eCurveType.QH: { list = AnnotationParasViewModel.ToList(annotationParas); } break; case Ahart.eCurveType.QP: { list = AnnotationParasViewModel.ToList(annotationParas); } break; case Ahart.eCurveType.QE: { list = AnnotationParasViewModel.ToList(annotationParas); } break; case Ahart.eCurveType.QNPSH: { list = AnnotationParasViewModel.ToList(annotationParas); } break; case Ahart.eCurveType.EqualE: { list = AnnotationParasViewModel.ToList(annotationParas); } break; case Ahart.eCurveType.EqualP: { list = AnnotationParasViewModel.ToList(annotationParas); } break; case Ahart.eCurveType.QL: { list = AnnotationParasViewModel.ToList(annotationParas); } break; case Ahart.eCurveType.OL: { list = AnnotationParasViewModel.ToList(annotationParas); } break; case Ahart.eCurveType.VOL: { list = AnnotationParasViewModel.ToList(annotationParas); } break; default: break; } return list; } #endregion #region 获取存储字符串 /// /// to 存储字符串 /// public static string ToDbString(Yw.Ahart.eCurveType curveType, 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; case Yw.Ahart.eFeatType.Quadratic: { featCurve = new Yw.Ahart.QuadraticCurve(pts); } break; case Yw.Ahart.eFeatType.Quartic: { featCurve = new Yw.Ahart.QuarticCurve(pts); } break; } if (featCurve == null || featCurve.IsInvalid()) { return dbString; } switch (curveType) { case Ahart.eCurveType.QH: { var curve = new Yw.Pump.CurveQH(featType, featCurve); dbString = curve.ToDbString(); } break; case Ahart.eCurveType.QP: { var curve = new Yw.Pump.CurveQP(featType, featCurve); dbString = curve.ToDbString(); } break; case Ahart.eCurveType.QE: { var curve = new Yw.Pump.CurveQE(featType, featCurve); dbString = curve.ToDbString(); } break; case Ahart.eCurveType.QNPSH: { } break; case Ahart.eCurveType.EqualE: { var curve = new Yw.Pump.CurveEqualE(featType, featCurve); dbString = curve.ToDbString(); } break; case Ahart.eCurveType.EqualP: { var curve = new Yw.Pump.CurveEqualP(featType, featCurve); dbString = curve.ToDbString(); } break; case Ahart.eCurveType.QL: { var curve = new Yw.Ahart.CurveQL(featType, featCurve); dbString = curve.ToDbString(); } break; case Ahart.eCurveType.OL: { var curve = new Yw.Ahart.CurveOL(featType, featCurve); dbString = curve.ToDbString(); } break; case Ahart.eCurveType.VOL: { var curve = new Yw.Ahart.CurveVOL(featType, featCurve); dbString = curve.ToDbString(); } break; } return dbString; } #endregion } }