public void AddEquipEtaCurves(List<double> eff_list, float dispTension = 0.5f)
|
{
|
if (eff_list == null || eff_list.Count() == 0)
|
return;
|
|
|
foreach (var eff in eff_list)
|
{
|
|
List<Eventech.Model.CombineCurve> equalCurvesEx = null;
|
string errror = CalcEquipEtaCurve1(eff, dispTension, out equalCurvesEx);
|
if (!string.IsNullOrEmpty(errror))
|
{
|
XtraMessageBox.Show(errror);
|
return;
|
}
|
if (equalCurvesEx == null || equalCurvesEx.Count() == 0)
|
return;
|
if (equalCurvesEx.Count() == 1)
|
{
|
_mainCtrl.AddEqualParaCurveE(equalCurvesEx.First(), false);
|
}
|
else
|
{
|
if (equalCurvesEx[0].PointInfo[0].X > equalCurvesEx[1].PointInfo[0].X)
|
{
|
_mainCtrl.AddEqualParaCurveE(equalCurvesEx[0], true);
|
_mainCtrl.AddEqualParaCurveE(equalCurvesEx[1], false);
|
}
|
else
|
{
|
_mainCtrl.AddEqualParaCurveE(equalCurvesEx[1], true);
|
_mainCtrl.AddEqualParaCurveE(equalCurvesEx[0], false);
|
}
|
}
|
}
|
}
|
|
|
|
|
//理论相似换算计算
|
private string CalcEquipEtaCurve1(double eff, float dispTension, out List<Eventech.Model.CombineCurve> equalCurvesEx)
|
{
|
equalCurvesEx = null;
|
|
if (this._parasCtrl == null)
|
return "";
|
|
|
var min_speed = this.GetMinSpeed();
|
if (min_speed > (this._max_curve_speed - 100))
|
{
|
min_speed = this._max_curve_speed / 2;
|
}
|
|
|
|
Eventech.Model.CombineCurveList equalCurves = null;
|
try
|
{
|
var curve_max_speed_inList = Math.Max(this._max_curve_speed, this.GetMaxSpeed());
|
if (curve_max_speed_inList > this._max_curve_speed)
|
{
|
return ;
|
}
|
|
equalCurves = new Eventech.Model.CombineCurveList(Eventech.Common.EqualParaCurveEListHelper.CalcEqualParaCurveE(_maxSpeedCurveGroups,
|
_max_curve_speed, min_speed, eff, theSimularHelper));
|
|
|
if (equalCurves == null || equalCurves.Count == 0)
|
{
|
return "此效率无法产生等效线";
|
}
|
}
|
catch // (Exception)
|
{
|
return "此效率无法产生等效线";
|
}
|
|
|
equalCurvesEx = new List<Eventech.Model.CombineCurve>();
|
foreach (Eventech.Model.CombineCurve equalCurve in equalCurves)
|
{
|
Eventech.Model.CombineCurve equalCurveEx = new Eventech.Model.CombineCurve();
|
equalCurveEx.DispTension = dispTension;
|
equalCurveEx.IsClosed = equalCurve.IsClosed;
|
equalCurveEx.PointInfo = equalCurve.PointInfo;
|
equalCurveEx.CurvePara = Math.Round(eff, 1);
|
equalCurvesEx.Add(equalCurveEx);
|
}
|
|
|
|
|
return null;
|
}
|