This commit is contained in:
Chenwenxuan
2024-03-06 14:54:30 +08:00
commit edac2715f0
1525 changed files with 809982 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
#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间隔为1Y方向会有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;
}