- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字控制技术实验报告插补程序
数字控制技术实验程序插补效果图
{
// TODO: Add your control notification handler code here
int Fline1=0;
int xoLine1=0;
int yoLine1=0; //初始值设定
int xeLine1=5;
int yeLine1=3; //终点值坐标
SetOrgPoint(0,0); //设置初始坐标
int NLine1=abs(xeLine1-xoLine1)+abs(yeLine1-yoLine1);
//总步数
for(int i=1;i=NLine1;i++)
{
if(Fline1=0){ //在直线上方或直线上
AddXRun();
Fline1=Fline1-yeLine1;
checkall();
}
else{ //在直线下方
AddYRun();
Fline1=Fline1+xeLine1;
checkall();
}
}
StartVCB();
}
void CDLGLTMEC_VCB::OnBnLtmecVcbRn() //圆弧插补
{
//请在下面添加差补算法程序
int FRound1=0;
int xoRound1=4; //初始值设定
int yoRound1=0;
int xeRound1=0;
int yeRound1=4; //终点值坐标
SetOrgPoint(4,0); //设置初始坐标
int NRound1=abs(xeRound1-xoRound1)+abs(yeRound1-yoRound1);
//总步数
for(int i=1;i=NRound1;i++)
{
if(FRound1=0){ //在圆外侧或圆上
MinusXRun();
FRound1=FRound1-2*xoRound1+1;
checkall();
xoRound1=xoRound1-1;
}
else{ //在圆内
AddYRun();
FRound1=FRound1+2*yoRound1+1;
checkall();
yoRound1=yoRound1+1;
}
}
//有待发送消息,以下代码请勿改动
StartVCB();
}
void CDLGLTMEC_VCB::OnBnLtmecVcbLd() //DDA直线插补
{
//请在下面添加差补算法程序
int xoLine2=0;
int yoLine2=0; //初始值设定
int xeLine2=5;
int yeLine2=4; //终点值坐标
SetOrgPoint(0,0); //设置初始坐标
int JvxLine=xeLine2;
int JvyLine=yeLine2;//被积函数寄存器
int JrxLine=0;
int JryLine=0; //累加器
int LineEnd=8; //终点判别
while(LineEnd!=0)
{
JrxLine=JrxLine+JvxLine;
if(JrxLine=LineEndJryLine=LineEnd){
//是否需要同时进给
AddXRun();
AddYRun();
checkall();
}
else{
if(JrxLine=LineEnd){ //X方向累加器是否溢出
AddXRun();
checkall();
}
JryLine=JryLine+JvyLine;
if(JryLine=LineEnd){ //Y方向累加器是否溢出
AddYRun();
checkall();
}
}
LineEnd=LineEnd-1;
}
//有待发送消息,以下代码请勿改动
StartVCB();
}
void CDLGLTMEC_VCB::OnBnLtmecVcbRd() //DDA圆弧插补
{
//请在下面添加差补算法程序
int xoRound2=5;
int yoRound2=0; //初始值设定
int xeRound2=0;
int yeRound2=5; //终点值坐标
SetOrgPoint(5,0); //设置初始坐标
int JvxRound=xeRound2;
int JvyRound=yeRound2;//被积函数寄存器
int JrxRound=0;
int JryRound=0;
文档评论(0)