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