75 lines
1.9 KiB
C++
75 lines
1.9 KiB
C++
#include "rscompcode.h"
|
||
|
||
RSCompCode::RSCompCode()
|
||
{
|
||
|
||
}
|
||
|
||
|
||
void RSCompCode::setXStartPos(double value)
|
||
{
|
||
xStartPos = value;
|
||
}
|
||
|
||
void RSCompCode::setYStartPos(double value)
|
||
{
|
||
yStartPos = value;
|
||
}
|
||
|
||
void RSCompCode::setXInterval(double value)
|
||
{
|
||
xInterval = value;
|
||
}
|
||
void RSCompCode::setYInterval(double value)
|
||
{
|
||
yInterval = value;
|
||
}
|
||
|
||
void RSCompCode::setXWorkRange(double value)
|
||
{
|
||
xWorkRange = value;
|
||
}
|
||
|
||
void RSCompCode::setYWorkRange(double value)
|
||
{
|
||
yWorkRange = value;
|
||
}
|
||
|
||
int RSCompCode::getLookupRows()
|
||
{
|
||
// 比如范围为3,间隔为1,Y方向会有4条线段
|
||
return int(xWorkRange/xInterval)+1;
|
||
}
|
||
|
||
int RSCompCode::getLookupCols()
|
||
{
|
||
return int(yWorkRange/yInterval)+1;
|
||
}
|
||
|
||
|
||
QString RSCompCode::getCode()
|
||
{
|
||
|
||
QString code = QString("global real LookupTable(%1)(%2)\n").arg(getLookupRows()).arg(getLookupCols());
|
||
code +=
|
||
// 设置APOS和RPOS非默认连接
|
||
"MFLAGS(Z).#DEFCON = 0\n"
|
||
"CONNECT RPOS(Z) = RPOS(Z)\n"
|
||
// 执行connect命令后控制其将电机依赖重置为默认值
|
||
// 如果连接公式实际上导致电机依赖于另一轴,则需要重新指定依赖
|
||
"DEPENDS Z, Z\n"+
|
||
// 防止开启补偿的瞬间Z1轴跳动
|
||
//QString("SET APOS(Z) = RPOS(Z) - MAP2(FPOS(Y), FPOS(X), LookupTable, %1, %2, %3, %4)\n").arg(yStartPos-yInterval).arg(yInterval).arg(xStartPos-xInterval).arg(xInterval)+
|
||
//QString("CONNECT RPOS(Z) = APOS(Z) + MAP2(FPOS(Y), FPOS(X), LookupTable,%1, %2, %3, %4)\n").arg(yStartPos-yInterval).arg(yInterval).arg(xStartPos-xInterval).arg(xInterval)+
|
||
QString("SET APOS(Z) = RPOS(Z) - MAP2(FPOS(Y), FPOS(X), LookupTable, %1, %2, %3, %4)\n").arg(yStartPos).arg(yInterval).arg(xStartPos).arg(xInterval)+
|
||
QString("CONNECT RPOS(Z) = APOS(Z) + MAP2(FPOS(Y), FPOS(X), LookupTable,%1, %2, %3, %4)\n").arg(yStartPos).arg(yInterval).arg(xStartPos).arg(xInterval)+
|
||
"DEPENDS Z, Z\n"
|
||
"runF = 1\n"
|
||
"STOP";
|
||
|
||
return code;
|
||
}
|
||
|
||
|
||
|