APP下载

AnyCAD控件在工件打磨软件开发中的应用

2022-11-16吴焱明仲彦霖吴文渊朱文波岳东东

机械制造 2022年8期
关键词:控件顶点工件

□ 吴焱明 □ 仲彦霖 □ 丁 涛 □ 吴文渊 □ 朱文波 □ 岳东东

合肥工业大学 机械工程学院 合肥 230009

1 应用背景

全自动打磨系统需要解决的一个重要问题是自动获取工件需要打磨的位置信息,然后将位置信息转换为路径信息。在现有研究中,路径规划主要采用计算机辅助设计、计算机辅助制造,以及基于手工示教的路径规划。

工业机器人的示教方式主要是示教盒示教,利用机械臂进行打磨,通过示教生成移动路径上工业机器人的位置、姿态,记录并上传至工业机器人控制器。丁健伟[1]研究了工业机器人示教系统与示教交互管理软件的开发,完善了传统示教系统,增强了人机交互感。许扬[2]针对传统示教编程的局限性,以及工业机器人快速工作这一目标,提出基于示范学习的示教方法,使工业机器人具备较强的学习能力和决策能力,但是交互方式不灵活,学习效率低,尚处于理论阶段。以上对传统示教方式的改进无法改变工业机器人需要随着打磨对象的改变而频繁示教的局限性。

谢小辉等[3]提出通过Unigraphics软件二次开发接口,构造与Unigraphics软件无缝集成的工业机器人打磨抛光离线编程系统。在Unigraphics 软件中对工件进行离线打磨编程,将生成的数控加工代码导出,进一步重组数据,转换为工业机器人可以识别的数据格式。然后将程序导入工业机器人系统,实现打磨。李双[4]应用SolidWorks软件进行二次开发,搭建工业机器人离线编程系统,实现计算机辅助设计软件、计算机辅助制造软件与离线编程一体化。需要注意的,离线编程软件的开发受到特定软件的约束,在得出数控加工代码后,要转换为工业机器人系统能够识别的代码也不容易,不同品牌工业机器人的应用程序各不相同,想要设计出通用的转换模块难度较大。

无论是手工示教还是离线模式的路径获取,均需要操作人员有一定的工业机器人知识与编程能力。示教盒示教方式还需要操作人员接触复杂、危险环境,这对于协作交互任务而言有很大限制。由此可见,传统示教方式很难满足中小型企业实际应用中对工件切换过程快速性、低成本及操作简易性的要求。对此,笔者提出在工件打磨软件开发中应用AnyCAD控件,通过AnyCAD控件三维引擎解析工件三维模型标准格式文件,获取所需要的加工信息,自动确定打磨位置,处理为合适的路径点,提供给机械臂进行加工。AnyCAD控件的基础模块包含模型显示、几何造型、数据交换等功能,AnyCAD控件的核心功能基于C++语言实现,二次开发接口支持.Net开发环境。

2 加工对象

箱体类钣金焊接件表面打磨处如图1所示,内部焊接处如图2所示。箱体类钣金焊接件在拐边拼接处有长条型焊接面,有很多焊瘤和焊缝需要进行打磨处理。焊接点会造成箱体类钣金焊接件内表面局部热变形,产生斑点,这些地方同样需要打磨。

▲图2 箱体类钣金焊接件内部焊接处

3 软件功能

全自动打磨机软件能够读取STEP或STP格式文件。STEP格式是一种产品数据模型交换标准,广泛用于三维图形的数据交换。读取文件后,进行三维可视化,通过人机交互,可以直接观察工件及所需要打磨区域的位置。通过AnyCAD控件三维引擎中的模型造型引擎AnyGeom进行几何模型造型,通过AnyCAD控件三维引擎中的三维显示引擎AnyViz进行三维可视化展示。要想获得打磨区域的位置信息,可以通过算法自动得到交叠面,但是随着工件数量的增加及复杂程度的提高,各工件的交叠面数量繁多且复杂,十分影响判断,很难做到完全判断出交叠处是否为确定的打磨面。在三维图纸导入程序之前将需要打磨区域标注出来,然后通过所开发的软件识别这些标注,实现打磨面的确定,这是一个很好的解决方法。打磨区域的标注方式是将打磨面标记特定颜色。程序能够获取模型表面的打磨面标注,即可以获得需要的确切打磨区域位置信息。自动获取工件打磨区域位置信息后,进行算法处理,得到最终所需要的路径信息。工件打磨软件流程如图3所示。

▲图3 工件打磨软件流程

4 软件功能模块

4.1 三维模型

AnyCAD控件支持读取IGES、STEP、DXF格式文件,不同格式文件的读取方法不同,同一格式文件也可以采用不同的读取方法,所能获得的信息当然也不相同。AnyCAD控件数据交流模块所提供的STEP格式文件读取器可以读取三维模型文件,想要读取模型上的打磨面标注,需要对STEP格式文件读取器的参数进行处理。模型读取代码如图4所示。

▲图4 模型读取代码

模型读取代码中,FileName为STEP格式文件名,brush的作用是收集TopoShape对象和模型面的属性。ColorBrush类继承TopoShapeReaderContext类,内部有两个重要方法。方法OnSetFaceColor()可以依次用读到的颜色创建FaceStyle对象,通过FaceStyle将对象打磨面的标注颜色传递至创建中的模型,未读取的标注颜色添加至词典faceStyleDictionary。方法OnFace()将当前读取到的标注颜色赋值至模型对应的打磨面,同时将与特殊标注颜色匹配的打磨面及与之对应的场景节点存入词典topo_Node中。在词典对象Dictionary faceStyleDictionary中,键为RGB颜色值,值为FaceStyle对象,这一词典用于存储加载文件时模型的颜色。在词典对象Dictionary topo_Node中,键为SceneNode对象,值为TopoShape对象,用于存储场景节点和对应加入至此场景节点的TopoShape对象,在获取打磨面信息过程中需要使用到。模型赋色和topo_Node获取流程如图5所示。

▲图5 模型赋色和topo_Node获取流程

4.2 可视化处理

三维可视化通过AnyCAD控件显示引擎完成,工作原理为得到RenderWindow3d类实例化对象的属性View3d,通过View3d类实例化对象获取场景渲染器及场景节点,将待显示的物体通过场景节点SceneNode类进行实例化,通过Geometry、Shape等相关类描述形状,通过Material类描述外观、材质等,并通过Matrix、Transform类管理物体位置及观察视角[5]。渲染器及场景节点的获取流程如图6所示。将物体与指定场景节点绑定后,将场景节点加入场景管理器,通过场景管理器管理所有场景节点。

▲图6 渲染器和场景节点获取流程

只有已加入到场景管理器中的场景节点,才能够被显示引擎显示,采用RenderWindow3d类实例化对象的ShowGeometry()方法可以完成这一步骤,同时可以获得需要显示的TopoShape对象所挂接的场景节点,并应用这一场景节点设置面的属性。显示模型并获得场景节点代码如图7所示。

▲图7 显示模型并获得场景节点代码

三维可视化处理结果如图8所示,标注的打磨区域用方框包围。

▲图8 三维可视化处理结果

对模型导入时获取的词典topo_Node的场景节点进行遍历,找到符合标注条件的场景节点,获得与之对应的topoShape对象。用TopoShapeProperty类实例化对象获取topoShape对象的顶点坐标信息。Vector3是顶点的类型,包含空间坐标系的三个坐标分量。位置信息获取代码如图9所示。

▲图9 位置信息获取代码

5 顶点拟合

每个加工面上通过ExplorVertices()方法获得的顶点数量未知,原因是一条边不是单纯的直线线段,或边线与其它边线有交点。根据对加工对象进行分析,一些距离很小的顶点没有必要同时存在,因此对这些点进行拟合非常有必要。将盘型磨具端面看作一个有一定直径的虚拟圆,参照虚拟圆的尺寸对所有面进行归类拟合。因为加工对象是斑点状及带状条形打磨面,所以归类为Ⅰ型面和Ⅱ型面。PointLocation类用于获取拟合后的顶点,对每一个打磨面进行顶点拟合后,所有顶点存入对应的List集合中。

对于可用盘型磨具端面全覆盖的Ⅰ型面点状区域,当盘型磨具端面尺寸确定后,虚拟圆直径也就确定,可以被虚拟圆完全覆盖的凸多边形面可以看作一个点。对一些面积较小且形状不规则的待打磨面进行标注时,用规则的矩形进行标注。由此Ⅰ型面的确定条件为一个面对应的顶点集合中距离最远的两个点之间的距离小于虚拟圆直径。矩形最小覆盖圆如图10所示,矩形对角线为最小覆盖圆的直径。

▲图10 矩形最小覆盖圆

对于可以看作一条线的Ⅱ型面带状区域,如图11所示,当四边形中两条边的长度小于虚拟圆直径,但又不满足Ⅰ型面的条件时,可以将这两条边拟合为一个点,这样保存两个顶点即可。这两个顶点就是将这个打磨面看作一条线后的两个端点。

▲图11 Ⅱ型面带状区域

6 路径规划

6.1 建模

获取各打磨区域的顶点坐标后,需要对打磨区域进行路径规划。机械臂打磨的整体路径要尽可能短,如果将所有打磨区域看作一个点,那么这一问题可以抽象为旅行商问题[6],即给定一系列城市和两两城市之间的距离,求解旅行商访问每一座城市一次并回到起始城市的最短路径问题。对于这一问题,国内外很多学者进行了研究,利用蚁群算法[7]、布谷鸟搜索算法[8]、粒子群算法[9]、遗传算法[10]等进行求解。

从基于笛卡尔空间的路径规划角度看,在打磨面的三维坐标已经确定的情况下,要求从起始点开始到走完所有打磨面后的距离之和最短。但是对于箱体类工件而言,在三维空间中进行旅行商问题求解时,由于存在地形限制,两点之间的距离并非简单求出两点的欧氏距离。考虑以上因素,将三维模型展开,转换为二维平面进行旅行商问题求解。以顶面为基础面,将其它面展开加入顶面的方法有四种,按照实际走刀顺序,每种展开又有两种走向。箱体展开如图12所示。如对于展开方式1,实际走刀顺序有5、1、2、3、4和5、1、4、3、2两种。

▲图12 箱体展开

展开后平面上的打磨点二维坐标为Pi(xi,yi),i为1、2、…、n,此时路径规划目标就是使目标函数值L最小,函数为:

(1)

6.2 算法

借鉴模糊聚类[11]思想,并结合贪心算法[12]思想,对整体加工路径点进行排序,以获得一个距离为L的最优解或次优解。将打磨对象分为五个部分,考虑每个部分的点、线数量,对每个部分内部点、线采用贪心算法排序。完成各部分内部排序之后,再对五个部分按照展开方式进行排序连接,最终得到整体加工路径点顺序。

详细算法步骤如下:

(3) 按照贪心算法思想找到面5各点、线中与队列尾部点距离最短的点,添加入队列,直至面5中各点、线全部添加完成;

(4) 将队列反转,得到正确顺序;

(8) 复制队列,保存;

(9) 按照第(6)步~第(8)步依次完成面2、面3的添加;

(11) 对第(8)步的复制队列继续排列,按照第(9)步、第(10)步依次完成面4、面3、面2的添加;

(12) 依照剩余三种展开方式,按照第(1)步~第(11)完成排列,比较八种排列顺序总路程的长短,取总路程最短的排列顺序为最终加工路径规划方案。

7 结束语

笔者以全自动打磨系统为研究对象,分析全自动打磨机软件的需求,包括造型显示、自动获取加工面位置信息,以及对位置信息进行处理,提出应用AnyCAD控件进行工件打磨软件的开发。介绍了造型显示原理、获取打磨面标注信息原理,根据实际打磨情况,对获得的被标注打磨面进行顶点拟合,同时给出路径规划算法。对于中小型企业加工批量少、样式更换频繁的工件而言,这是一个良好的解决方案,并且可以解决加工环境恶劣、专业人员不足的问题。

猜你喜欢

控件顶点工件
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
过非等腰锐角三角形顶点和垂心的圆的性质及应用(上)
基于.net的用户定义验证控件的应用分析
考虑非线性误差的五轴工件安装位置优化
关于.net控件数组的探讨
三坐标在工件测绘中的应用技巧
焊接残余形变在工件精密装配中的仿真应用研究
一种非圆旋转工件支撑装置控制算法
基于嵌入式MINIGUI控件子类化技术的深入研究与应用
数学问答