#pragma once //全局类型定义 using namespace std;/*使用标准库的名字空间*/ //STL 标准头文件 #include #include #include #include #include #include #include #include #include #include #include #include //屏蔽编译警告 #pragma warning(disable : 4800) #pragma warning(disable : 4244) #pragma warning(disable : 4996) #pragma warning(disable : 4018) #pragma warning(disable : 4477) #define PI 3.14159265358979323846 //#define COORD_EPS 0.001 //坐标误差精度(0.001 表示在坐标比较中,两个点的距离小于1um 就认为是相等) #define COORD_EPS 0.00001 #define RGB_WHITE RGB(255,255,255) //白色 #define RGB_BLACK RGB(0,0,0) //黑色 #define RGB_GREEN RGB(0,255,0) //绿色 #define RGB_GREEN1 RGB(29,241,135) //绿色 #define RGB_RED RGB(255,0,0) //红色 #define RGB_PINK RGB(255,55,120) //粉红色 #define RGB_PINK1 RGB(231,61,175) //粉红色 #define RGB_YELLOW RGB(255,255,0) //黄色 #define RGB_BLUE RGB(0,0,255) //蓝色 #define RGB_BLUE1 RGB(153,217,234) //天蓝色 #define RGB_NODE_BLUE RGB(0,63,255) //节点蓝色 #define RGB_PURPLE RGB(163,73,164) //紫色 #define RGB_GRAY RGB(240,240,240) //灰色 #define RGB_GRAY1 RGB(160,160,160) //灰色 #define bOPEN true #define bCLOSE false #define STR_NULL "" #define STR_INPUT_ERROR "无效指令: " #define STR_INPUT_SYMBOL '>' #define MARK_OBJ_CNT 25//载盘上obj 的数量 //鼠标工具的类型 enum MOUSE_TOOL { _TOOL_POINT=0, _TOOL_RECT, _TOOL_LINE, _TOOL_PLINE,//多线段 _TOOL_CIRCLE, _TOOL_MOVE, _TOOL_MOVE2,//指定基点移动 _TOOL_ROTATO, _TOOL_COPY, _TOOL_MEASURE,//测量 _TOOL_ZOOM,//缩放 _TOOL_CUT,//修剪 _TOOL_ADD_NODE,//添加节点 _TOOL_DEL_NODE,//删除节点 _TOOL_BREAK_NODE,//打断节点 _TOOL_MOVE_NODE,//移动节点 _TOOL_TEXT,//文字 _TOOL_BARCODE,//条码 _TOOL_ONE_POINT,//一个点 _TOOL_STRETCH,//拉伸工具 _TOOL_PT_MOVE_TO_CCD,//设置特定用途的点 _TOOL_SET_MARK_PT,//手动指定定位点 }; enum OBJ_TYPE { _TYPE_BASE = 0, _TYPE_PLINE,//多线段1 _TYPE_POINT,//点2 _TYPE_CIRCLE,//圆3 _TYPE_COMPOSITE,//一般组合类型4 _TYPE_TXT,//字符串5 _TYPE_BARCODE,//条码6 _TYPE_STR,//string 7 _TYPE_CHAR,//字符8 }; enum X_OR_Y { _X=0, _Y, _XY, }; enum CATCH_PT_TYPE//抓取点的类型 { _CATCH_NODE = 0,//结点 _CATCH_INTERSECT,//线段的交点 _CATCH_ORTHO,//正交 _CATCH_CUT_TRACK,//元件切割道交点 }; enum STATUS//鼠标工具的状态值,用于确定每一步做什么事情 { _STATUS_1 = 0, _STATUS_2, _STATUS_3, _STATUS_4, _STATUS_5, _STATUS_6, _STATUS_END }; enum OBJ_OP_TYPR { _OP_MOVE = 0, _OP_ROTATO, _OP_MIRROR, _OP_STRETCH,//拉伸 _OP_REVERSE,//反转数据点 _OP_SCALE,//按比例缩放 _OP_SET, }; inline bool IsDbEqual(double a,double b) { if((abs(a-b))=B) { pt.y = (T+B)/2; } return pt; } inline DbSize DbRect::GetSize() { DbSize size; size.w = R - L; size.h = T - B; if(size.w<0) size.w = 0; if(size.h<0) size.h = 0; return size; } //底部中心点 inline Dbxy DbRect::GetBottomCenterPt() { Dbxy pt; pt.x = (L+R)/2; pt.y = B; return pt; } inline double DbRect::Width() { return R-L; } inline double DbRect::Height() { return T-B; } #endif //封装所有对象操作的参数,便于统一发送格式 struct SObjOperatePar{ SObjOperatePar() { MoveX = MoveY = 0; Angle = 0; OldSize = NewSize = Diff = 0; Scale = 1; } OBJ_OP_TYPR OpType;//操作类型 X_OR_Y xy;//标识xy 方向 Dbxy BasePt;//基准点 double MoveX;//移动量 double MoveY; double Angle;//360 度角 double OldSize; double NewSize; double Diff; double Scale;//缩放比例 }; typedef pair PointType; //创建圆的参数 class CCirclePar { public: CCirclePar(void) { Radius = 1; DEdgeCnt = 32; bMerge = true; StartAng = 0; EndAng = 360; } public: Dbxy CenterPt;//圆心 double Radius;//半径 int DEdgeCnt;//边数 bool bMerge;//是否合并 double StartAng;//起始角度360 度角 double EndAng;//结束角度 }; //对象位置的参数 class CObjPosPar { public: CObjPosPar() { m_Ang =0; }; public: Dbxy m_Offset;//偏移 double m_Ang;//角度 }; //晶圆的类型 enum eCspWaferType { _CspWaferType_Null = 0,//未定义 _CspWaferType_8,//8寸 _CspWaferType_12,//12寸 }; enum CAlamLightStateType { _AlamLightStateType_NULL=0, _AlamLightStateType_Off,//关闭 _AlamLightStateType_On,//打开 _AlamLightStateType_Flash,//闪烁 }; //警示灯状态 class CAlamLightState { public: CAlamLightState(void) { m_LightRedState = _AlamLightStateType_NULL;//红灯状态 m_LightYellowState = _AlamLightStateType_NULL;//黄灯状态 m_LightGreenState = _AlamLightStateType_NULL;//绿灯状态 m_LightAlamState = _AlamLightStateType_NULL;//蜂鸣器状态 }; public: CAlamLightStateType m_LightRedState;//红灯状态 CAlamLightStateType m_LightYellowState;//黄灯状态 CAlamLightStateType m_LightGreenState;//绿灯状态 CAlamLightStateType m_LightAlamState;//蜂鸣器状态 }; //class CDlgItemStr //{ //public: // CDlgItemStr(void) // { // m_ID = 0; // }; //public: // int m_ID;//编号 // CString m_Str;//显示的内容 //}; enum AlignDirect { AlignTop = 0, AlignBottom, AlignLeft, AlignRight, AlignVecticalCenter, //居中对齐 AlignHorizonalCenter, AlignVecticalArrange, //排列 AlignHorizonalArrange, };