1224
							parent
							
								
									8a5442f4c5
								
							
						
					
					
						commit
						ad734ac4fe
					
				
											
												Binary file not shown.
											
										
									
								@ -1,6 +0,0 @@
 | 
				
			|||||||
MarkData: X=32.332754;Y=17.384913 
 | 
					 | 
				
			||||||
MarkData: X=25.515365;Y=17.075846 
 | 
					 | 
				
			||||||
MarkData: X=32.218140;Y=19.913061 
 | 
					 | 
				
			||||||
MarkData: X=25.400751;Y=19.603994 
 | 
					 | 
				
			||||||
MarkData: X=31.913434;Y=26.634239 
 | 
					 | 
				
			||||||
MarkData: X=25.096045;Y=26.325171 
 | 
					 | 
				
			||||||
@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					TD: 87.873390,-5.896572
 | 
				
			||||||
 | 
					RD: 30.300570,20.521548
 | 
				
			||||||
 | 
					TD: 87.873390,-5.896572
 | 
				
			||||||
 | 
					RD: 30.300570,20.521548
 | 
				
			||||||
 | 
					TD: 87.646767,-5.699993
 | 
				
			||||||
 | 
					RD: 30.073516,20.717701
 | 
				
			||||||
 | 
					TD: 87.646767,-3.299999
 | 
				
			||||||
 | 
					RD: 30.068488,23.117649
 | 
				
			||||||
 | 
					TD: 87.857735,-3.086712
 | 
				
			||||||
 | 
					RD: 30.279026,23.331325
 | 
				
			||||||
@ -0,0 +1,97 @@
 | 
				
			|||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					#include "GlobalDefine.h"
 | 
				
			||||||
 | 
					#include "LabVecRang.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//工件产品
 | 
				
			||||||
 | 
					class CProduct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					       friend class CProductMgr;
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						CProduct(void);
 | 
				
			||||||
 | 
						~CProduct(void);
 | 
				
			||||||
 | 
						void Draw(CDC* pDC);
 | 
				
			||||||
 | 
						void WriteWorkFile(vector<CLab> &LabVec);
 | 
				
			||||||
 | 
					        void ReadWorkFile(CLabVecRang &LabVecRang);
 | 
				
			||||||
 | 
					        void SetBasePt(Dbxy pt){m_BasePt = pt;};
 | 
				
			||||||
 | 
						Dbxy &GetProductBasePt(){return m_BasePt;};
 | 
				
			||||||
 | 
						Dbxy &GetOffset(){return m_Offset;};
 | 
				
			||||||
 | 
						double GetRotateAng();
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						bool &IsUsed(){return m_bUsed;};
 | 
				
			||||||
 | 
						void SetUsed(bool b){m_bUsed = b;};
 | 
				
			||||||
 | 
						void GetMarkCoord(Dbxy &mark1,Dbxy &mark2);
 | 
				
			||||||
 | 
						void SetRealMarkPt(Dbxy pt);
 | 
				
			||||||
 | 
						void ResetRealMarkPt();
 | 
				
			||||||
 | 
						void SetTheoryMarkPt(Dbxy pt1,Dbxy pt2);
 | 
				
			||||||
 | 
						void SetbHasMarkPt3(bool b){m_bHasMarkPt3 = b;};
 | 
				
			||||||
 | 
						void SetTheoryMark3Pt(Dbxy pt){m_TheoryMarkPt3 = pt;};
 | 
				
			||||||
 | 
						void SetRealMark3Pt(Dbxy pt){m_RealMarkPt3 = pt;};
 | 
				
			||||||
 | 
						Dbxy TheoryPtToRealPt(Dbxy TheoryMarkPt);	
 | 
				
			||||||
 | 
						void StretchDataToRealSize(vector<vector<Dbxy>> &vec);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void TheoryDataToRealData(vector<vector<Dbxy>> &vec, Dbxy &Offset);
 | 
				
			||||||
 | 
						void TheoryDataToRealData(vector<Dbxy> &vec, Dbxy &Offset);
 | 
				
			||||||
 | 
						void TheoryDataToRealData(vector<Dbxy>& vec, Dbxy & BaseOffset, Dbxy CutAdjust);
 | 
				
			||||||
 | 
						void ResetAffinePars();//重置仿射变换参数
 | 
				
			||||||
 | 
						void TheoryDataToRealData(vector<vector<Dbxy>>& vec, Dbxy & BaseOffset, Dbxy CutAdjust); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void TheoryDataToRealData(vector<vector<Dbxy>> &SrcVec,vector<vector<Dbxy>> &DecVec,Dbxy &Offset);
 | 
				
			||||||
 | 
					    void TheoryDataToRealData(vector<Dbxy> &SrcVec,vector<Dbxy> &DecVec,Dbxy &Offset);
 | 
				
			||||||
 | 
					    bool IsSetRealMarkPt1();
 | 
				
			||||||
 | 
						bool IsSetRealMarkPt2();
 | 
				
			||||||
 | 
						void UseDefualtOffset();
 | 
				
			||||||
 | 
						bool IsMarkReady();
 | 
				
			||||||
 | 
						bool IsbLastOne(){return m_bLastOne;};
 | 
				
			||||||
 | 
						void SetbLastOne(bool b){m_bLastOne = b;};
 | 
				
			||||||
 | 
						void SetbNewAddProduct(bool bNew) { m_bNewAddProduct = bNew; };//设置是否是改造新增的产品
 | 
				
			||||||
 | 
						bool IsbNewAddProduct() { return m_bNewAddProduct; };//查询是否是改造新增的产品
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
						void CalAffinePars();
 | 
				
			||||||
 | 
						void CalTheoryToRealPar();
 | 
				
			||||||
 | 
						Dbxy CalRealProductScale();
 | 
				
			||||||
 | 
						void StretchPt(Dbxy &Pt,SObjOperatePar &Par);
 | 
				
			||||||
 | 
						void CalRealStretchPar();
 | 
				
			||||||
 | 
						double CalRealProductScaleExt(Dbxy TheoryMarkPt1,Dbxy TheoryMarkPt2,Dbxy RealMarkPt1,Dbxy RealMarkPt2);
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					        Dbxy                                   m_BasePt;//工件的基准坐标点
 | 
				
			||||||
 | 
					        bool                                     m_bUsed;//是否使用
 | 
				
			||||||
 | 
					        bool                                     m_bLastOne;//是否为最后一个
 | 
				
			||||||
 | 
					        bool                                     m_bHasMarkPt3;//是否有mark3
 | 
				
			||||||
 | 
							bool										m_bNewAddProduct = false;//是否是改造后新增的那块产品(201910)
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					        //用于定位的两个定位点---------------------------
 | 
				
			||||||
 | 
					        Dbxy                                    m_TheoryMarkPt1;//理论坐标(layer 中的坐标)  mm
 | 
				
			||||||
 | 
					        Dbxy                                    m_TheoryMarkPt2;
 | 
				
			||||||
 | 
					        Dbxy                                    m_TheoryMarkPt3;
 | 
				
			||||||
 | 
					        //ccd 抓取的实际值------------------------------------
 | 
				
			||||||
 | 
					        Dbxy                                    m_RealMarkPt1;//真实坐标(相对于激光中心点) mm
 | 
				
			||||||
 | 
					        Dbxy                                    m_RealMarkPt2;
 | 
				
			||||||
 | 
					        Dbxy                                    m_RealMarkPt3;
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
							Dbxy                                    o_TheoryMarkPt1;//理论坐标(不移动时)  mm
 | 
				
			||||||
 | 
							Dbxy                                    o_TheoryMarkPt2;
 | 
				
			||||||
 | 
							Dbxy                                    o_TheoryMarkPt3;
 | 
				
			||||||
 | 
							//ccd 抓取的实际值------------------------------------
 | 
				
			||||||
 | 
							Dbxy                                    o_RealMarkPt1;//真实坐标(不移动时) mm
 | 
				
			||||||
 | 
							Dbxy                                    o_RealMarkPt2;
 | 
				
			||||||
 | 
							Dbxy                                    o_RealMarkPt3;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//仿射参数------------------------------------
 | 
				
			||||||
 | 
							float                                    m_p00=1;
 | 
				
			||||||
 | 
							float                                    m_p01=0;
 | 
				
			||||||
 | 
							float                                    m_p02=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							float                                    m_p10=0;
 | 
				
			||||||
 | 
							float                                    m_p11=1;
 | 
				
			||||||
 | 
							float                                    m_p12=0;
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					        //实际偏移旋转结果---------------------------------
 | 
				
			||||||
 | 
					        Dbxy                                    m_Offset;//理论数据映射为平台坐标的偏移
 | 
				
			||||||
 | 
					        double                                  m_RotateAng;//理论数据映射为平台坐标的旋转角度(反正切角)
 | 
				
			||||||
 | 
					        double                                  m_MaxRotateAng;//最大旋转角度(360 度角)计算出来的旋转角度超过这个值时可能有错误,计算无效
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        SObjOperatePar                      m_StretchParX;//X 方向拉伸参数
 | 
				
			||||||
 | 
					        SObjOperatePar                      m_StretchParY;//Y 方向拉伸参数
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
											
												Binary file not shown.
											
										
									
								
											
												Binary file not shown.
											
										
									
								
					Loading…
					
					
				
		Reference in New Issue