智能设备面临多产品,多品种的场所,经常需要换产,图形化编程提供所见即所得编辑功能,能极大减少转产时间。
加工路径类的头文件和库文件在Tabxlibs目录下。头文件在cncuc子目录。库文件(dll, lib)在bug子目录。
根据加工路径几何形状的不同,TABX提供7个用于加工不同形状的子类。这些子类除了运动路径形状不一样外,控制点数量也不一样。
控制点是图形化编程时控制加工路径形状和大小的点,一般以像素为单位,图像坐标。与此对应,还有一个机械坐标。有多少个控制点,就有多少对图像坐标和机械坐标。
类名 | 说明 |
---|---|
CDrill | 钻孔 |
CCutLine | 沿直线加工 |
CCutArc | 沿圆弧加工 |
CCutPolyline | 沿多段线加工 |
CCutShapeL | 沿L形加工 |
CCutShapeU | 沿U形加工 |
CCutCircle | 沿圆弧加工 |
CCncObj类提供成员变量保存工艺参数。如下表:
变量 | 数据类型 | 说明 |
---|---|---|
m_nSpeed | double | 速度 |
m_nAcc | double | 加速度 |
m_extra | union | 该参数不保存。不同设备表示的意思不一样,如扭力、点胶频率等 |
m_nCamWorkPos | double | Z轴上的相机工作位置 |
m_nToolWorkPos | double | Z轴上的工具工作位置 |
m_nMotionType | int | 移动类型 |
m_cutRadius | double | 刀具半径 |
加工路径类的控制点分为图像坐标点和对应的机械坐标点, 图像坐标点根据KFC类的访问方式进行访问。机械坐标按照统一的函数接口进行访问。
CCncObj* pCo = new CCutLine;
for(int i=0; i
RvPoint_f64 pt = pCo->GetOrientedMacPosAt(i) ;
//…
}
delete pCo;
加工路径有起始点和结束点。如:
RvPoint_f64 st = pCo->GetStartMacPos() ;
RvPoint_f64 en = pCo->GetEndMacPos() ;
可以对加工路径对象进行移动一定距离,如:
pCo->MoveMac(100, 1000, FALSE);或者以起始坐标位参考位置,将加工类移动到某个具体机械位置。如:
pCo-> MoveMacTo(59, 39, TRUE); //同时更新对应的图像坐标
直接比例转换时,图像坐标转机械。如:
//修改图像坐标。通常在编辑器里面拖拉操作。
pCo-> m_nCcType = CCncObj::CC_DEF;
pCo->m_scalar.val[0] = 16.f;pCo->m_scalar.val[1] = 16.f;
pCo-> UpdateMacPos();
手眼标定转换坐标需要指定已经标定的类对象,还要将标定类型设置为CC_RSM或RSM_E1。 如下:
CRobotSpaceMapE1 g_rsm;
//标定g_rsm
pCo-> m_nCcType = CCncObj:: CC_RSM_E1;
pCo-> m_ m_pRsmE1=& g_rsm;
pCo-> UpdateMacPos();
如果要从机械坐标转换成图像坐标,只需要调用UpdateCamPos函数即可。如://设定每个顶点的机械坐标,然后更新图像坐标
pCo-> m_nCcType = CCncObj:: CC_RSM_E1;
pCo-> m_ m_pRsmE1=& g_rsm;
pCo-> UpdateCamPos ();
参考点位置一般有MARK定位工具获得,对单MARK补偿时,当个的路径加工对象补偿的基本过程如下:
RvOffset_f64 offs = CCncObj::CalcAlignCoefs( referPos , targetPos);
pCo-> MoveMac(offs.dx, offs.dy, FALSE);
双MARK点补偿方法类似,首先需要调用函数获得平面偏移量和角度偏差。如:
double angle = 0;
RvPoint_f64 center={0, 0};RvOffset_f64 offs = CCncObj::CalcAlignCoefs( referPos1, referPos2, \ targetPos1, targetPos2, \ ¢er, &angle);
pCo->AlignMac(offs.dx, offs.dy, center.x, center.y, angle, FALSE);
CMarkLocater也是一个标准的KFC类,从CShapeMatch类继承而来。除了保存了图像模板特征外, 还提供了保存对应的机械坐标,以及学习时的模板图像功能。
CMarkLocater mark;
//cam为相机对象, image图像的格式与相机要一致
cam.Fetch(image, NULL);mark. Learn(image, NULL) ;
如果要保留当前的图像模板用于后续查看,调用如下语句:
mark.LogLearnedImage(image, FALSE);
当然,MARK学习以后一般也需要当前相机所在位置的机械坐标。
mark.SetMacPos(77, 88);
在需要定位MARK的时候,一般将相机移动到学习模板的位置,然后拍照,与模板学习流程基本一致,最后调用模板识别函数完成。如:
mark.Recognize(image, NULL);
加工路径类的头文件和库文件在Tabxlibs目录下。头文件在TabKits子目录。库文件(dll, lib)在bug子目录。
CAxisView封装安装在(Z轴)主轴上的相机拍摄的视场。移动视场类可以工作在不同的模式下,这些模式用在各种不一样的作业场景下。
模式 | 说明 |
---|---|
SM_DEFAULT | 默认模式 |
SM_LEARN_MARK | MARK点学习 |
SM_RUNTIME | 生产运行 |
SM_CALL_SLANT | CNC对象校准 |
SM_TRAY_OFFSET | 托盘偏移补偿 |
SM_SIMULATE | 模拟运行 |
SM_MATRIX_COPY | CNC对象阵列复制 |
CAxisView类从KFC的CRealView继承,所有操作与该类基本一样。具体操作请参考相关文档。
CTrayView封装全局相机视场(不移动),对整个作业位进行拍照。全景视场类也可以工作在不同模式下。
模式 | 说明 |
---|---|
SM_DEFAULT | 默认模式,适用于全局导航 |
SM_EDIT | 编辑模式 |
SM_RUN | 生产运行模式 |
抖音视频号: 第一感机器视觉
微信公众号: 精浦科技
深圳市软云动力科技有限公司
东莞办事处: 广东省东莞市松湖智谷B6栋225b
公司地址: 广东省深圳市南山区桃园路金桃园大厦2191
深圳市软云动力科技有限公司 版权所有 鄂ICP备2022015826号-2