#pragma once #include "module.h" class CCamera; class CProduct; class CWorkCmdContainer; //管理常用 的流程 class CCommonFlowMgr :public CModule { friend class DlgCutDeviceCtrl; friend class CDlgSW_XL_Flow; public: CCommonFlowMgr(void); ~CCommonFlowMgr(void); virtual CMFCPropertyGridProperty *CreatGridProperty(); virtual MODULE GetModuleType(){return _COMMON_FLOW_PROP;}; virtual void Ini(); virtual void WriteWorkFileExt(vector &LabVec); virtual void ReadWorkFile(CLabVecRang &LabVecRang); bool InitDevice(); bool CameraCatchTwoMark(); bool MultipleAreaMark(CProduct &Product,bool bSel); bool CutShapeByPlatform(CProduct &Product,bool bSel); bool NormalMarkByPciCard(bool bSel,int times,int CyclicTimes); bool CameraCatch(); bool AutoMeasureVisionData(); void MovePtToCamera(vector &PtVec,vector &ResultVec,bool bCatch); void MovePtToCamera(Dbxy pt); int GetAreaCycleCnt(){return m_AreaCycleCnt;}; void SetAreaCycleCnt(int n){m_AreaCycleCnt = n;}; int GetOneObjMarkCnt(){return m_OneObjMarkCnt;}; void SetOneObjMarkCnt(int val){m_OneObjMarkCnt = val;}; int GetSpecialOneObjMarkCnt(){return m_SpecialOneObjMarkCnt;}; void SetSpecialOneObjMarkCnt(int val){m_SpecialOneObjMarkCnt = val;}; int GetCutSpeed(){return m_CutSpeed;}; void SetCutSpeed(int val){m_CutSpeed = val;}; bool IsbConnectObj(){return m_bConnectObj;}; void MoveSelObjToCamera(CProduct &Product); double GetFirstGap(){return m_FirstGap;}; Dbxy GetAdjustOffset(){return m_AdjustOffset;}; void SetAdjustOffset(Dbxy pt){m_AdjustOffset = pt;}; Dbxy GetAdjustOffsetAll(){return m_AdjustOffsetAll;};//获取治具2或4的振镜偏移 void SetAdjustOffsetAll(Dbxy Offset);//设置治具2或4的振镜偏移(调用前,已根据条件确定当前是2或是4) Dbxy GetAdjustSize(){return m_SizeAdjust;}; void SetAdjustSize(Dbxy s){m_SizeAdjust = s;}; double GetRotatoAdjust(){return m_RotatoAdjust;}; void SetRotatoAdjust(double val){m_RotatoAdjust = val;}; bool IsNoMarkCanWork(){return m_NoMarkCanWork;}; bool IsbWorkStop(){return m_bWorkStop;}; void SetbWorkStop(bool b){m_bWorkStop = b;}; void CameraCatchTwoMark(CProduct &Product); void SetLightStateCmd(bool bStart); bool StartWorkConfirm(bool bSelMark); bool IsNeedExecAgain(); void ResetProductOffset(); void SetbCollectSpecialObj(bool b){m_bCollectSpecialObj = b;}; bool IsbCollectSpecialObj(){return m_bCollectSpecialObj;}; bool IsbStretchDataToRealSize(){return m_bStretchDataToRealSize;}; bool CameraCatchMark3(CProduct &Product); void MarkAreaByIdx(int AreaIndex);//根据加工区域索引加工 private: void SetLightStateCmd(CWorkCmdContainer &CmdContainer,bool bStart); bool CameraCatchMarkExt(CProduct &Product); void MoveToFirstArea(); private: CCamera *m_CurCamera;//当前使用的相机 int m_AlamDelay;//报警延时(ms) int m_FindOriginTimes;//自动回原点的加工次数(大于0 时生效) int m_CurWorktimes;//当前的加工次数 int m_AllWorkExecTimes;//重复执行次数(用来拷机) int m_CurWorkExecTimes;//当前执行次数(用来拷机) bool m_bStartWorkMsg;//加工前提示 bool m_NoMarkCanWork;//没有定位点时也可以加工 bool m_bWorkStop;//工作是否停止 bool m_bVacuum;//是否使用真空吸附(加工前吸附,结束后放开) bool m_bCheckObjDataConsistency;//是否检查数据的一致性(避免obj 数据不相等的情况) //初始化相关参数----------------------------------------------------- bool m_bIniConfirmMsgBox;//是否弹出初始化确认对话框 bool m_bIniPlatfrom;//是否初始化电机平台 bool m_bIniMotorX;//是否初始化电机X bool m_bIniMotorY;//是否初始化电机Y bool m_bIniMotorZ;//是否初始化电机Z bool m_bInitedToProductPt;//初始化完成后是否返回上料点 //大幅面加工参数------------------------------------------------------- //每个obj 的总加工次数= (m_FocalAdjustCnt-1)*m_AreaCycleCnt*m_OneObjMarkCnt bool m_bFocalAdjust;//加工的时候是否实时调整焦距 double m_FocalAdjustDis;//变焦距离mm int m_FocalAdjustCnt;//变焦次数(每变焦一次按照下面的参数加工一遍) //产品相关的切割参数 int m_AreaCycleCnt;//每次一个workarea 的循环加工次数 int m_OneObjMarkCnt;//单个元件加工次数 int m_SpecialOneObjMarkCnt;//特殊刀增加的切割次数 bool m_bCollectSpecialObj;//是否正在收集特殊对象数据 int m_CutSpeed;//切割速度 Dbxy m_ProductOffset;//针对产品的切割偏移 bool m_bConnectObj;//是否连接多个obj 数据 bool m_bBackToProductPt;//加工完成后是否返回取料点 bool m_bSetLightState;//是否设置警示灯状态 int m_ConcentricCnt;//同心数据的数量 double m_FirstGap;//第一个拉伸尺寸 double m_ConcentricGap;//同心数据的间隔mm(大于0 向外)(小于0 向内) Dbxy m_AdjustOffset;//偏移微调mm Dbxy m_AdjustOffsetAll;//偏移微调mm (针对所有) Dbxy m_SizeAdjust;//尺寸调整mm double m_RotatoAdjust;//旋转调整mm bool m_bStretchDataToRealSize;//根据抓取结果拉伸数据 //平台cut 参数-------------------------------------------------------------- bool m_bUseLaser;//是否开关激光 //振镜校准参数-------------------------------------------------------------- double m_CalibrationPointGap;//打点之间的间隔mm double m_CalibrationRange;//振镜校准范围mm }; extern CCommonFlowMgr *gCommonFlowMgr;