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
}
}