20240326
1、增加马克间距; 2、完善dxf解析;
This commit is contained in:
parent
80684daf9b
commit
42e10f6b15
5
.gitignore
vendored
5
.gitignore
vendored
@ -2,3 +2,8 @@
|
|||||||
*.user.*
|
*.user.*
|
||||||
boost/
|
boost/
|
||||||
spline_library/
|
spline_library/
|
||||||
|
*.stash
|
||||||
|
*.sdf
|
||||||
|
*.vcxproj
|
||||||
|
*.filters
|
||||||
|
rccs/
|
||||||
|
@ -90,7 +90,7 @@ bool DxfHelper::generateDxf(const QString &fileName)
|
|||||||
{
|
{
|
||||||
//获取引用块集合
|
//获取引用块集合
|
||||||
QList<std::string> blockNameList;
|
QList<std::string> blockNameList;
|
||||||
getDxfReferenceBlocks(fileName,blockNameList);
|
//getDxfReferenceBlocks(fileName,blockNameList);
|
||||||
|
|
||||||
// currentPos = QPointF(QRandomGenerator::global()->bounded(9999.99), QRandomGenerator::global()->bounded(9999.99));
|
// currentPos = QPointF(QRandomGenerator::global()->bounded(9999.99), QRandomGenerator::global()->bounded(9999.99));
|
||||||
currentPos = QPointF(9999.99, 9999.99);
|
currentPos = QPointF(9999.99, 9999.99);
|
||||||
@ -343,17 +343,17 @@ bool DxfHelper::generateDxf(const QString &fileName)
|
|||||||
|
|
||||||
if(path.size() == 2)
|
if(path.size() == 2)
|
||||||
{
|
{
|
||||||
if(i+1 < blockData.dxfVertexs.size())
|
// if(i+1 < blockData.dxfVertexs.size())
|
||||||
{
|
// {
|
||||||
QPointF point1;
|
// QPointF point1;
|
||||||
//qDebug() << "vertexs data:" << d.x << d.y << d.z << d.bulge;
|
// //qDebug() << "vertexs data:" << d.x << d.y << d.z << d.bulge;
|
||||||
point1.setX(blockData.dxfVertexs.at(i+1).x);
|
// point1.setX(blockData.dxfVertexs.at(i+1).x);
|
||||||
point1.setY(blockData.dxfVertexs.at(i+1).y);
|
// point1.setY(blockData.dxfVertexs.at(i+1).y);
|
||||||
if(point1 != point)
|
// if(point1 != point)
|
||||||
{
|
// {
|
||||||
path.append(point1);
|
// path.append(point1);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
dxfPaths.append(path);
|
dxfPaths.append(path);
|
||||||
path.clear();
|
path.clear();
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ CreatPrintBmp::CreatPrintBmp(QObject *parent) : QObject(parent)
|
|||||||
m_moveFileIdx = -1;//上下移动打印文件索引
|
m_moveFileIdx = -1;//上下移动打印文件索引
|
||||||
m_moveDir = 0;//-1,上移 1,下移
|
m_moveDir = 0;//-1,上移 1,下移
|
||||||
m_rotateAngle = 0;
|
m_rotateAngle = 0;
|
||||||
|
m_markSpace = 0;
|
||||||
m_autoDirFilesList.clear();
|
m_autoDirFilesList.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,6 +170,19 @@ int CreatPrintBmp::creatBmpBlockDatAndSend(int fileidx, int idx)
|
|||||||
num += 1;
|
num += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//计算每块位图的走纸距离
|
||||||
|
u32 paperDis = 0;
|
||||||
|
int moveOft = abs(offset)+PIXMAPWIDTH;
|
||||||
|
if(moveOft <= pic.width())
|
||||||
|
{
|
||||||
|
paperDis = ((double)PIXMAPWIDTH / MMPIXELY)*100;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
u32 cLength = moveOft - (pic.width() - oft);
|
||||||
|
paperDis = ((double)(PIXMAPWIDTH-cLength) / MMPIXELY)*100 + m_markSpace*100;
|
||||||
|
}
|
||||||
|
|
||||||
QBitmap *pixmap = new QBitmap(PIXMAPWIDTH,height);
|
QBitmap *pixmap = new QBitmap(PIXMAPWIDTH,height);
|
||||||
QPainter *pixPainter = new QPainter();
|
QPainter *pixPainter = new QPainter();
|
||||||
pixPainter->begin(pixmap);
|
pixPainter->begin(pixmap);
|
||||||
@ -218,6 +232,11 @@ int CreatPrintBmp::creatBmpBlockDatAndSend(int fileidx, int idx)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
QByteArray dat = bwBmp.getPrBmpDat();
|
QByteArray dat = bwBmp.getPrBmpDat();
|
||||||
|
//写入每块位图走纸距离
|
||||||
|
CompBmpHead *bmphead = new CompBmpHead;
|
||||||
|
memcpy((u8*)bmphead,(u8*)dat.data(),sizeof(CompBmpHead));
|
||||||
|
bmphead->segBitPaperDis = paperDis;
|
||||||
|
|
||||||
emit siSendDatToMc(dat);
|
emit siSendDatToMc(dat);
|
||||||
m_mcPrintInfo->m_filesList[fileidx].m_curPrintBlock = cidx + 1;
|
m_mcPrintInfo->m_filesList[fileidx].m_curPrintBlock = cidx + 1;
|
||||||
m_mcPrintInfo->m_filesList[fileidx].m_printedBlockNum = cidx;
|
m_mcPrintInfo->m_filesList[fileidx].m_printedBlockNum = cidx;
|
||||||
@ -460,8 +479,9 @@ QString CreatPrintBmp::getSavePath()
|
|||||||
return m_savePath;
|
return m_savePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreatPrintBmp::setMcPrintInfo(int fileIdx, McPrintInfo *printInfo)
|
void CreatPrintBmp::setMcPrintInfo(int fileIdx,u32 markSpace,McPrintInfo *printInfo)
|
||||||
{
|
{
|
||||||
|
m_markSpace = markSpace;
|
||||||
m_mcPrintInfo = printInfo;
|
m_mcPrintInfo = printInfo;
|
||||||
|
|
||||||
if(fileIdx < 0)
|
if(fileIdx < 0)
|
||||||
|
@ -45,6 +45,7 @@ private:
|
|||||||
int m_moveFileIdx;//上下移动打印文件索引
|
int m_moveFileIdx;//上下移动打印文件索引
|
||||||
s16 m_moveDir;//-1,上移 1,下移
|
s16 m_moveDir;//-1,上移 1,下移
|
||||||
double m_rotateAngle;
|
double m_rotateAngle;
|
||||||
|
u32 m_markSpace;//马克间距
|
||||||
|
|
||||||
QFileInfoList m_autoDirFilesList;//自动绘图目录中文件列表
|
QFileInfoList m_autoDirFilesList;//自动绘图目录中文件列表
|
||||||
|
|
||||||
@ -58,7 +59,7 @@ public:
|
|||||||
void setPicture(QBitmap bitmap);
|
void setPicture(QBitmap bitmap);
|
||||||
void setSavePath(QString path);
|
void setSavePath(QString path);
|
||||||
QString getSavePath();
|
QString getSavePath();
|
||||||
void setMcPrintInfo(int fileIdx,McPrintInfo *printInfo);//设置机器信息
|
void setMcPrintInfo(int fileIdx,u32 markSpace,McPrintInfo *printInfo);//设置机器信息
|
||||||
void stopCreatPrintDat();//停止生成打印数据
|
void stopCreatPrintDat();//停止生成打印数据
|
||||||
void setDeleteFile(McPrintInfo *printInfo, int fileIdx);//删除文件
|
void setDeleteFile(McPrintInfo *printInfo, int fileIdx);//删除文件
|
||||||
void setMoveFile(McPrintInfo *printInfo, int fileIdx, int dir = -1);//上下移动文件
|
void setMoveFile(McPrintInfo *printInfo, int fileIdx, int dir = -1);//上下移动文件
|
||||||
|
@ -122,9 +122,11 @@ typedef struct
|
|||||||
u8 compType[4]; // 本块位图压缩类型, =0, 不压缩; =1, 按字节压缩(分段压缩);
|
u8 compType[4]; // 本块位图压缩类型, =0, 不压缩; =1, 按字节压缩(分段压缩);
|
||||||
u32 compSegOffset[4]; // 分段数据起始位置
|
u32 compSegOffset[4]; // 分段数据起始位置
|
||||||
|
|
||||||
#if (1)
|
|
||||||
// 60
|
// 60
|
||||||
u8 rev[128-2-60]; // 保留
|
u32 segBitPaperDis; // 每段位图走纸距离,0.01mm
|
||||||
|
#if (1)
|
||||||
|
//64
|
||||||
|
u8 rev[128-2-64]; // 保留
|
||||||
#else
|
#else
|
||||||
// 保存原图中BMP头文件(算法测试用)
|
// 保存原图中BMP头文件(算法测试用)
|
||||||
// 60
|
// 60
|
||||||
|
@ -411,11 +411,11 @@ void Machine::invalidateWorkFile(int idx)
|
|||||||
setMcStatus(MC_INVALID_FILE, idx);
|
setMcStatus(MC_INVALID_FILE, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Machine::creatPrintDat(int fileIdx,int setFlag)
|
void Machine::creatPrintDat(int fileIdx,u32 markSpace,int setFlag)
|
||||||
{
|
{
|
||||||
if(setFlag == 1)
|
if(setFlag == 1)
|
||||||
{
|
{
|
||||||
m_pCreatPrintDat->setMcPrintInfo(fileIdx,&m_mcPrintInfo);
|
m_pCreatPrintDat->setMcPrintInfo(fileIdx,markSpace,&m_mcPrintInfo);
|
||||||
}
|
}
|
||||||
emit siCreatData();
|
emit siCreatData();
|
||||||
}
|
}
|
||||||
|
@ -104,7 +104,7 @@ public:
|
|||||||
// 机器工作命令
|
// 机器工作命令
|
||||||
void mcWorkCmd(int workcode, int para1 = 0 , int para2 = 0);
|
void mcWorkCmd(int workcode, int para1 = 0 , int para2 = 0);
|
||||||
|
|
||||||
void creatPrintDat(int fileIdx,int setFlag = 1); //生成打印数据
|
void creatPrintDat(int fileIdx,u32 markSpace,int setFlag = 1); //生成打印数据
|
||||||
void stopPrint(); //停止打印
|
void stopPrint(); //停止打印
|
||||||
|
|
||||||
void deleteFilePrintDat(int fileIdx);//删除文件打印数据
|
void deleteFilePrintDat(int fileIdx);//删除文件打印数据
|
||||||
|
@ -222,6 +222,7 @@ void MainWindow::startCreatBmpAndSend(int mcIdx)
|
|||||||
{
|
{
|
||||||
int mcBegIdx, mcEndIdx;
|
int mcBegIdx, mcEndIdx;
|
||||||
mcBegIdx = mcEndIdx = 0;
|
mcBegIdx = mcEndIdx = 0;
|
||||||
|
u32 markSpace = m_pSettings->value("DrawSet/markmargin").toUInt();//马克间距
|
||||||
|
|
||||||
//自动打印时mcIdx为-1
|
//自动打印时mcIdx为-1
|
||||||
//mcIdx = -1;
|
//mcIdx = -1;
|
||||||
@ -257,7 +258,7 @@ void MainWindow::startCreatBmpAndSend(int mcIdx)
|
|||||||
{
|
{
|
||||||
mcDir.mkdir(mcFile);
|
mcDir.mkdir(mcFile);
|
||||||
}
|
}
|
||||||
g_machineList[i]->creatPrintDat(m_curFileRow);
|
g_machineList[i]->creatPrintDat(m_curFileRow,markSpace);
|
||||||
|
|
||||||
if(m_curFileRow > 0)
|
if(m_curFileRow > 0)
|
||||||
{
|
{
|
||||||
@ -1042,6 +1043,7 @@ void MainWindow::slotDeleteFileFromList(int mcNum, int fileIdx, int refreshFlag)
|
|||||||
{
|
{
|
||||||
//是否自动打印
|
//是否自动打印
|
||||||
int autoPrint = 0;
|
int autoPrint = 0;
|
||||||
|
u32 markSpace = m_pSettings->value("DrawSet/markmargin").toUInt();//马克间距
|
||||||
|
|
||||||
//刷新进度
|
//刷新进度
|
||||||
if(refreshFlag != 0)
|
if(refreshFlag != 0)
|
||||||
@ -1091,7 +1093,7 @@ void MainWindow::slotDeleteFileFromList(int mcNum, int fileIdx, int refreshFlag)
|
|||||||
|
|
||||||
if(m_curFileRow >= 0 && autoPrint == 1)
|
if(m_curFileRow >= 0 && autoPrint == 1)
|
||||||
{
|
{
|
||||||
g_machineList[i]->creatPrintDat(m_curFileRow,0);
|
g_machineList[i]->creatPrintDat(m_curFileRow,markSpace,0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user