142 lines
3.6 KiB
C++
142 lines
3.6 KiB
C++
#include "mhcompcode.h"
|
||
#include <QString>
|
||
|
||
MHCompCode::MHCompCode()
|
||
{
|
||
|
||
}
|
||
|
||
|
||
void MHCompCode::setXStartPos(double value)
|
||
{
|
||
xStartPos = value;
|
||
}
|
||
|
||
void MHCompCode::setYStartPos(double value)
|
||
{
|
||
yStartPos = value;
|
||
}
|
||
|
||
void MHCompCode::setXWorkRange(double value)
|
||
{
|
||
xWorkRange = value;
|
||
}
|
||
|
||
void MHCompCode::setYWorkRange(double value)
|
||
{
|
||
yWorkRange = value;
|
||
}
|
||
|
||
void MHCompCode::setXInterval(double value)
|
||
{
|
||
xInterval = value;
|
||
}
|
||
void MHCompCode::setYInterval(double value)
|
||
{
|
||
yInterval = value;
|
||
}
|
||
|
||
int MHCompCode::getLookupRows()
|
||
{
|
||
// 比如范围为3,间隔为1,Y方向会有4条线段
|
||
return int(xWorkRange/xInterval)+1;
|
||
}
|
||
|
||
int MHCompCode::getLookupCols()
|
||
{
|
||
return int(yWorkRange/yInterval)+1;
|
||
}
|
||
|
||
|
||
void MHCompCode::setMHRHYOffset(double value)
|
||
{
|
||
MHRHYOffset = value;
|
||
}
|
||
void MHCompCode::setMHRHXOffset(double value)
|
||
{
|
||
MHRHXOffset = value;
|
||
}
|
||
|
||
|
||
void MHCompCode::setLookupRows(int value)
|
||
{
|
||
rows = value;
|
||
}
|
||
void MHCompCode::setLookupCols(int value)
|
||
{
|
||
cols = value;
|
||
}
|
||
QString MHCompCode::getCode()
|
||
{
|
||
QString code = QString("global real LookupTable(%1)(%2),xStart,yStart\n").arg(rows).arg(cols);
|
||
code+=
|
||
"MFLAGS(Z).#DEFCON = 0\n"
|
||
"CONNECT RPOS(Z) = RPOS(Z)\n"
|
||
"DEPENDS Z, Z\n"+
|
||
//QString("SET APOS(Z) = RPOS(Z) - MAP2(FPOS(Y), FPOS(X), LookupTable, %1, %2, %3, %4)\n").arg(yStartPos+MHRHYOffset-yInterval).arg(yInterval).arg(xStartPos+MHRHXOffset-xInterval).arg(xInterval)+
|
||
//QString("CONNECT RPOS(Z) = APOS(Z) + MAP2(FPOS(Y), FPOS(X), LookupTable, %1, %2, %3, %4)\n").arg(yStartPos+MHRHYOffset-yInterval).arg(yInterval).arg(xStartPos+MHRHXOffset-xInterval).arg(xInterval)+
|
||
//QString("SET APOS(Z) = RPOS(Z) - MAP2(FPOS(Y), FPOS(X), LookupTable, %1, %2, %3, %4)\n").arg(yStartPos+MHRHYOffset).arg(yInterval).arg(xStartPos+MHRHXOffset).arg(xInterval)+
|
||
//QString("CONNECT RPOS(Z) = APOS(Z) + MAP2(FPOS(Y), FPOS(X), LookupTable, %1, %2, %3, %4)\n").arg(yStartPos+MHRHYOffset).arg(yInterval).arg(xStartPos+MHRHXOffset).arg(xInterval)+
|
||
QString("SET APOS(Z) = RPOS(Z) - MAP2(FPOS(X), FPOS(Y), LookupTable, %1, %2, %3, %4)\n").arg(xStartPos+MHRHXOffset).arg(xInterval).arg(yStartPos+MHRHYOffset).arg(yInterval)+
|
||
QString("CONNECT RPOS(Z) = APOS(Z) + MAP2(FPOS(X), FPOS(Y), LookupTable, %1, %2, %3, %4)\n").arg(xStartPos+MHRHXOffset).arg(xInterval).arg(yStartPos+MHRHYOffset).arg(yInterval)+
|
||
|
||
"DEPENDS Z, Z\n"
|
||
"runF = 1\n"
|
||
"STOP";
|
||
return code;
|
||
}
|
||
|
||
QString MHCompCode::getCode_motion()
|
||
{
|
||
QString code = QString("GLOBAL REAL MAXINlhc=%1,MAXPOS_Xlhc=%2,MINPOS_Xlhc=%3,X_OFFSETlhc=%4,myRange\n").arg(MaxCmp).arg(MaxPos_x).arg(MinPos_x).arg(x_offset);
|
||
code+=
|
||
"GLOBAL REAL XPOINT(10000),ERR_Z1(10000)\n"
|
||
"REAL tmp_data\n"
|
||
"INT i,flag,count_data\n"
|
||
"i=9999\n"
|
||
"FILL(0,ERR_Z1,0,9999)\n"
|
||
"FILL(MINPOS_Xlhc,XPOINT,0,9999)\n"
|
||
"tmp_data=0;count_data=0\n"
|
||
"MFLAGS(Z).17=0\n"
|
||
"CONNECT RPOS(Z)=APOS(Z)+MAPNS((FPOS(X)+X_OFFSETlhc),XPOINT,ERR_Z1)\n"
|
||
"DEPENDS Z, Z\n"
|
||
"WHILE 1\n"
|
||
"IF FPOS(X)>MINPOS_Xlhc & FPOS(X)<MAXPOS_Xlhc\n"
|
||
"IF MST(X).#MOVE & RVEL(X) < 0\n"
|
||
"XPOINT(i)=FPOS(X); myRange=RangeV\n"
|
||
"IF ABS(myRange)>MAXINlhc\n"
|
||
"if i<9999\n"
|
||
"myRange=ERR_Z1(i+1)\n"
|
||
"else\n"
|
||
"myRange=tmp_data\n"
|
||
"end\n"
|
||
"ELSE\n"
|
||
"IF count_data<1\n"
|
||
"tmp_data=myRange\n"
|
||
"count_data=count_data+1\n"
|
||
"END\n"
|
||
"END\n"
|
||
"ERR_Z1(i)=myRange\n"
|
||
"i=i-1\n"
|
||
"if i<0\n"
|
||
"i=0\n"
|
||
"END\n"
|
||
"END\n"
|
||
"END\n"
|
||
"IF FPOS(X)>MAXPOS_Xlhc\n"
|
||
"i=9999\n"
|
||
"count_data=0\n"
|
||
"FILL(tmp_data,ERR_Z1,0,9999)\n"
|
||
"FILL(MINPOS_Xlhc,XPOINT,0,9999)\n"
|
||
"END\n"
|
||
"END\n"
|
||
"MFLAGS(Z).17=1\n"
|
||
"STOP\n";
|
||
|
||
return code;
|
||
}
|
||
|
||
|
||
|
||
|