📄 movetest.cpp
字号:
{
GetDlgItem(IDC_STATIC_HIGHSPEED)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_ACCEL)->ShowWindow(SW_HIDE);
}
}
//////////////////////////////////////////////////////////////////////////
//函数功能:显示直线运动为四轴时的运动界面
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnRadFouraxis()
{
// TODO: Add your control notification handler code here
m_nLineMoveNum=4;
GetDlgItem(IDC_STATIC_AXISNUM)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_LOWSPEED)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_STEP)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_XAXIS)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_XLOWSPD)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_XSTEP)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_YAXIS)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_YLOWSPD)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_YSTEP)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_ZAXIS)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_ZLOWSPD)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_ZSTEP)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_AAXIS)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_ALOWSPD)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_ASTEP)->ShowWindow(SW_SHOW);
if(m_nLineMoveType==1)
{
GetDlgItem(IDC_EDIT_XHIGHSPD)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_XACCEL)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_YHIGHSPD)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_YACCEL)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_ZHIGHSPD)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_ZACCEL)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_AHIGHSPD)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_AACCEL)->ShowWindow(SW_SHOW);
}
else
{
GetDlgItem(IDC_EDIT_XHIGHSPD)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_XACCEL)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_YHIGHSPD)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_YACCEL)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_ZHIGHSPD)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_ZACCEL)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_AHIGHSPD)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_AACCEL)->ShowWindow(SW_HIDE);
}
if(m_nLineMoveType==1)
{
GetDlgItem(IDC_STATIC_HIGHSPEED)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_ACCEL)->ShowWindow(SW_SHOW);
}
else
{
GetDlgItem(IDC_STATIC_HIGHSPEED)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_ACCEL)->ShowWindow(SW_HIDE);
}
}
//////////////////////////////////////////////////////////////////////////
//函数功能:显示直线插补运动为常速时的运动界面
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnRadLconspeed()
{
// TODO: Add your control notification handler code here
m_nLineChaType=0;
GetDlgItem(IDC_STATIC_LHIGHSPD)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_LACCEL)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_LHIGHSPD)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_LACCEL)->ShowWindow(SW_HIDE);
}
//////////////////////////////////////////////////////////////////////////
//函数功能:显示直线插补运动为快速时的运动界面
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnRadLfastdpeed()
{
// TODO: Add your control notification handler code here
m_nLineChaType=1;
GetDlgItem(IDC_STATIC_LHIGHSPD)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_LACCEL)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_LHIGHSPD)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_LACCEL)->ShowWindow(SW_SHOW);
}
//////////////////////////////////////////////////////////////////////////
//函数功能:显示直线插补运动为两轴时的运动界面
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnRadLtwonum()
{
// TODO: Add your control notification handler code here
m_nLineChaNum=0;
GetDlgItem(IDC_EDIT_LZAXIS)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_LAAXIS)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_LZSTEP)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_LASTEP)->ShowWindow(SW_HIDE);
}
//////////////////////////////////////////////////////////////////////////
//函数功能:显示直线插补运动为三轴时的运动界面
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnRadLthreenum()
{
// TODO: Add your control notification handler code here
m_nLineChaNum=1;
GetDlgItem(IDC_EDIT_LZAXIS)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_LAAXIS)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_LZSTEP)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_LASTEP)->ShowWindow(SW_HIDE);
}
//////////////////////////////////////////////////////////////////////////
//函数功能:显示直线插补运动为四轴时的运动界面
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnRadLfournum()
{
// TODO: Add your control notification handler code here
m_nLineChaNum=2;
GetDlgItem(IDC_EDIT_LZAXIS)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_LAAXIS)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_LZSTEP)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_LASTEP)->ShowWindow(SW_SHOW);
}
//////////////////////////////////////////////////////////////////////////
//函数功能:显示圆弧插补运动为常速时的运动界面
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnRadClconspeed()
{
// TODO: Add your control notification handler code here
m_nCircleMoveType=0;
GetDlgItem(IDC_STATIC_CLHIGHSPD)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_CLACCEL)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_CLHIGHSPD)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_CLACCEL)->ShowWindow(SW_HIDE);
}
//////////////////////////////////////////////////////////////////////////
//函数功能:显示圆弧插补运动为快速时的运动界面
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnRadClfastdpeed()
{
// TODO: Add your control notification handler code here
m_nCircleMoveType=1;
GetDlgItem(IDC_STATIC_CLHIGHSPD)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_CLACCEL)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_CLHIGHSPD)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_CLACCEL)->ShowWindow(SW_SHOW);
}
//////////////////////////////////////////////////////////////////////////
//函数功能:实现要求运动规律的运动
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnBtnRun()
{
// TODO: Add your control notification handler code here
int dirx,diry,dirz,dira;
ChangeData();
set_conspeed(m_nXAxisNum,m_dbXLowSpeed);
set_conspeed(m_nYAxisNum,m_dbYLowSpeed);
set_conspeed(m_nZAxisNum,m_dbZLowSpeed);
set_conspeed(m_nAAxisNum,m_dbALowSpeed);
set_maxspeed(m_nXAxisNum,m_dbXHighSpeed);
set_maxspeed(m_nYAxisNum,m_dbYHighSpeed);
set_maxspeed(m_nZAxisNum,m_dbZHighSpeed);
set_maxspeed(m_nAAxisNum,m_dbAHighSpeed);
if(m_dbXStep>0)
{
dirx=1;
}
else
{
dirx=-1;
}
if(m_dbYStep>0)
{
diry=1;
}
else
{
diry=-1;
}
if(m_dbZStep>0)
{
dirz=1;
}
else
{
dirz=-1;
}
if(m_dbAStep>0)
{
dira=1;
}
else
{
dira=-1;
}
if(m_nSelect==0)
{
if(m_nLineMoveType==0)
{
if(m_nLineMoveStyle==0)
{
if(m_nLineMoveNum==1)
{
con_pmove(m_nXAxisNum,m_dbXStep);
}
else if(m_nLineMoveNum==2)
{
con_pmove(m_nXAxisNum,m_dbXStep);
con_pmove(m_nYAxisNum,m_dbYStep);
}
else if(m_nLineMoveNum==3)
{
con_pmove(m_nXAxisNum,m_dbXStep);
con_pmove(m_nYAxisNum,m_dbYStep);
con_pmove(m_nZAxisNum,m_dbZStep);
}
else if(m_nLineMoveNum==4)
{
con_pmove(m_nXAxisNum,m_dbXStep);
con_pmove(m_nYAxisNum,m_dbYStep);
con_pmove(m_nZAxisNum,m_dbZStep);
con_pmove(m_nAAxisNum,m_dbAStep);
}
}
else if(m_nLineMoveStyle==1)
{
if(m_nLineMoveNum==1)
{
con_vmove(m_nXAxisNum,dirx);
}
else if(m_nLineMoveNum==2)
{
con_vmove(m_nXAxisNum,dirx);
con_vmove(m_nYAxisNum,diry);
}
else if(m_nLineMoveNum==3)
{
con_vmove(m_nXAxisNum,dirx);
con_vmove(m_nYAxisNum,diry);
con_vmove(m_nZAxisNum,dirz);
}
else if(m_nLineMoveNum==4)
{
con_vmove(m_nXAxisNum,dirx);
con_vmove(m_nYAxisNum,diry);
con_vmove(m_nZAxisNum,dirz);
con_vmove(m_nAAxisNum,dira);
}
}
}
else
{
set_profile(m_nXAxisNum,m_dbXLowSpeed,m_dbXHighSpeed,m_dbXaccel);
set_profile(m_nYAxisNum,m_dbYLowSpeed,m_dbYHighSpeed,m_dbYaccel);
set_profile(m_nZAxisNum,m_dbZLowSpeed,m_dbZHighSpeed,m_dbZaccel);
set_profile(m_nAAxisNum,m_dbALowSpeed,m_dbAHighSpeed,m_dbAaccel);
if(m_nLineMoveStyle==0)
{
if(m_nLineMoveNum==1)
{
fast_pmove(m_nXAxisNum,m_dbXStep);
}
else if(m_nLineMoveNum==2)
{
fast_pmove(m_nXAxisNum,m_dbXStep);
fast_pmove(m_nYAxisNum,m_dbYStep);
}
else if(m_nLineMoveNum==3)
{
fast_pmove(m_nXAxisNum,m_dbXStep);
fast_pmove(m_nYAxisNum,m_dbYStep);
fast_pmove(m_nZAxisNum,m_dbZStep);
}
else if(m_nLineMoveNum==4)
{
fast_pmove(m_nXAxisNum,m_dbXStep);
fast_pmove(m_nYAxisNum,m_dbYStep);
fast_pmove(m_nZAxisNum,m_dbZStep);
fast_pmove(m_nAAxisNum,m_dbAStep);
}
}
else if(m_nLineMoveStyle==1)
{
if(m_nLineMoveNum==1)
{
fast_vmove(m_nXAxisNum,dirx);
}
else if(m_nLineMoveNum==2)
{
fast_vmove(m_nXAxisNum,dirx);
fast_vmove(m_nYAxisNum,diry);
}
else if(m_nLineMoveNum==3)
{
fast_vmove(m_nXAxisNum,dirx);
fast_vmove(m_nYAxisNum,diry);
fast_vmove(m_nZAxisNum,dirz);
}
else if(m_nLineMoveNum==4)
{
fast_vmove(m_nXAxisNum,dirx);
fast_vmove(m_nYAxisNum,diry);
fast_vmove(m_nZAxisNum,dirz);
fast_vmove(m_nAAxisNum,dira);
}
}
}
}
else if(m_nSelect==1)
{
set_vector_conspeed(m_dbLLowSpeed);
if(m_nLineChaType==0)
{
if(m_nLineChaNum==0)
{
con_line2(m_nLXaxisNum,m_dbLXstep,m_nLYaxisNum,m_dbLYstep);
}
else if(m_nLineChaNum==1)
{
con_line3(m_nLXaxisNum,m_dbLXstep,m_nLYaxisNum,m_dbLYstep,m_nLZaxisNum,m_dbLZstep);
}
else if(m_nLineChaNum==2)
{
con_line4(m_nLXaxisNum,m_dbLXstep,m_nLYaxisNum,m_dbLYstep,m_nLZaxisNum,m_dbLZstep,m_nLAaxisNum,m_dbLAstep);
}
}
else
{
set_vector_profile(m_dbLLowSpeed,m_dbLHighSpeed,m_dbLaccel);
if(m_nLineChaNum==0)
{
fast_line2(m_nLXaxisNum,m_dbLXstep,m_nLYaxisNum,m_dbLYstep);
}
else if(m_nLineChaNum==1)
{
fast_line3(m_nLXaxisNum,m_dbLXstep,m_nLYaxisNum,m_dbLYstep,m_nLZaxisNum,m_dbLZstep);
}
else if(m_nLineChaNum==2)
{
fast_line4(m_nLXaxisNum,m_dbLXstep,m_nLYaxisNum,m_dbLYstep,m_nLZaxisNum,m_dbLZstep,m_nLAaxisNum,m_dbLAstep);
}
}
}
else if(m_nSelect==2)
{
set_arc_precision(m_dbCircleJingDu);
set_ellipse_ratio(m_dbCirclebili);
if(m_nCircleMoveType==0)
{
set_vector_conspeed(m_dbCircleLowSpeed);
arc_center(m_nCircleXAxis,m_nCircleYAxis,m_dbCircleXorign,m_dbCircleYorign,m_dbCircleAngle);
}
else
{
set_vector_profile(m_dbCircleLowSpeed,m_dbCircleHighSpeed,m_dbCircleAccel);
fast_arc_center(m_nCircleXAxis,m_nCircleYAxis,m_dbCircleXorign,m_dbCircleYorign,m_dbCircleAngle);
}
}
}
//////////////////////////////////////////////////////////////////////////
//函数功能:运动参数的转换
//////////////////////////////////////////////////////////////////////////
void CMoveTest::ChangeData()
{
UpdateData();
//直线运动转换
m_dbALowSpeed=atof(m_sALowSpeed);
m_dbAHighSpeed=atof(m_sAStep);
m_dbAStep=atof(m_sAStep);
m_nAAxisNum=atoi(m_sAAxisNum);
m_dbAaccel=atof(m_sAAccel);
m_dbXaccel=atof(m_sXaccel);
m_nXAxisNum=atoi(m_sXAxisNum);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -