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