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.
134 lines
4.7 KiB
C++
134 lines
4.7 KiB
C++
#pragma once
|
|
#include "PenPar.h"
|
|
#include "GlobalDefine.h"
|
|
#include "module.h"
|
|
|
|
|
|
#define PEN_CNT 100 //笔的数量
|
|
#define SPECIAL_PEN_START 80 //特殊笔号开始的编号
|
|
|
|
#define PEN_COLOR_0 RGB(10,10,10)
|
|
#define PEN_COLOR_1 RGB(0,0,255)
|
|
#define PEN_COLOR_2 RGB(255,0,0)
|
|
#define PEN_COLOR_3 RGB(0,255,0)
|
|
#define PEN_COLOR_4 RGB(255,0,255)
|
|
#define PEN_COLOR_5 RGB(255,255,0)
|
|
#define PEN_COLOR_6 RGB(255,125,125)
|
|
#define PEN_COLOR_7 RGB(125,0,0)
|
|
#define PEN_COLOR_8 RGB(125,0,125)
|
|
#define PEN_COLOR_9 RGB(0,125,125)
|
|
#define PEN_COLOR_10 RGB(255,255,255)
|
|
#define PEN_COLOR_11 RGB(185,122,87)
|
|
#define PEN_COLOR_12 RGB(255,201,14)
|
|
#define PEN_COLOR_13 RGB(181,230,29)
|
|
#define PEN_COLOR_14 RGB(153,217,234)
|
|
#define PEN_COLOR_15 RGB(112,146,190)
|
|
#define PEN_COLOR_16 RGB(200,191,231)
|
|
#define PEN_COLOR_17 RGB(63,72,204)
|
|
#define PEN_COLOR_18 RGB(163,73,164)
|
|
#define PEN_COLOR_19 RGB(34,177,76)
|
|
#define PEN_COLOR_20 RGB(127,127,127)
|
|
|
|
|
|
#define MAX_RECIPE_PAR_CNT 12//最大recipe 参数的数量
|
|
//笔所控制的参数的类型(数量需要小于VAR_PAR_CNT 20)
|
|
//不能随意更改顺序
|
|
enum PEN_CTRL_PAR
|
|
{
|
|
_PAR_NULL = 0,//不控制任何参数
|
|
_PAR_SCAN_TRACK_TYPE,//扫描方式
|
|
_PAR_LASER_SET_POWER,//激光设定的功率W
|
|
_PAR_PLAT_SCAN_SPEED,//扫描速度
|
|
_PAR_SCAN_OVERLAP_RATIO_X,//X扫描重叠率%
|
|
_PAR_SCAN_OVERLAP_RATIO_Y,//Y扫描重叠率%
|
|
_PAR_FOCUS_ADJUST_VAL,//焦距微调量mm
|
|
|
|
_PAR_LASER_CURR_1,//主激光LDD1 电流A
|
|
_PAR_LASER_CURR_2,//主激光LDD2 电流A
|
|
_PAR_LASER_PRF,//激光频率(Hz)
|
|
_PAR_LASER_PRF2_DELAY,//双脉冲激光器脉冲间隔延时ms
|
|
_PAR_RED_LASER_CURR,//辅助激光电流A
|
|
_PAR_RED_LASER_PULSE_W,//红光脉宽us
|
|
};
|
|
|
|
|
|
//特殊笔类型
|
|
enum SPECIAL_PEN
|
|
{
|
|
_SPECIAL_PEN_NULL = 0,
|
|
_SPECIAL_PEN_PLAT_MOVE_SPEED,//平台空移速度
|
|
_SPECIAL_PEN_S_MOVE_OFFSET_OBJ,//用于S 形移动时平移obj 对象的笔号
|
|
_SPECIAL_PEN_FIND_ORIGIN_XY,//XY 平台找原点的速度
|
|
_SPECIAL_PEN_MANUAL_MOVE_X,//手动移动平台X 速度
|
|
_SPECIAL_PEN_MANUAL_MOVE_Y,//手动移动平台X 速度
|
|
};
|
|
//recipe 加工所使用的参数
|
|
class CRecipePar
|
|
{
|
|
public:
|
|
CRecipePar()
|
|
{
|
|
m_MinVal = 0;//参数最小值
|
|
m_MaxVal = 0;//参数最大值
|
|
};
|
|
public:
|
|
CString m_RecipeParName;//参数的名字
|
|
PEN_CTRL_PAR m_PenCtrlType;//参数对应的笔参数控制类型
|
|
double m_MinVal;//参数最小值
|
|
double m_MaxVal;//参数最大值
|
|
};
|
|
|
|
|
|
//标刻参数管理
|
|
class CPenParMgr:public CModule
|
|
{
|
|
public:
|
|
CPenParMgr(void);
|
|
~CPenParMgr(void);
|
|
virtual void WriteWorkFileExt(vector<CLab> &LabVec);
|
|
virtual void ReadWorkFile(CLabVecRang &LabVecRang);
|
|
virtual CString GetParDirName(){return "CPenParMgr";};
|
|
virtual void OnAppInitialize();
|
|
void Copy(CPenParMgr &rls);
|
|
void InsertToList(CListCtrl &List);
|
|
COLORREF GetPenColor(int pen);
|
|
void SaveCurPen(int Pen,CPenPar CurPar);
|
|
CPenPar GetPen(int pen);
|
|
CPenPar& GetCurPen(){return m_ParVec[m_CurPen];};//获得当前选择的笔
|
|
void SetCurPenNum(int num);
|
|
int GetCurPenNum(){return m_CurPen;};
|
|
int GetCurWorkPenNum(){return m_CurWorkPen;};
|
|
void SetCurWorkPen(int n){m_CurWorkPen = n;};
|
|
void SaveOrLoad(bool bSave);
|
|
void SaveCurPen(CPenPar CurPar);
|
|
double GetPar(int PenNum,PEN_CTRL_PAR PenCtrlPar);
|
|
double GetPar(CPenPar &PenPar,PEN_CTRL_PAR PenCtrlPar);
|
|
bool IsSpecialPen(int n);
|
|
void SetPar(int PenNum,PEN_CTRL_PAR PenCtrlPar,double val);
|
|
vector<CPenPar> &GetParVec(){return m_ParVec;};
|
|
void SetParVec(vector<CPenPar> &vec){m_ParVec = vec;};
|
|
void SetParSelectState(vector<bool> &vec);
|
|
void SetFirstSelPenAsWorkPen();
|
|
void ResetAllSelState();
|
|
vector<CRecipePar> &GetRecipeParVec(){return m_PenParVec;};
|
|
private:
|
|
void IniParVec();
|
|
void InitRecipeParVec();
|
|
void SaveOrLoadExt(CArchive &ar);
|
|
void InsertPenParName(CMFCPropertyGridProperty* p);
|
|
void AdjustPenParOrder();
|
|
private:
|
|
vector<CPenPar> m_ParVec;//参数容器
|
|
vector<CRecipePar> m_PenParVec;//recipe 加工所使用的参数容器
|
|
int m_CurPen;//当前的笔号
|
|
int m_CurWorkPen;//当前工作的笔号
|
|
//特殊用途笔号 ---------------------------------------
|
|
int m_PenPlatMoveSpeed;//平台空移速度的笔号(运动控制卡)
|
|
int m_PenOffsetObj;//用于S 形移动时平移obj 对象的笔号
|
|
int m_PenFindOrignXY;//XY 平台找远点的速度
|
|
int m_PenManualMoveX;//手动移动平台X 速度
|
|
int m_PenManualMoveY;//手动移动平台Y 速度
|
|
};
|
|
|
|
extern CPenParMgr *gPenParMgr;
|