基于UG二次开发干涉避障仿真研究

2019-09-10 07:22:44方瑞陈岳坪
广西科技大学学报 2019年3期
关键词:避障

方瑞 陈岳坪

摘    要:在实际的加工检测过程中,对复杂曲面生成的测点依次进行检测,检测过程中可能会因为路径规划或者曲面曲率大小问题导致测头碰撞工件,为了防止在线检测过程中测头测针与工件产生干涉,需要对UG干涉模块进行二次开发.在简要阐述了UG二次开发基础以及UG自带的干涉模块分析基础上,基于UG平台,将Visual Studio与UG函数进行关联,利用UG中的UISTyler和MenuSeript開发工具,实现了在线检测中的干扰检测和避障.

关键词:UG二次开发;干涉检测;避障

中图分类号:TH16;TP391.7      DOI:10.16375/j.cnki.cn45-1395/t.2019.03.011

引言

在复杂曲面零件的加工检测过程中,需要用相应的检测技术来检测和控制加工精度[1-2].基于坐标测量机[3](CMM)的检测技术一般情况下用于精密零件的形状与位置精度检测,但对工件产生了二次装夹定位误差的问题以及对大型零部件测量的一些局限性问题.在数控机床上对零部件直接进行加工精度的在线检测,使加工、测量与补偿形成一体化的检测系统,是近几年国内外对在线检测研究领域的研究热点[4-5].为了能顺利实现数控机床的在线检测,首先需要对所加工的零件进行检测仿真实验,以免实际操作过程中出现测头碰撞问题.虽然现在有许多带有干涉检查模块的CAD软件,如UG、Catia以及SolidWorks等,但专业性较差,过程繁琐容易出错,影响设计人员判断,降低了干涉检验的工作效率,浪费大量的人力物力[6].目前,对于干涉检测技术,静态干涉检测研究较多.衡思迎等[7]对冲压模具中的静态干涉问题进行了分析,提出一种基于坐标极值来确认实体非干涉的算法.郜亮等[6]对UG的干涉检验模块进行了分析,并针对检测效率低的问题,对UG干涉模块进行二次开发,相比传统的UG自带的干涉模块,需要手动方式选择需要干涉的每个部位,其开发的干涉功能可以自动实现干涉检测,提高了检测效率.以UG6.0为开发平台,针对UG运动仿真方面,对动态干涉检验以及实现避障功能做了一定的研究.

1    UG二次开发基础

UG的二次开发是基于UG软件,利用UG软件自带的一些函数,使用户可以很方便的利用C语言的编程,调用UG软件自带的函数,实现用户对于产品设计的某种特殊需求.UG二次开发中的API函数可以作为外部应用程序与UG应用软件之间衔接的桥梁,该函数可以实现对UG模型的控制以及对于用户的某种特殊需求.UG软件中,有一个菜单模块与样式编辑模块,它们可以用来定制用户的专用菜单并使用户创建的对话框样式与UG软件风格形成一致.利用样式编辑模块创建的对话框在存储的时候,将会自动生成相对应的.c文件以及.h文件,将这两种文件复制到C语言开发程序当中,用户将节省很多的开发时间.

2    干涉检查模块的应用分析

UG中,干涉分为静态干涉与动态干涉.静态干涉主要是针对零件各个位置度以及零件之间的公差配合等方面进行检测,从而判断是否发生干涉.动态干涉是对于零件在运动过程中,分析其运动过程,判断零件在空间运行时是否发生干涉.在UG中,静态干扰是检查UG组件之间的间隙.在UG6.0版本基础上,针对一个复杂曲面模型进行简单的干涉检验分析.首先,打开模型图;然后,选择菜单栏分析下拉菜单的简单干涉,弹出简单干涉对话框,选择需要干涉的两个体,在干涉检查结果一栏,选择结果对象为“高亮显示的面对”,输出干涉结果.图1为简单干涉界面.

如图1所示,使用简单干涉时每次检查干涉,只能选择两个组件进行干涉,并且在检查干涉情况下,只能选择可见的零部件,在部件较多的时候,或者部件运动过程中,很难判断干涉情况.相比图1所示的简单干涉,另外一种是检查间隙.在菜单选项中选择菜单栏中分析下拉菜单的装配间隙,此方法可以对多个部件一起进行干涉检查,当间隙小于默认安全区域时,则确认部件间为干涉,这时需要对装配进行修改如图2所示.但对于测杆运动,这两种干涉仍无法进行判断干涉.综上所述,UG中的干涉检测模块存在着不足之处.为了解决运动体的干涉问题,本文利用UG的二次开发技术对此模块进行二次开发,并在实现干涉碰撞之后,可以实现自动避障功能.

3    干涉避障模块的二次开发分析

基于UG干涉检测仿真系统包括以下几个模块:

1)测头运动仿真模块参数设置

该模块可以根据实际在线检测过程中使用的测头大小以及在测头运动过程中需要的测量速度、非测量速度以及回退距离进行设置.

2)曲面信息的抓取

该模块可以根据曲线上的法失,自动抓取需要检测的曲面信息,为后面测点生成以及需要干涉的曲面做铺垫.

3)曲面测点生成模块

该模块可以根据获取的曲面信息,根据曲面上的法失,利用等弧长方式对曲面自适应地生成一系列测点.

4)导入测点数据模块

该模块在曲面测点生成完成和对测针参数设置完毕之后,将需要检测的数据点导入到系统当中进行检测.

5)干涉检查模块

此模块是检查在检测过程中是否会出现干涉情况,以免在实际操作过程中发生危险.

6)自动避障模块

此模块是根据干涉模块延伸出来的,当测针与物体发生干涉时,测针会自动规划路径寻找最优点,达到防止测针与物体相撞功能.

软件操作流程图如图3所示.

3.1   用户菜单及对话框创建

为了能实现UG动态仿真干涉实验研究,需要先设定UG与Visual Studio之间的环境变量,并利用UG/Open MenuSeript创建用户菜单,用户便可以很方便地使用脚本文件编辑自己的开发程序.创建菜单脚本文件是先新建一个记事本,并用ASCALL码编写菜单脚本文件,最后将脚本文件放入startup目录下,后缀名为*.men.

菜单脚本代码如下:

VERSION 120

EDIT UG_GATEWAY_MAIN_MENUBAR

HIDE UG_HELP

!一级菜单编辑

BEFORE UG_HELP

CASCADE_BUTTON MENU_ID_1

LABEL 数控机床在线检测系统

END_OF_BEFORE

!二级菜单编辑

MENU MENU_ID_1

BUTTON MENU_ID_1_2

LABEL 检测代码生成与数据处理

ACTIONS UFDLG_1

END_OF_MENU

!三级菜单编辑

MENU MENU_ID_1

BUTTON MENU_ID_1_3

LABEL 在线检测仿真系统

ACTIONS UFDLG_2

END_OF_MENU

其中CASCADE_BUTTON MENU_ID_1代表一级菜单名称,对在线检测仿真系统添加按钮并产生响应,使用BUTTON以及ACTIONS.菜单添加后如图4所示.

为了方便操作UG与用户开发程序之间的互通,利用样式编辑器创建用户对话框,将生成结束的对话框产生的.dlg文件保存于application文件夹中.

3.2   测头运动仿真研究

实现干涉碰撞仿真之前,需要对测头进行运动仿真,测头从P1运动到M,再返回P1,再进行下一个点检测,从P1运动到P2,再从P2运动到N,返回P2.测头运动的原理如图5所示.

数控机床在线检测过程中,测头所进行的每一步运动都可被简化为直线运动,也称平移运动.所用到的函数为:平移矩阵函数uf5943(translation,matrix)和平移运动函数UF_MODL_transform_entities(2,entities, matrix).

测头从检测点M运动到检测点N,测头需要分为五步进行运动.每个点是相同的程序和相同的循环,其代码如下:

回退至测量点安全点:

translation[0] =xx[pointcount]+uu[pointcount]*t+translation1[0];

translation[1] =yy[pointcount]+oo[pointcount]*t+translation1[1];

translation[2] =zz[pointcount]+pp[pointcount]*t+translation1[2];

uf5943(translation,matrix);

UF_MODL_transform_entities(2, entities,matrix);

逼近測点:

translation[0] = (-uu[pointcount]*(t-5));

translation[1] = (-oo[pointcount]*(t-5));

translation[2] = (-pp[pointcount]*(t-5));

uf5943(translation,matrix);

UF_MODL_transform_entities(2, entities,matrix);

测量点:

translation[0] = (-uu[pointcount]*5);

translation[1] = (-oo[pointcount]*5);

translation[2] = (-pp[pointcount]*5);

uf5943(translation,matrix);

UF_MODL_transform_entities(2, entities,matrix);

回退点:

translation[0] = (uu[pointcount]*t);

translation[1] = (oo[pointcount]*t);

translation[2] = (pp[pointcount]*t);

uf5943(translation,matrix);

UF_MODL_transform_entities(2, entities,matrix);

在线检测仿真系统界面如图6所示.

3.3   测头干涉避障功能

利用等弧长方法生成曲面测点,测头进行运动仿真时,需要检测该曲面测点与测头是否会发生干涉.本文针对复杂曲面所研究的干涉会出现两种:一种是曲率干涉,表明测针检测工件时,曲面曲率较小,导致测头与曲面发生碰撞;另一种是测头从图5所示P1到P2运动干涉,表明测头从当前点运动到下一个点时,测头与曲面之间抬高的距离不够,则测头会与工件产生碰撞.当测头与曲面发生干涉时,会出现干涉提示,此时,利用最小距离法进行安全避障,设定测球与曲面最小距离不能大于0.000 1,如果大于此公差,需要重新进行判断,直到公差小于0.000 1,所用到的干涉函数为UF_MODL_check_interference以及最小距离函数为UF_MODL_ask_minimum_dist.

干涉检验及避障的部分函数代码如下:

UF_MODL_check_interference(object_tag,1,&entities[0],&results);

if (results ==1)

{uc1601("有干涉?",1);

int results;

tag_t body_1 = object_tag;

tag_t body_tool = entities[0];

UF_MODL_check_interference(body_1,1,&body_tool,&results);

UF_MODL_ask_minimum_dist(body_1,body_tool,0,guess1,0,guess2,&min_dist,pt_on_ent1,pt_on_ent2);

while(min_dist >= 0.0001)

{double translation [ 3 ] = {0,0,-min_dist};

uf5943(translation,matrix);

uf5947(matrix,&body_tool,&objects,&move,&layer,&trace_curves,&body_tag2,NULL,&status);

dist3 -= min_dist;

UF_MODL_ask_minimum_dist(body_1,body_tool,0,guess1,0,guess2,&min_dist,pt_on_ent1, pt_on_ent2); }

首先设置好测头参数,导入测点.当测头进行仿真运行时,从第一个接触点开始进行自动判断.如果没有发生干涉,测头从图5所示P1到P2运动到下一个点,当下一个点产生图7所示曲率干涉时,会出现提示有干涉.此时,将测头抬高,自动寻找当前点旁边坐标的最优点,判断测头与工件接触时,在没有出现干涉情况下,与工件之间的最小距离间隙.当最小间隙满足所设定的公差范围,即该点定义为当前坐标检测最优点,调整测头与当前点之间间隙如图8所示,当间隙在公差范围之内,进行下一个点检测.

4    结束语

本文介绍了UG二次开发的基础知识以及UG自带的干涉检查模块分析,并将UG与Visual Studio开发软件相结合,对UG运动仿真以及干涉避障模块进行二次开发,解决了UG中干涉检查模块不可以判断运动物体之间的干涉情况以及需要手動选择干涉的部位的弊端,为后续进行在线检测实验做了铺垫,以防测头运行过程中出现撞针.

参考文献

[1] 刘彦臣,李战芬,李彩霞,等.基于加工文件的复杂曲面反求研究[J].中北大学学报(自然科学版),2011,32(2):154-157.

[2] 陈祥林,丁天怀.曲面间隙测量电涡流传感器探头的性能研究[J].测试技术学报,2005,19(4):437-441.

[3] 汤慧,陈岳坪,陈大伟,等.复杂曲面的加工误差分析[J].广西科技大学学报,2016,27(3):17-20.

[4] 裘祖荣,石照耀,李岩.机械制造领域测量技术的发展研究[J].机械工程学报,2010,46(14):1-11.

[5] 白瑞平,王爱玲.基于数控机床的齿轮超声自动检测技术[J].中北大学学报(自然科学版),2008,29(5):413-416.

[6] 郜亮,侯开虎.基于UG的二次开发在装配干涉检测中的应用[J].中国制造业信息化,2012,41(9):69-71,75.

[7] 衡思迎,常青,邓磊,等.基于UG二次开发的冲压模具静态干涉检查研究[J].模具制造,2017(10):24-26.

Abstract:In the actual processing and testing process, the measuring points generated by the complex curved surface are inspected in turn. During the inspection process, the probe may collide with the workpiece due to the path planning or surface curvature problem. In order to prevent the probe stylus and workpiece from interfering during the online inspection process, the UG interference module needs to be redeveloped. Presenting the basic knowledge of UG secondary development and built-in interference module analysis, associating Visual Studio with the UG function based on the UG platform, this paper uses UISTyler and MenuSeript development tools to implement interference inspection and obstacle avoidance in online detection.

Key words:UG secondary development; interference inspection; obstacle avoidance

(责任编辑:黎   娅)

猜你喜欢
避障
除雪机的设计及其液压控制
基于混合算法的仿生机器鱼路径规划
价值工程(2017年10期)2017-04-18 15:18:31
一种单双目结合的全景避障测距方法
基于物联网的智能“导盲犬式”社交门铃
智能引导小车的设计与实现
基于LabVIEW的自主巡航与遥控双功能智能小车研发
基于HC—SR04超声波传感器的智能避障小车设计
基于STM32芯片的移动机器人的避障研究
基于图像边缘检测的机器人避障方案设计
基于“STC80C51单片机”的智能小车系统的设计