0.引言
数控编程是把零件的图形尺寸、工艺过程、工艺参数、机床的运动以及刀具位移等内容, 按照数控机床的编程格式和能识别的语言记录在程序单上的全过程。程序编制的方法主要有手工编程和自动编程两类。近年来数控技术发展得十分迅速, 数控机床特别是数控车床的普及率越来越高, 但是, 数控车床在加工过程中遇到轮廓较复杂的零件时, 用人工编写数控程序要花费大量的时间, 且易出错[ 1, 2 ]。采用CAD /CAM集成技术实现数控加工程序的图形化自动编程是当今的主流[ 3 ]。目前国外有许多高档的CAD软件,如Pro /E、UGⅡ、IDEAS、MasterCAM、Cimatron 等,均有性能良好的CAM模块, 可利用其三维实体数据生成NC程序。但这些软件较难掌握, 且价格昂贵。而国内一些基于Autodesk公司的AutoCAD 软件为支撑平台研制的自动编程系统中[ 4, 5 ] , 较多的方法是由AutoCAD生成零件加工图形, 从而生成DXF格式文件, 然后, 系统通过对DXF图形文件进行分析, 读取数控加工所需的零件几何信息。国内也有基于图形的数控车床自动编程系统的研究[ 6, 7 ] , 但还未见具体软件系统的实现。
本系统采用自行开发的二维图形软件包实现加工零件轮廓的图形描述, 经过工序划分以及加工工艺参数的人机交互式输入, 实现了数控加工程序直接从图形到程序的自动编程。
1.系统框架结构和功能
本系统结构模块的组成框图如图1所示, 主要由以下模块组成:
(1) 加工工艺规划模块。此模块根据数控加工工艺特点, 将其分解为开口槽腔、闭口槽腔、端面车削、螺纹、切断等工步(开口槽腔、闭口槽腔、螺纹分别有外圆和内孔之分) 。任何车削加工零件的外形轮廓加工工艺都可以拆分为以上工步。每一工步都有粗、精加工, 可以通过工序管理器来实行加工程序的合并。
图1 系统结构框图
(2) 特征图元绘制模块。此模块具有简单的CAD造型功能,能够完成零件二维轮廓的绘制。
同时在刀位轨迹生成以后能够实现轨迹的图形仿真显示。
(3) 工艺参数设定模块。此模块对各种加工工艺参数进行交互式输入, 包括起刀点、进退刀矢量、加工余量、切削深度、进给量、切削速度以及机床主轴转速等工艺参数。
(4) 刀位轨迹生成模块。此模块根据所选择的工步以及走刀方式, 自动生成刀位轨迹。
(5) G代码生成模块。此模块将系统生成的刀位轨迹转换为数控车床加工G代码程序并以文本文档的形式输出。
2.零件轮廓的表达以及图形输入
数控车床加工的零件多以轴类及盘类零件为主,尽管这些待加工零件是真三维的, 但是在实际加工中, 一般都是二维的, 即刀具在一次切削过程中始终在X - Z平面内运动。因此, 本系统可以用直线、圆弧来完成加工零件轮廓的二维描述。
2.1 零件轮廓的表达
数控车床加工的零件, 其表面轮廓段一般都由直线和圆弧等构成, 针对这种情况建立了零件轮廓的统一表达模型, 将构成零件轮廓的各轮廓段统一用轮廓边界点表示, 这样便可以建立整体轮廓的统一描述。可以认为零件的整体轮廓均是由直线和圆弧构成的,对于自由曲线, 可以根据自由曲线轮廓段的表面粗糙度要求, 采用有理B 样条插值算法将其离散为一系列直线段。
把构成轮廓表面的各轮廓统一称为边界点, 那么整条轮廓便是由多个首尾相连接的边界点所组成, 每一边界点内含有一个描述边界性质的几何点点集。直线是一个包含两个几何点(起点和终点) 点集的边界点; 圆弧是一个包含3 个几何点(起点、终点和圆心) 点集的边界点, 由于三点不能唯一确定一条圆弧, 因此, 可以再加上圆弧的旋转方向(顺时针或者逆时针) 来确定圆弧。本系统采用面向对象的计算机编程语言Python开发[ 6, 7 ] , 在数据结构上采用
图2 开口槽腔与闭口槽腔的划分及图形显示
Python语言的数据类型列表来表示一个轮廓段的边界点。如图2 ( a) 所示的零件轮廓段的数据结构为:Part = [ ( ′Line′, [ (2010, 12010) , (381366, 861405) ] ) ,( ′Oval1′, [ 0, ( 381366, 861405 ) , ( 811176, 1021418 ) ,(591198, 621341) ] ) , ( ′Oval1′, [ 1, ( 591198, 621341) ,( 461535, 381039 ) , ( 721116, 471866 ) ] ) , ( ′Line′,[ (721116, 471866 ) , ( 821156, 201065 ) , ( 1411307,201065) ] ) ]。其中, 直线的标志为‘Line’; 圆弧的标志为‘Oval1’, 圆弧后面的点集列表中的1表示顺圆, 0表示逆圆。
2.2 图形输入
零件几何图素的输入主要包括点、线、圆的输入, 通过系统给出的绘图工具在绘图区绘出。如点可以通过键盘形式进行参数输入, 也可以直接通过鼠标点击输入。系统提供了直线和圆弧的绘图工具。直线主要通过两点来生成, 选取直线的绘图工具以后, 在绘图区直接鼠标点击就可以生成直线, 连续点击将生成首尾相连的多条直线。圆弧的绘图工具包括三点圆弧(起点、终点和圆心) 以及两点半径圆弧(起点、终点和半径) , 通过圆弧的旋转方向来最终确定为顺时针圆弧还是逆时针圆弧。
几何元素输入后分别以点线圆的标准形式存放于几何参数表中, 其中点的记录内容为坐标值( X,Y) , 直线和圆弧的记录内容如上文所述。这些数据都以列表的形式存放在计算机的内存中。图2所示为本系统根据数控车削加工工艺划分的开口槽腔和闭口槽腔的图形显示, 其中开口槽腔定义为用水平线与零件轮廓线求交时有且只有一个交点的轮廓形状, 闭口槽腔则只有两个交点。
零件轮廓数据输入后往往需要进行修改, 可利用图形编辑菜单项中的撤消、重画、删除等功能最终形成该零件的加工轮廓图形。直线和直线相交的地方,可以进行倒角处理, 在作图过程中, 选择倒角功能,可以通过数据显示功能来选择倒角方式(直线倒角还是圆弧倒角) , 输入倒角的参数最终实现倒角。
3.刀位轨迹和G代码程序的生成
图3 开口槽腔刀具轨迹生成程序框图
刀位轨迹以及G代码生成是本系统的核心部分,根据前面所述的工步划分, 选择合适的工步, 绘制零件的加工表面二维轮廓图形, 可以使用系统工艺参数数据库自动提供的预设加工工艺参数, 也可以通过人机交互方式完成工艺参数的输入。同时也可以修改某一工艺中的刀具参数、切削参数等。数控加工中为减少多次安装带来的安装误差, 一般采用一次安装。
对那些需要调头加工的部位采用右偏刀反向走刀切削, 此外, 对于端面处的开口槽腔, 加工时可以选择向下的切削方向。因此加工时的切削方向分为向左、向右和向下的切削方向。
在刀位轨迹规划中, 粗加工的刀位轨迹规划是关键, 精加工只是刀具沿着轮廓线走刀, 因此其刀位轨迹的生成算法仅仅是加工零件表面曲线的偏置, 图3所示为开口槽腔加工时的刀位轨迹生成程序框图。而粗加工往往还跟零件的毛坯形状有关, 本系统可以绘制外圆以及内孔加工时的毛坯轮廓曲线, 跟零件轮廓曲线结合而确定加工区域。根据加工参数中的起刀点、加工余量、进退刀矢量等参数, 用水平线与加工区域求交, 求得的交点即为刀具刀尖的运动点坐标。
在点击主界面上的生成G代码的按钮后可以将生成刀位轨迹和G代码程序显示在界面上, 并可以将零件信息、毛坯信息、加工工艺参数和G代码程序一起用文本文件保存下来。如图4所示, 主界面左边显示的就是图3中的开口和闭口槽腔沿负Z轴方向水平切削的刀位轨迹, 右下角显示的是生成的G代码程序。
图4 刀位轨迹生成、仿真显示和G代码生成
4.结束语
本系统是一个CAD /CAM集成的数控车床自动编程软件, 只要按照本系统所划分的数控车削加工工步, 将待加工零件进行工艺规划, 分解成各种工步,每个工步都可以单独生成可用的加工程序, 也可以通过本系统的工序管理器模块进行工步合并, 生成一个总的G代码文件。本系统集绘制图形、工艺参数处理、刀位轨迹和G代码生成于一体, 具有学习、使用简单的特点。
随着基于PC的开放式数控系统的研究越来越深入, 以Windows以及Linux为平台的数控系统必将得到更为广泛的应用。本系统以华中数控有限公司生产的HNC - 21 /22世纪星系列数控车床为基础设计的。采用Python 语言编写[ 5, 6 ] , 可以在Windows和Linux等多种操作系统平台下使用。本系统既可以作为开放式数控系统的编程模块, 也可以自成体系作为CAD /CAM软件以及离线编程系统使用, 因此具有良好的应用前景。