⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 movetest.cpp

📁 演示vc与专业控制器的连接
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	{
		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 + -