高级检索

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

榫卯智能化加工代码生成系统的开发

汤琳 关惠元 王宁 代鹏飞

引用本文:
Citation:

榫卯智能化加工代码生成系统的开发

    作者简介: 汤琳,博士生。主要研究方向:家具设计与工程。Email:106330176@qq.com 地址:210037 江苏省南京市玄武区龙蟠路159号南京林业大学家居与工业设计学院.
    通讯作者: 关惠元, guanhuiyuan@njfu.com.cn
  • 中图分类号: TS657

Development of intelligent programming system for numerical controlled mortise and tenon joint

    Corresponding author: Guan Huiyuan, guanhuiyuan@njfu.com.cn ;
  • CLC number: TS657

图(10)表(3)
计量
  • 文章访问数:  23
  • HTML全文浏览量:  13
  • PDF下载量:  1
  • 被引次数: 0
出版历程
  • 收稿日期:  2018-12-18
  • 录用日期:  2019-01-02
  • 网络出版日期:  2019-03-28
  • 刊出日期:  2019-03-01

榫卯智能化加工代码生成系统的开发

    通讯作者: 关惠元, guanhuiyuan@njfu.com.cn
    作者简介: 汤琳,博士生。主要研究方向:家具设计与工程。Email:106330176@qq.com 地址:210037 江苏省南京市玄武区龙蟠路159号南京林业大学家居与工业设计学院
  • 1. 南京林业大学家居与工业设计学院,江苏 南京 210037
  • 2. 中国运载火箭技术研究院,北京 100076
  • 3. 苏州铨木智能科技有限公司,江苏 苏州 215131

摘要: 目的 榫卯加工代码的制作是实现榫卯数控加工的关键,但传统数控编程存在难度大、效率低、过度依赖CAM软件等问题,因此有必要开发一款高效的榫卯智能化加工代码生成系统。方法 本研究首先利用成组技术对榫卯进行分组,提取各组榫卯的尺寸参数,建立参数化的工件数据库。然后,通过对大量工艺经验和已有榫卯配合相关研究成果的函数表达,实现了榫卯尺寸智能匹配。接着,利用模板技术建立了每一类榫卯零件的参数化加工代码模板,并组建了刀具路径代码模块。运用表达式驱动算法完成对代码模板的实例化,由加工参数的变化带动模板内数值的变动,进而自动生成NC代码,实现了榫卯加工数控程序的参数化、模块化设计。最后,基于后处理原理,通过外接程序的方式完成坐标补偿值的自动计算与添加,实现了加工代码后处理自动补偿。在此基础上,运用可视化的编程语言VB开发了一款榫卯智能化加工代码生成系统。结果 结合改良型粽角榫零件加工代码的制作,验证了系统的可行性。通过实际加工以及对被加工零件尺寸的检验,验证了系统生成加工代码的准确性。结论 本系统具有操作简单、质量稳定等特点,实现了榫卯加工编程工序的简化和代码的自动生成,极大地提高了编程效率,有助于推动榫卯加工由经验型向知识型的转变。

English Abstract

  • 榫卯是一种典型的模块化结构件,具有种类繁多、尺寸多变、加工工艺相对固定等特点[1]。榫卯长期以来一直是家具加工流程中最为耗时的工序之一。近年来,随着实木家具生产向定制化、信息化方向发展,数控设备也被广泛的应用于榫卯加工中。现有榫卯数控加工使用的加工代码必须通过第三方CAM软件生成,但市面上的CAM软件大多缺乏专用型,应用分散、独立[2],每次编程仍需手工重新输入所有参数,造成编程工作重复性劳动多、效率低。数控加工程序的编制是一项综合要求较高的技术[3],既要求操作人员能熟练操作CAM软件,又要求操作人员有丰富的加工经验,这与家具企业该类人才缺乏的现状形成了尖锐的矛盾。此外,榫卯手工加工阶段积累了大量工艺知识、工艺数据,却仍没有形成统一的榫卯生产质量标准,榫卯数控加工程序质量难以保证[4]

    基于以上现状,本研究利用分组技术、模板技术以及参数化理论,研究了一种快速便捷,对编程人员要求低,稳定可靠,与数控设备良好兼容的智能化编程方法,并利用此方法,以Visual Basic 6.0为支撑平台,开发了一款面向榫卯数控加工编程的智能化系统(Computer aided process planning,CAPP)。该系统对于推动榫卯加工工艺智能化,提高榫卯加工的质量和效率具有重要意义,这也符合我国木工数控设备自动化处理技术专门化、智能化的趋势[56]

    • 榫卯具有显著的模块化特征,通过成组技术,将榫卯按结构和几何特征的相似性,逐级分组,然后对影响榫卯形状的尺寸参数进行分类。图1为榫卯尺寸参数关系图,榫卯尺寸参数可分为材料参数、位置参数、形状参数、配合参数4类;其中自变量为必须手动输入的参数,因变量为系统通过自动计算可得到的参数。这种分类形式能有效减少需要手动计算并输入的参数数量,降低误操作的几率。

      图  1  榫卯尺寸参数关系

      Figure 1.  Dimension parameter relationship of mortise and tenon joint

    • 榫卯配合参数是影响榫卯强度的重要因素之一,配合参数又与材料直接相关。关于这方面的研究很多[710],但在实际加工的运用当中,大多数企业是将一组配合量套用在所有材料上。这一方面是由于企业对配合参数对榫卯强度的影响认知还不够,另一方面是企业缺少既熟悉数控加工又了解木材特性的人才。本系统建立了配合量与常见木材的函数关系。当用户选定材料之后,系统将自动计算出最佳配合量,并填入榫卯配合参数框中。为了更贴近企业生产实际情况,配合参数框的建议值设置为可修改模式,企业可根据生产条件适当调整配合参数。

    • 榫卯在实际加工中,还存在大量的工艺数据,这些工艺数据掌握在少数工艺设计人员手中,没有得到过整理分析。在实际生产中,新产品尺寸参数的确定和优化主要依靠试加工摸索,浪费了人力物力。本系统把这些分散的工艺数据统一成函数形式,存入系统工艺数据库中。系统可以自动地进行合法性验证。每个约束关系都是一个关系表达式,因此,判断约束关系的问题,实质是表达式求值问题[11]表1为部分榫卯尺寸的工艺要求和函数表达,系统利用这些工艺要求函数,对接收到的榫卯和刀具尺寸参数先进行匹配和判断,如不符合工艺经验要求将立即报错。

      工艺经验
      Process experience
      函数表达
      Function expression
      备注
      Remarks
      榫眼宽度约为卯材厚的1/3.5 ~ 1/4
      Thickness of mortise is about 1/3.5−1/4 of material
       D/4 ≤ AD/3.5 A为榫眼宽度,D为卯材厚
      A is mortise width, and D is material thickness
      榫眼宽度不小于铣刀直径
      Mortise width is not less than milling cutter diameter
       Ad d为铣刀直径
      d is milling cutter diameter
      双直榫榫间距不小于铣刀直径
      Spacing between two tenons is not less than the diameter of the milling cutter
       W3d W3为双榫榫间距
      W3 is spacing between two tenons
      粽角榫立料上两榫头间最小距离不小于铣刀直径
      Spacing between two tenons on vertical material of three-way mitered joint is not less than the diameter of the milling cutter
       a ≤ 1.414 2 × (WW4
      W5W6b) − d
      W4为左边距,W5为右边距,W6为榫偏置,a为榫头厚度,b为榫头宽度
      W4 is left margin, W5 is right margin, W6 is joint offset, a is joint thickness, and b is joint width

      表 1  部分榫卯尺寸的工艺要求和函数表达

      Table 1.  Technological requirements and function expressions of mortise and tenon joint

    • 通过对同一类榫卯结构的标准NC代码结构和内容的分析,发现同一类型榫卯的标准NC代码具有极大的相似性。因此可以采用模板技术,将同一类榫卯的刀具路径抽象成一个模板,由加工参数的变化带动模板内部分数值的变动。将这种规范化、标准化的刀具路径模板进行存储,就形成了系统的刀具路径模块库[12]。模板中包含静态和动态2个部分(图2),静态对象是指模板中无需改变直接输出的固定部分,例如代码文件首末尾预处理格式模块;动态部分则是指会根据外部输入变化的部分,例如切削运动模块,动态部分多通过变量或函数的方式进行定制[13],是刀具路径模板里最重要的部分。对于静态部分(预处理格式模块、刀具模块),可用基本指令直接写入数据库,需要时进行调用;动态模块(切削运动模块)则受加工参数影响,且变动频繁,因此切削运动模块的模板化表述则是刀具路径代码模块建立的难点和重点。

      图  2  某榫孔加工NC代码模块划分示意图

      Figure 2.  Schematic diagram of NC code module division of one mortise

    • 结合机械加工一般流程,对榫卯加工切削运动模块再进行流程提取,流程如表2所示,为“刀具定位→刀轴旋转→主轴转速确定→快进至工件表面→加工→抬刀→退刀”。各类榫卯和零件的切削运动模块流程形式基本一致,区别在于加工环节。因此,可以将除加工环节以外的其他环节的格式固定下来,如刀具定位必有G00、G90,主轴转速确定必出现S、M03,只对代码地址后变动的数值进行参数化。确定需要进行参数化的对象为:主轴转速、进给速度、加工点坐标等,参数化结果如图3所示,其中主轴转速和进给速度直接关联用户的输入值,加工点坐标采用表达式驱动算法[12],表达式由榫卯尺寸参数和刀具参数组成的函数表示,榫卯尺寸参数和刀具参数的变动直接驱动加工点坐标值的变化。对于榫卯加工中一些重复频率较高的加工工艺(如直线补插、圆弧补插、深度加工等),可以通过结合固定循环指令来完成编程,例如椭圆斜榫的切削就可以通过“圆弧补插 + 深度判断”指令的循环使用来完成。

              流程 Flow 固定格式 Fixed format
      刀具定位 Cutter positioning G00 G90 X(…)/Y(…)
      刀轴旋转 Cutter shaft rotation A(…)/B(…)/C(…)
      主轴转速确定 Spindle speed determination S(…) M03
      快进至工件表面 Fast forward to workpiece surface X(…)/Y(…)/Z(…)
      加工 Processing G01/G02/G03 X(…)/Y(…)/Z(…) F(…)
      抬刀 Cutter lifting G00 X(…)/Y(…)/Z(…)
      退刀 Tool retracting G00 X(…)/Y(…)/Z(…)
      注:(…)表示需要参数化的数值。Note: (…) means value that needs to be parameterized.

      表 2  榫卯加工切削运动模块的一般流程和固定格式

      Table 2.  General workflow and fixed format for cutting motion module of mortise and tenon joint processing

      图  3  切削运动模块加工点数值参数化

      Figure 3.  Numerical parameterization of working points in cutting movement module

    • 由于数控机床搭载的控制系统的不同,机床可以识别并执行的代码形式也有所差别,因此必须对标准NC代码进行后处理。后处理主要分为2部分,即格式后处理和偏置补偿后处理[1314]。格式后处理一般是在标准NC代码的前后添加或修改固定代码行,参考1.2.1内容,将固定代码行视为静态模块,直接存入刀具路径模块库,需要时直接调用即可。另一个部分则是偏置补偿,偏置补偿的原理是通过补偿函数算得XYZ轴坐标值的补偿量,然后对每一个刀路加工点进行补偿,使加工坐标系下各坐标点与工件坐标系一致[1516]。设OtXtYtZt为加工坐标系,坐标系原点为Ot,则能被机床正确加工的坐标值XtYtZt为:

      $ \left\{ \begin{aligned} & {X_ {\rm{t}}} = {X_0} + {X_{\text{偏}}}\\[3.8pt] & {Y_{\rm{t}}} = {Y_0} + {Y_{\text{偏}}}\\[3.8pt] & {Z_{\rm{t}}} = {Z_0} + {Z_{\text{偏}}} \end{aligned} \right. $

      式中:X0Y0Z0为工件坐标系下标准坐标值,XYZ为通过补偿函数得到的坐标补偿数值。

      以CB型五轴机床为例,通过五轴工装补偿原理,可以得到该型加工坐标系原点Ot偏置量XYZ为:

      $ \left\{ {\begin{aligned} & {X_{{\text 偏}} = {X_{\rm{t}}} - {X_0} = S + X + Y\sin C - }\\ & \quad \quad \;\;{X\cos C - S\cos B\cos C + L\sin B\cos C}\\ & {Y_{{\text 偏}} = {Y_{\rm{t}}} - {Y_0} = Y - Y\cos C - }\\ & \quad \quad \;\;{X\sin C - S\cos B\sin C + L\sin B\sin C}\\ & {Z_{{\text 偏}} = {Z_{\rm{t}}} - {Z_0} = S\sin B + L\cos B} \end{aligned}} \right. $

      式中:X为B轴中心到A轴中心在X轴方向上的偏置,mm;Y为B轴中心到A轴中心在Y轴方向上的偏置,mm;S为刀轴摆动中心到B轴中心在X方向上面的偏置,mm;L为刀尖中心点到B轴中心在Z轴方向上的偏置,mm,即刀具摆长(无RTCP功能时,为刀长 + 摆长);B为B轴旋转角度,°;C为C轴旋转角度,°。

      偏置补偿的功能,通过外接程序的形式来实现。外接程序接收到用户输入的机床偏置参数,自动计算XYZ坐标补偿量,并将补偿量传回主系统的刀具路径代码模块中,再通过式(1),计算并得到机床可正确加工的坐标值。

    • 图4为榫卯自动化加工代码生成系统的功能模块划分。榫卯自动化加工代码生成系统主要由3大模块及其子模块组成,其中普通用户有权限对输入功能模块和数据输出功能模块进行操作,而数据库模型只对工程师开放权限,普通用户无权查看和修改。选用Visual Basic 6.0作为用户界面开发工具,以它的脚本语言VBScript为编程工具,在Win7上编程实现。

      图  4  榫卯自动化加工代码生成系统功能模块

      Figure 4.  Functional modules of automatic programming system for numerical controlled mortise and tenon joint

    • 图5为系统的工作流程图。

      图  5  榫卯智能化加工代码生成系统流程图

      Figure 5.  Flow chart of intelligent programming system for numerical controlled mortise and tenon joint

      ① 进入榫卯管理子系统,选择榫卯类型,系统调取刀路模块库中相应刀具路径模板;输入榫卯尺寸参数,系统将参数自动存储到工件数据库对应参数代码地址,同时通过核心模块中的榫卯尺寸智能匹配子模块,快速判断输入的尺寸是否符合工艺要求。如不符合,系统自动报错,并要求重新输入参数。如符合,系统自动完成剩余尺寸参数的填写,并对刀具路径模板中加工点坐标函数进行赋值。

      ② 进入刀具管理子系统,选择刀具类型,输入刀具参数(每次下刀深度、主轴深度、进给速度等),系统自动将参数自动存储到刀具数据库对应参数代码地址,同时通过核心模块中的榫卯尺寸智能匹配子模块,快速判断输入的尺寸是否符合工艺要求。如不符合,系统报错;如符合,系统不报错,并再一次对刀具路径模板中加工点坐标函数以及主轴转速、进给速度进行赋值。

      ③ 进入机床管理子系统,选择机床类型,系统根据机床类型,调取刀具路径代码模块中对应的预处理格式,填写至已经调用的刀具路径模板首末尾;然后输入工装误差参数,系统调用外部坐标值补偿程序,将接收到的误差参数存储到外部程序相应代码地址,补偿程序自动计算XYZ坐标补偿量,并将补偿量传回主系统,完成对加工点坐标数值的补偿。

      通过以上3步,系统完成了榫卯加工代码的智能化生成。

      ④进入代码输出模块,该模块可以以文本格式,对系统生成的加工代码文件以及加工工艺文件,进行输出和保存。

    • 用户输入功能模块由榫卯尺寸参数输入、刀具尺寸参数输入和机床偏置参数输入3个子功能模块组成。3种参数的输入界面构成了系统界面的主要部分。用户依次选择参数类型并输入参数值。参数输入界面设计以图文结合为主,简洁直观,便于用户理解,降低操作难度。图6为榫卯自动化加工代码生成系统的榫卯尺寸参数输入界面,为了提高交互设计的可视性,添加了弹窗效果,对参数进行名词解释。

      图  6  榫卯参数输入功能界面的弹窗效果

      Figure 6.  Popups on interface of parameters input functional modules

    • 核心模块包含工件数据库、刀具库、榫卯尺寸智能匹配、刀路模块库和后处理补偿函数这5部分。工件数据库存储各类型榫卯参数代码,用于将用户输入的榫卯尺寸参数值存储至对应参数代码地址;刀具库中存储各类型刀具参数代码,用于将用户输入的刀具参数存储至对应参数代码地址;榫卯尺寸智能匹配中存储有尺寸匹配函数,用于榫卯尺寸参数的计算和判断;刀路模块库存储有各组榫卯零件刀具路径的参数化模板以及各类格式预处理格式;后处理补偿是外接程序,存储有各类机床坐标值补偿函数,用于接收机床偏置参数,自动计算和传回坐标补偿值。核心模块只对工程师开放管理权限,避免普通用户误操作引起系统出错。

    • 代码输出模块包括加工代码文件输出功能和工艺文件输出两大功能。图7为数据输出功能模块的界面,用户选定目标零件,根据需要选择输出文件的类型。

      图  7  系统文件输出功能模块界面

      Figure 7.  System interface of file output functional modules

    • 分别点击并进入榫卯尺寸输入界面、刀具参数输入界面和机床偏置参数输入界面,填写参数值,系统运行流畅。图8例示了部分参数设置界面,即榫卯尺寸输入界面、刀具参数输入界面、机床偏置参数输入界面和生成的NC代码结果部分截图。

      图  8  部分参数输入界面和NC代码

      Figure 8.  Part NC codes and parameter input interfaces

    • 选用组成改良型粽角榫的3根材料中的大边作为加工对象,验证系统自动生成的加工代码的实际加工效果。图9为改良型粽角榫大边的模型和尺寸图。

      图  9  改良型粽角榫大边模型和尺寸图

      Figure 9.  Model and dimensional drawing of improved three-way mitered joint’s long edge

    • 搭载苏州铨木智能有限公司研发的FAM1414S端面加工单元,进行实际加工验证。图10为一次装夹后加工出的改良型粽角榫大边试件。

      图  10  实际加工的改良型粽角榫大边试件

      Figure 10.  Actual machining specimen of improved three-way mitered joint’s long edge

    • 实际加工大边试件各尺寸与模型尺寸对比如表3所示。由表3可知:实际加工值和目标值的误差值均控制在0.1 mm以内,达到了家具生产的加工要求。因此,榫卯自动化加工代码生成系统的准确性进一步得到了验证。

      尺寸编号 Size No. a b L D E F G H
      模型尺寸值 Model size value 8.00 8.10 22.20 13.00 8.10 6.00 22.00 13.00
      实际加工尺寸值 Actual size value 8.04 8.03 22.16 13.09 8.04 6.01 22.05 13.08
      误差 Error 0.04 − 0.07 − 0.04 0.09 − 0.06 0.01 0.05 0.08
      注:误差为实际加工尺寸值减去模型尺寸值。Note: actual size value minus model size value is error.

      表 3  实际加工大边试件各尺寸与模型尺寸对比

      Table 3.  Size contrasts of actual value of the long side and model value

    • (1)利用成组技术,将榫卯进行分组并提取各组榫卯尺寸参数,建立榫卯尺寸参数与材料和工艺经验的函数关系,完成了榫卯尺寸参数的智能匹配;根据模板技术,建立标准化刀具路径模块库,实现了以参数驱动刀具路径;基于偏置补偿后处理的原理,实现了以外部程序模块调用的形式对标准坐标值进行补偿的功能。为开发智能编程提供了技术支持。

      (2)开发了一款榫卯智能化加工代码生成系统,系统具备榫卯尺寸、刀具、机床偏置等基本参数,匹配并计算参数结果,输出NC代码等功能。实现了榫卯加工代码的智能化编制。使数控编程摆脱了对CAM软件的依赖,从原理上解决了数控编程重复性劳动率高的问题,并降低了榫卯数控编程的难度,也为进一步研究数字化改良榫卯的性能提供了条件。

      (3)通过一种改良型粽角榫零件的实际加工,验证了该系统的可行性和生成代码的准确性。

参考文献 (16)

目录

    /

    返回文章
    返回