using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Drawing;
|
using System.IO;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
|
namespace DPumpHydr.WinFrmUI.Volute
|
{
|
public partial class ctrlHdrBaseInfo : ParasInfoBaseCtrl
|
{
|
public ctrlHdrBaseInfo()
|
{
|
InitializeComponent();
|
BuildAllTips();
|
BuildIcon();
|
labelNs.Text = "";
|
}
|
public void InitialParas()
|
{
|
var hdrBaseInfo = InitialHistoryParas();
|
|
ViewModel.GeomBaseInfo geomBaseInfo = new ViewModel.GeomBaseInfo();
|
geomBaseInfo.Initial(hdrBaseInfo);
|
if (!string.IsNullOrEmpty(
|
DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseB3))
|
{
|
geomBaseInfo.B3 = Convert.ToDouble(DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseB3);
|
}
|
if (!string.IsNullOrEmpty(
|
DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseD3))
|
{
|
geomBaseInfo.D3 = Convert.ToDouble(DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseD3);
|
}
|
|
SetBindingData(geomBaseInfo);
|
}
|
public ViewModel.HdrBaseInfo InitialHistoryParas()
|
{
|
ViewModel.HdrBaseInfo hdrBaseInfo = new ViewModel.HdrBaseInfo();
|
hdrBaseInfo.Q = 250;
|
hdrBaseInfo.H = 20;
|
hdrBaseInfo.n = 1480;
|
hdrBaseInfo.D2 = 270;
|
hdrBaseInfo.B2 = 50;
|
if (!string.IsNullOrEmpty(
|
DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseQ))
|
{
|
hdrBaseInfo.Q = Convert.ToDouble(DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseQ);
|
}
|
if (!string.IsNullOrEmpty(
|
DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseH))
|
{
|
hdrBaseInfo.H = Convert.ToDouble(DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseH);
|
}
|
if (!string.IsNullOrEmpty(
|
DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseN))
|
{
|
hdrBaseInfo.n = Convert.ToDouble(DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseN);
|
}
|
if (!string.IsNullOrEmpty(
|
DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseD2))
|
{
|
hdrBaseInfo.D2 = Convert.ToDouble(DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseD2);
|
}
|
if (!string.IsNullOrEmpty(
|
DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseB2))
|
{
|
hdrBaseInfo.B2 = Convert.ToDouble(DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseB2);
|
}
|
SetBindingData(hdrBaseInfo);
|
|
return hdrBaseInfo;
|
}
|
|
|
public void SetBindingData(ViewModel.HdrBaseInfo vm)
|
{
|
if (vm == null)
|
{
|
return;
|
}
|
this.mTextBoxEdit总流量.Text = vm.Q.ToString();
|
this.mTextBoxEdit扬程.Text = vm.H.ToString();
|
this.mTextBoxEdit转速.Text = vm.n.ToString();
|
this.mTextBoxEdit出口直径D2.Text = vm.D2.ToString();
|
this.mTextBox出口宽度B2.Text = vm.B2.ToString();
|
this.RBtn双吸泵.Checked = vm.IsSXB;
|
}
|
public void SetBindingData(ViewModel.GeomBaseInfo vm)
|
{
|
if (vm == null)
|
{
|
return;
|
}
|
//this.crownLabel比转速.Text = vm.ns.ToString();
|
//this.mTextBoxEdit速度系数.Text = vm.K3.ToString();
|
this.mTextBoxEdit基圆直径D3.Text = vm.D3.ToString();
|
this.mTextBox基圆宽度B3.Text = vm.B3.ToString();
|
this.mTextBoxEdit隔舌安放角.Text = vm.FAI0.ToString();
|
}
|
|
public void SaveHistoryParas(ViewModel.HdrBaseInfo hdrBaseInfo, ViewModel.GeomBaseInfo geomBaseInfo)
|
{
|
if (hdrBaseInfo == null) return;
|
|
DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseQ =
|
hdrBaseInfo.Q.ToString();
|
DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseH =
|
hdrBaseInfo.H.ToString();
|
DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseN =
|
hdrBaseInfo.n.ToString();
|
DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseD2 =
|
hdrBaseInfo.D2.ToString();
|
DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseB2 =
|
hdrBaseInfo.B2.ToString();
|
|
if (geomBaseInfo == null)
|
DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseD3 =
|
geomBaseInfo.D3.ToString();
|
DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.HistoryHdrBaseB3 =
|
geomBaseInfo.B3.ToString();
|
|
DPumpHydr.WinFrmUI.Volute.Properties.Settings.Default.Save();
|
}
|
|
|
public string GetBindingData(
|
out ViewModel.HdrBaseInfo hdrParas,
|
out ViewModel.GeomBaseInfo geomParas)
|
{
|
geomParas = null;
|
hdrParas = null;
|
string error;
|
if (!Verify(out error))
|
{
|
return null;
|
}
|
error = null;
|
|
|
hdrParas = new ViewModel.HdrBaseInfo();
|
|
hdrParas.Q = Convert.ToDouble(this.mTextBoxEdit总流量.Text);
|
hdrParas.H = Convert.ToDouble(this.mTextBoxEdit扬程.Text);
|
hdrParas.n = Convert.ToDouble(this.mTextBoxEdit转速.Text);
|
hdrParas.D2 = Convert.ToDouble(this.mTextBoxEdit出口直径D2.Text);
|
hdrParas.B2 = Convert.ToDouble(this.mTextBox出口宽度B2.Text);
|
hdrParas.IsSXB = this.RBtn双吸泵.Checked;
|
|
|
|
geomParas = new ViewModel.GeomBaseInfo();
|
|
//geomParas.K3 = Convert.ToDouble(this.mTextBoxEdit速度系数.Text);
|
geomParas.D3 = Convert.ToDouble(this.mTextBoxEdit基圆直径D3.Text);
|
geomParas.B3 = Convert.ToDouble(this.mTextBox基圆宽度B3.Text);
|
geomParas.FAI0 = Convert.ToDouble(this.mTextBoxEdit隔舌安放角.Text);
|
return null;
|
}
|
|
|
|
public bool Verify(out string error)
|
{
|
error = "";
|
|
skyLabel总流量.Visible = false;
|
mTextBoxEdit总流量.TrailingIcon = null;
|
|
skyLabel转速.Visible = false;
|
mTextBoxEdit转速.TrailingIcon = null;
|
|
skyLabel扬程.Visible = false;
|
mTextBoxEdit扬程.TrailingIcon = null;
|
|
skyLabel出口直径.Visible = false;
|
mTextBoxEdit出口直径D2.TrailingIcon = null;
|
|
skyLabel出口宽度.Visible = false;
|
mTextBox出口宽度B2.TrailingIcon = null;
|
double v = 0;
|
bool isOk = true;
|
if (string.IsNullOrEmpty(mTextBoxEdit总流量.Text) || mTextBoxEdit总流量.Text == "请输入总流量" ||
|
!double.TryParse(mTextBoxEdit总流量.Text, out v) ||
|
double.Parse(mTextBoxEdit总流量.Text) <= 0)
|
{
|
isOk = false;
|
error = "请输入必填项!";
|
mTextBoxEdit总流量.TrailingIcon = GlobalResource.GetTipTrailingIcon();
|
skyLabel总流量.Text = error;
|
skyLabel总流量.Visible = true;
|
}
|
|
if (string.IsNullOrEmpty(mTextBoxEdit转速.Text) || mTextBoxEdit转速.Text == "请输入转速" ||
|
!double.TryParse(mTextBoxEdit转速.Text, out v) ||
|
double.Parse(mTextBoxEdit转速.Text) <= 0)
|
{
|
isOk = false;
|
error = "请输入必填项!";
|
mTextBoxEdit转速.TrailingIcon = GlobalResource.GetTipTrailingIcon();
|
skyLabel转速.Text = error;
|
skyLabel转速.Visible = true;
|
}
|
if (string.IsNullOrEmpty(mTextBoxEdit扬程.Text) || mTextBoxEdit扬程.Text == "请输入扬程" ||
|
!double.TryParse(mTextBoxEdit扬程.Text, out v) ||
|
double.Parse(mTextBoxEdit扬程.Text) <= 0)
|
{
|
isOk = false;
|
error = "请输入必填项!";
|
mTextBoxEdit扬程.TrailingIcon = GlobalResource.GetTipTrailingIcon();
|
skyLabel扬程.Text = error;
|
skyLabel扬程.Visible = true;
|
}
|
if (string.IsNullOrEmpty(mTextBoxEdit出口直径D2.Text) || mTextBoxEdit出口直径D2.Text == "请输入出口直径" ||
|
!double.TryParse(mTextBoxEdit出口直径D2.Text, out v) ||
|
double.Parse(mTextBoxEdit出口直径D2.Text) <= 0)
|
{
|
isOk = false;
|
error = "请输入必填项!";
|
mTextBoxEdit出口直径D2.TrailingIcon = GlobalResource.GetTipTrailingIcon();
|
skyLabel出口直径.Text = error;
|
skyLabel出口直径.Visible = true;
|
}
|
|
if (string.IsNullOrEmpty(mTextBox出口宽度B2.Text) || mTextBox出口宽度B2.Text == "请输入出口宽度" ||
|
!double.TryParse(mTextBox出口宽度B2.Text, out v) ||
|
double.Parse(mTextBox出口宽度B2.Text) <= 0)
|
{
|
isOk = false;
|
error = "请输入必填项!";
|
mTextBox出口宽度B2.TrailingIcon = GlobalResource.GetTipTrailingIcon();
|
skyLabel出口宽度.Text = error;
|
skyLabel出口宽度.Visible = true;
|
}
|
|
if (string.IsNullOrEmpty(mTextBoxEdit基圆直径D3.Text) ||
|
!double.TryParse(mTextBoxEdit基圆直径D3.Text, out v) ||
|
double.Parse(mTextBoxEdit基圆直径D3.Text) <= 0)
|
{
|
isOk = false;
|
error = "请输入必填项!";
|
mTextBoxEdit基圆直径D3.TrailingIcon = GlobalResource.GetTipTrailingIcon();
|
skyLabel基圆直径.Text = error;
|
skyLabel基圆直径.Visible = true;
|
}
|
|
if (string.IsNullOrEmpty(mTextBox基圆宽度B3.Text) ||
|
!double.TryParse(mTextBox基圆宽度B3.Text, out v) ||
|
double.Parse(mTextBox基圆宽度B3.Text) <= 0)
|
{
|
isOk = false;
|
error = "请输入必填项!";
|
mTextBox基圆宽度B3.TrailingIcon = GlobalResource.GetTipTrailingIcon();
|
skyLabel基圆宽度.Text = error;
|
skyLabel基圆宽度.Visible = true;
|
}
|
|
if (double.Parse(mTextBoxEdit基圆直径D3.Text) <= double.Parse(mTextBoxEdit出口直径D2.Text) + 2)
|
{
|
isOk = false;
|
error = "基圆直径要大于叶轮外径";
|
mTextBoxEdit基圆直径D3.TrailingIcon = GlobalResource.GetTipTrailingIcon();
|
skyLabel基圆直径.Text = error;
|
skyLabel基圆直径.Visible = true;
|
}
|
|
if (double.Parse(mTextBox基圆宽度B3.Text) <= double.Parse(mTextBox出口宽度B2.Text))
|
{
|
isOk = false;
|
error = "基圆宽度要大于叶轮宽度";
|
mTextBox基圆宽度B3.TrailingIcon = GlobalResource.GetTipTrailingIcon();
|
skyLabel基圆宽度.Text = error;
|
skyLabel基圆宽度.Visible = true;
|
}
|
|
return isOk;
|
}
|
|
double ns = 0;
|
private void CalcNs()
|
{
|
if (string.IsNullOrEmpty(this.mTextBoxEdit总流量.Text))
|
return;
|
if (string.IsNullOrEmpty(this.mTextBoxEdit扬程.Text))
|
return;
|
if (string.IsNullOrEmpty(this.mTextBoxEdit转速.Text))
|
return;
|
|
|
|
|
var Q = Convert.ToDouble(this.mTextBoxEdit总流量.Text);
|
var H = Convert.ToDouble(this.mTextBoxEdit扬程.Text);
|
var n = Convert.ToDouble(this.mTextBoxEdit转速.Text);
|
if (Q < 1 || H < 1 || n < 10)
|
{
|
return;
|
}
|
var IsSXB = this.RBtn双吸泵.Checked;
|
|
var calc_q = Q;
|
if (IsSXB) calc_q = Q / 2;
|
ns = Math.Round(3.65 * n * Math.Sqrt(calc_q / 3600) / Math.Pow(H, 0.75), 2);
|
|
labelNs.Text = string.Format(" 比转速:{0}", ns);
|
}
|
|
|
private void BuildIcon()
|
{
|
mTextBoxEdit总流量.LeadingIcon = GlobalResource.GetLeadingIcon();
|
mTextBoxEdit转速.LeadingIcon = GlobalResource.GetLeadingIcon();
|
mTextBoxEdit扬程.LeadingIcon = GlobalResource.GetLeadingIcon();
|
|
mTextBoxEdit出口直径D2.LeadingIcon = GlobalResource.GetLeadingIcon();
|
mTextBox出口宽度B2.LeadingIcon = GlobalResource.GetLeadingIcon();
|
|
//mTextBoxEdit速度系数.LeadingIcon = GlobalResource.GetLeadingIcon();
|
mTextBoxEdit基圆直径D3.LeadingIcon = GlobalResource.GetLeadingIcon();
|
mTextBox基圆宽度B3.LeadingIcon = GlobalResource.GetLeadingIcon();
|
}
|
|
private void BuildAllTips()
|
{
|
//metroToolTip提示.SetToolTip(this.RBtn螺旋型, "螺旋型");
|
//metroToolTip提示.SetToolTip(this.RBtn双蜗壳型, "双蜗壳型");
|
//metroToolTip提示.SetToolTip(this.RBtn环型, "环型");
|
//metroToolTip提示.SetToolTip(this.RBtn准螺旋型, "准螺旋型");
|
|
//metroToolTip提示.SetToolTip(this.mTextBoxEdit总流量, "总流量");
|
//metroToolTip提示.SetToolTip(this.mTextBoxEdit转速, "转速");
|
//metroToolTip提示.SetToolTip(this.mTextBoxEdit扬程, "扬程");
|
//metroToolTip提示.SetToolTip(this.mTextBoxEdit出口直径, "出口直径");
|
//metroToolTip提示.SetToolTip(this.mTextBoxEdit出口宽度, "出口宽度");
|
|
//metroToolTip提示.SetToolTip(this.mTextBoxEdit基圆直径, "D3 解释");
|
//metroToolTip提示.SetToolTip(this.mTextBoxEdit基圆宽度, "b3 解释");
|
}
|
|
private void pictureBox1_Click(object sender, EventArgs e)
|
{
|
if (string.IsNullOrEmpty(mTextBox出口宽度B2.Text))
|
return;
|
var b2 = double.Parse(mTextBox出口宽度B2.Text);
|
double b3 = 0;
|
if (b2 <= 7)
|
b3 = b2 * 3;
|
if (b2 <= 32 && b2 > 7)
|
b3 = b2 * 2;
|
if (b2 > 32 && b2 <= 60)
|
b3 = b2 * 1.5;
|
if (b2 > 60)
|
b3 = b2 * 1.2;
|
|
mTextBox基圆宽度B3.Text = b3.ToString();
|
|
if (string.IsNullOrEmpty(mTextBoxEdit出口直径D2.Text))
|
return;
|
double D2 = double.Parse(mTextBoxEdit出口直径D2.Text);
|
double D3 = (int)(1.05 * D2);
|
mTextBoxEdit基圆直径D3.Text = D3.ToString();
|
|
//计算并设置FAIO
|
double FAI0 = 0, FAI0min, FAI0max;
|
if (ns < 100)
|
{
|
FAI0 = 25 + (int)(ns / 20);
|
FAI0min = 25.0;
|
FAI0max = 30.0;
|
}
|
if (ns >= 100 && ns < 200)
|
{
|
FAI0 = 30 + (int)((ns - 100) / 12.5);
|
FAI0min = 30.0;
|
FAI0max = 38.0;
|
}
|
if (ns >= 200 && ns < 300)
|
{
|
FAI0 = 38 + (int)((ns - 200) / 50);
|
FAI0min = 38.0;
|
FAI0max = 40.0;
|
}
|
if (ns > 300)
|
{
|
FAI0 = 42;
|
FAI0min = 40.0;
|
FAI0max = 45.0;
|
}
|
|
mTextBoxEdit隔舌安放角.Text = FAI0.ToString();
|
}
|
|
private void mTextBoxEdit总流量_TextChanged(object sender, EventArgs e)
|
{
|
CalcNs();
|
}
|
|
private void mTextBoxEdit扬程_TextChanged(object sender, EventArgs e)
|
{
|
CalcNs();
|
}
|
|
private void mTextBoxEdit转速_TextChanged(object sender, EventArgs e)
|
{
|
CalcNs();
|
}
|
|
private void RBtn双吸泵_CheckedChanged(object sender)
|
{
|
CalcNs();
|
}
|
|
private void btnNextStep_Click(object sender, EventArgs e)
|
{
|
NextStep();
|
}
|
}
|
}
|