📄 elctricmachinedlg.cpp
字号:
if(cx>=cx0)
{dc.MoveTo(cx0,cy0); dc.LineTo(cx,cy);} //dc.Ellipse(cx0-3,cy0-3,cx+2,cy+3);//dc.LineTo(cx,cy);
else {dc.MoveTo(cx0,cy0); dc.LineTo(cx,cy);}//dc.Ellipse(cx-4,cy-3,cx0+4,cy0+3);
}
switch(txbz)
{
case 0: //自然特性
{if(cx>=cx0) s=s-0.00999;
else s=s-0.0009998;
if(s<0.00005)
{
dc.LineTo(0,cy);
OnStopFZ();
}
break;
}
case 1: //回馈制动
{if(cx>=cx0) s=s-0.00999;
else s=s-0.0009998;
if((-Tem)>(-TL))
{
//dc.LineTo(0,cy);
OnStopFZ();
}
break;
}
case 2: //倒拉反转
{if(cx>=cx0) s=s+0.009;
else s=s+0.009998;
if(Tem>TL)
{
//dc.LineTo(0,cy);
OnStopFZ();
}
break;
}
case 3: //电压反接制动
{ s=s-0.0019998;
if(s<1)
{
//dc.LineTo(0,cy);
OnStopFZ();
}
break;
}
case 4: //nh制动
{n=n-10;//s=s-100;
if(n<=1)
{
//dc.LineTo(0,cy);
OnStopFZ();
}
break;
}
default: break;
}
cx0=cx;
cy0=cy;
dc.SelectObject(oldPen);
dc.SelectObject(oldbrush);
CDialog::OnTimer(nIDEvent);
}
void CElctricmachineDlg::OnStopFZ()
{
// TODO: Add your control notification handler code here
KillTimer(2);
KillTimer(3);
KillTimer(4);
// UpdateData(TRUE);
// UpdateData(FALSE);
}
void CElctricmachineDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
// OnCancel();
CDialog::OnClose();
}
void CElctricmachineDlg::OnNhzd()
{
// TODO: Add your control notification handler code here
OnDraw();
UpdateData(TRUE);
m_r2=15;
yudrawNH();
// m_r2=5;
txbz=4;
color1=50;
color2=250;
KillTimer(2);
SetTimer(2,10,NULL);
KillTimer(3);
SetTimer(3,10,NULL);
KillTimer(4);
SetTimer(4,10,NULL);
n=(1-0.03866*m_TLBZ)*1500;
jsnT(m_r2);
// if(m_select==0){Tem=-Tem;n=-n;}//判断是否反转
// m_tem=Tem;
m_djn=n;
UpdateData(FALSE);
CString str;
str.Format("%f",Tem);
this->SetDlgItemText(IDC_TEM,str);
int cx,cy;
cx=TL*KX;
cy=(1-0.03866*m_TLBZ)*1500*KY;
cy=-cy;
cx0=cx;
cy0=cy;
}
void CElctricmachineDlg::OnDyfj()
{
// TODO: Add your control notification handler code here
OnDraw();
UpdateData(TRUE);
m_r2=5;
yudrawDYFJ();
// m_r2=5;
txbz=3;
color1=200;
color2=200;
KillTimer(2);
SetTimer(2,10,NULL);
KillTimer(3);
SetTimer(3,10,NULL);
KillTimer(4);
SetTimer(4,10,NULL);
s=2-0.03866*m_TLBZ;
jsnT(m_r2);
// if(m_select==0){Tem=-Tem;n=-n;}//判断是否反转
// m_tem=TL;
m_djn=n;
UpdateData(FALSE);
CString str;
str.Format("%f",TL);
this->SetDlgItemText(IDC_TEM,str);
int cx,cy;
cx=TL*KX;
cy=(1-0.03866*m_TLBZ)*1500*KY;
cy=-cy;
cx0=cx;
cy0=cy;
}
void CElctricmachineDlg::OnDlfz()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_r2=100;
s=2;
yudraw();
drawFZ(rect.Height()/2);// -400);
s=1.0;
// m_r2=80;
txbz=2;
color1=200;
color2=200;
KillTimer(2);
SetTimer(2,10,NULL);
KillTimer(3);
SetTimer(3,10,NULL);
KillTimer(4);
SetTimer(4,10,NULL);
jsnT(m_r2);
// if(m_select==1){Tem=-Tem;n=-n;}//判断是否反转
// m_tem=Tem;
m_djn=n;
UpdateData(FALSE);
CString str;
str.Format("%f",Tem);
this->SetDlgItemText(IDC_TEM,str);
int cx,cy;
cx=Tem*KX;
cy=n*KY;
cy=-cy;//rect.Height()/2-cy;
cx0=cx;
cy0=cy;
}
void CElctricmachineDlg::jsnT(float r2)
{
if(txbz==4)
{
Tem=-0.5*n/m_r2;
// n=s;
return;
}
float k1,k2,k3;
k1=2757.92;
k2=(2.38+r2)/s;
k3=(2.83+(2.38+r2)/s)*(2.83+(2.38+r2)/s)+174.24;
Tem=k1*k2/k3;
n=(1-s)*1500;
}
void CElctricmachineDlg::OnZxdd()
{
// TODO: Add your control notification handler code here
// m_select=0;
}
void CElctricmachineDlg::OnFxdd()
{
// TODO: Add your control notification handler code here
// m_select=1;
}
void CElctricmachineDlg::yudraw()
{
// UpdateData(TRUE);
int cx,cy;
// s=1.0;
CClientDC dc(GetDlgItem(IDC_EDIT1));//获得编辑框句柄
CPen drawpen;
drawpen.CreatePen(PS_SOLID,6,RGB(0,99,255));
oldPen=dc.SelectObject(&drawpen);
DeleteObject(&drawpen);
dc.SetMapMode(MM_TEXT);//设置映射模式和原点
dc.SetViewportOrg(rect.Width()/2 ,rect.Height()/2);
jsnT(m_r2);
cx=Tem*KX;
cy=n*KY;
cy=-cy;//rect.Height()/2-cy;
s=s-0.0099;
dc.MoveTo(cx,cy);
for(;s>=0.00005;s=s-0.0099)
{
jsnT(m_r2);
cx=Tem*KX;
cy=n*KY;
cy=-cy;//rect.Height()/2-cy;
// m_tem=Tem;
m_djn=n;
UpdateData(FALSE);
CString str;
str.Format("%f",Tem);
this->SetDlgItemText(IDC_TEM,str);
// if((cx<960)&&(cy<340))
{
dc.LineTo(cx,cy);
}
}
dc.LineTo(0,cy);
dc.SelectObject(oldPen);
}
void CElctricmachineDlg::drawFZ(int y0)
{
int cx;
CClientDC dc(GetDlgItem(IDC_EDIT1));//获得编辑框句柄
CPen drawpen;
drawpen.CreatePen(PS_SOLID,5,RGB(0,0,0));
oldPen=dc.SelectObject(&drawpen);
DeleteObject(&drawpen);
dc.SetMapMode(MM_TEXT);//设置映射模式和原点
dc.SetViewportOrg(rect.Width()/2,rect.Height()/2);//cy)
s=0.03866;
jsnT(0.0);
TL=Tem*m_TLBZ;
// cy=n/6;
// if(Tem<TL)
// {
// MessageBox("起动转矩太小,只能空载起动!","信息",MB_OK);
// TL=3;
//// dc.MoveTo(24,0);
// dc.LineTo(24,340);
// }
// else
{
dc.MoveTo(TL*KX,0);
dc.LineTo(TL*KX,y0);
}
dc.SelectObject(oldPen);
}
void CElctricmachineDlg::yudrawFD()
{
int cx,cy;
s=1.0;
CClientDC dc(GetDlgItem(IDC_EDIT1));//获得编辑框句柄
CPen drawpen;
drawpen.CreatePen(PS_SOLID,6,RGB(0,200,55));
oldPen=dc.SelectObject(&drawpen);
DeleteObject(&drawpen);
dc.SetMapMode(MM_TEXT);//设置映射模式和原点
dc.SetViewportOrg(rect.Width()/2 ,rect.Height()/2);
jsnT(m_r2);
cx=Tem*KX;
cy=n*KY;
cy=-cy;//rect.Height()/2-cy;
s=s-0.0099;
dc.MoveTo(cx,cy);
for(;s>=-0.08;s=s-0.0099)
{
jsnT(m_r2);
cx=Tem*KX;
cy=n*KY;
cy=-cy;//rect.Height()/2-cy;
// m_tem=Tem;
m_djn=n;
UpdateData(FALSE);
CString str;
str.Format("%f",Tem);
this->SetDlgItemText(IDC_TEM,str);
// if((cx<960)&&(cy<340))
{
dc.LineTo(cx,cy);
}
}
// dc.LineTo(0,cy);
dc.SelectObject(oldPen);
}
void CElctricmachineDlg::yudrawDYFJ()
{
int cx,cy;
s=0;
CClientDC dc(GetDlgItem(IDC_EDIT1));//获得编辑框句柄
CPen drawpen;
drawpen.CreatePen(PS_SOLID,6,RGB(0,99,255));
oldPen=dc.SelectObject(&drawpen);
DeleteObject(&drawpen);
dc.SetMapMode(MM_TEXT);//设置映射模式和原点
dc.SetViewportOrg(rect.Width()/2 ,rect.Height()/2);
jsnT(m_r2);
cx=-Tem*KX;
cy=n*KY;
// cy=rect.Height()/2-cy;
s=s+0.0099;
dc.MoveTo(cx,cy);
for(;s<=2;s=s+0.0099)
{
jsnT(m_r2);
cx=-Tem*KX;
cy=n*KY;
// cy=rect.Height()/2-cy;
// m_tem=-Tem;
// m_djn=-n;
// UpdateData(FALSE);
// if((cx<960)&&(cy<340))
{
dc.LineTo(cx,cy);
}
}
// dc.LineTo(0,cy);
dc.SelectObject(oldPen);
}
void CElctricmachineDlg::yudrawNH()
{
int cx,cy;
// s=0;
CClientDC dc(GetDlgItem(IDC_EDIT1));//获得编辑框句柄
CPen drawpen;
drawpen.CreatePen(PS_SOLID,6,RGB(100,99,200));
oldPen=dc.SelectObject(&drawpen);
DeleteObject(&drawpen);
dc.SetMapMode(MM_TEXT);//设置映射模式和原点
dc.SetViewportOrg(rect.Width()/2 ,rect.Height()/2);
Tem=0.5*1800/m_r2;
n=1800;
// cx=-Tem*4;
// cy=n/6;
cx=-Tem*KX;
cy=n*KY;
cy=-cy;
dc.MoveTo(0,0);
dc.LineTo(cx,cy);
dc.SelectObject(oldPen);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -