You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.4 KiB
C++

#include "StdAfx.h"
#include "CreaterCutFlow.h"
#include "GlobalFunction.h"
#include "MarkAreaMgr.h"
#include "WorkCmdMovePlatformXY.h"
#include "WorkCmdPciPortSwitch.h"
#include "Laser.h"
#include "PciPortMgr.h"
#define MARK_ALL "ALL"
#define MARK_SEL "SEL"
CCreaterCutFlow::CCreaterCutFlow(const CString &str)
:CCreaterWorkCmd(str)
{
}
CCreaterCutFlow::~CCreaterCutFlow(void)
{
}
//<2F><><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD>
void CCreaterCutFlow::Creat()
{
//<2F><><EFBFBD><EFBFBD>1 <20><>ʾ<EFBFBD>Ƿ<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD>ӹ<EFBFBD>
CString MarkType = GetPar(1);
//<2F>Ѽ<EFBFBD><D1BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-------------------------------------------------
if(MarkType == MARK_SEL)
CollectWorkData(true);
else
CollectWorkData(false);
//ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
vector<CMarkArea> &AreaVec = gMarkAreaMgr->GetAreaVec();
vector<CMarkArea>::iterator iter = AreaVec.begin();
vector<CMarkArea>::iterator iter_end = AreaVec.end();
for(;iter!=iter_end;iter++)
{
vector<vector<Dbxy>> &Vec = (*iter).GetDataVec();
CreatExt(Vec);
}
}
void CCreaterCutFlow::CreatExt(vector<vector<Dbxy>> &Vec)
{
vector<vector<Dbxy>>::iterator iter = Vec.begin();
vector<vector<Dbxy>>::iterator iter_end = Vec.end();
for(int i=0;iter!=iter_end;i++,iter++)
{
vector<Dbxy>::iterator iter1 = (*iter).begin();
vector<Dbxy>::iterator iter1_end = (*iter).end();
for(;iter1!=iter1_end;iter1++)
{
//<2F>ƶ<EFBFBD>ƽ̨---------------------------------------------
{
CWorkCmdMovePlatformXY *pCmd = new CWorkCmdMovePlatformXY();
pCmd->MoveToTargetPt((*iter1),gLaser->GetCoord());
if(iter1 != (*iter).begin())//<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD>
{
pCmd->InWorkState();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǹ<EFBFBD><C7B9><EFBFBD><EFBFBD><EFBFBD>
}
AddCmd(pCmd);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-------------------------------------------------
if(iter1==(*iter).begin())
{
CWorkCmd *pCmd = new CWorkCmdPciPortSwitch(PCI_PORT_LASER,true);
AddCmd(pCmd);
}
}
//<2F>ؼ<EFBFBD><D8BC><EFBFBD>-------------------------------------------------
{
CWorkCmd *pCmd = new CWorkCmdPciPortSwitch(PCI_PORT_LASER,false);
pCmd->CanNotCancel();//<2F><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>
AddCmd(pCmd);
}
}
}