Files
Chenwenxuan edac2715f0 init
2024-03-06 14:54:30 +08:00

75 lines
1.9 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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;
}