namespace HStation.Service.PhartRelation
|
{
|
/// <summary>
|
/// 特性曲线辅助类
|
/// </summary>
|
public class PhartGraphHelper
|
{
|
#region 获取特性曲线
|
|
/// <summary>
|
/// 获取特性曲线
|
/// </summary>
|
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;
|
}
|
|
/// <summary>
|
/// 获取性能点列表
|
/// </summary>
|
public static List<Yw.Geometry.Point2d> GetFeatPointList(eGraphType graphType, string geometryInfo, int pointNumber = 12, double minSpace = 0.0001)
|
{
|
if (string.IsNullOrEmpty(geometryInfo))
|
{
|
return default;
|
}
|
List<Yw.Geometry.Point2d> 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 获取图形参数
|
|
/// <summary>
|
/// 获取 GraphParas
|
/// </summary>
|
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;
|
}
|
|
/// <summary>
|
/// 获取 GraphParas
|
/// </summary>
|
public static T GetGraphParas<T>(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 获取几何参数
|
|
/// <summary>
|
/// 获取 GeometryParas
|
/// </summary>
|
public static object GetGeometryParas(eGeometryStyle geometryStyle, string geometryParas)
|
{
|
if (string.IsNullOrEmpty(geometryParas))
|
{
|
return default;
|
}
|
|
object obj = null;
|
switch (geometryStyle)
|
{
|
case eGeometryStyle.FeatCurve:
|
{
|
obj = Model.FeatCurveGeometryParasModel.ToModel(geometryParas);
|
}
|
break;
|
default: break;
|
}
|
return obj;
|
|
}
|
|
/// <summary>
|
/// 获取 GeometryParas
|
/// </summary>
|
public static T GetGeometryParas<T>(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 获取存储字符串
|
|
/// <summary>
|
/// to 存储字符串
|
/// </summary>
|
public static string ToDbString(eGraphType graphType, Yw.Ahart.eFeatType featType, List<Yw.Geometry.Point2d> 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.Through2d:
|
{
|
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
|
|
}
|
}
|