background image

现 代 制 造

w w w . i c a d . c o m . c n

88

了前后工步的跳转交叉。同时利用双向链表结构也
可以很容易地实现工步的删除、添加等功能。

三、 应用实例

图2为火车车轮轮箍的加工工步图。在粗车图中

所示的踏面和喉部时,为了避免从一侧多刀车削产

“闷刀”

现象,加工时从喉部到踏面,再从踏面到

喉部交替进行加工,故产生了工步交叉。

笔者基于美国Bentley公司的MicroStation Mod-

e l e r 三 维 软 件 平 台 , 使 用 内 嵌 的 开 发 语 言
MDL(MicroStation Development Language),以

双向链表为数据存储形式,对上述工步交叉实现了
自动编程。其算法是:先找出需工步交叉的程序
段,再在需工步交叉的程序段开始时处理跳转,接
着调用加工过程,最后在段结束时处理跳转。

下面给出了算法的主要部分:

Private PlanChain *createProcessCode(PlanChain

*nodeP)

{  PlanChain *currNodeP;

int  serialNo;/*程序段号*/
initCurrStatus ();/*调用初始化函数*/
for (currNodeP = nodeP, data.processCounter = 1; currNodeP;

c u r r N o d e P   =   c u r r N o d e P - > n e x t P ,

data.processCounter++)

  /*找出需要工步交叉的程序段*/
{   if (currNodeP->capp.cross.crossId == TRUE)

{    if (!currNodeP->nextP)

架使假想刀尖点与对刀镜内的中心点重合

(如图5所

示)

。再将光标移到相应刀具补偿号,并按

“自动计算

(对刀)

键,这把刀两个方向的长度就被自动计算出

来并自动存入它的刀具补偿号中。

  a) 断面外径刀尖    b) 对称刀尖      c) 断面内径刀尖

图5 刀尖在放大镜中的对刀投影

4. 自动对刀

自动对刀又叫做刀具检测功能,是利用数控系

统自动精确地测量出刀具两个坐标方向的长度,并
自动修正刀具补偿值,然后直接开始加工零件。自动

对刀是通过刀尖检测系统实现的,如图6所示,刀尖
随 刀 架 向 已 设

定 了 位 置 的 接
触 式 传 感 器 缓
缓 行 进 并 与 之
接 触 , 直 到 内

部 电 路 接 通 发
出 电 信 号 , 数
控 系 统 立 即 记
下该瞬时的坐标值,接着将此值与设定值作比较,

并自动修正刀具补偿值。

图6  自动对刀

(上接第 86 页)

本文索引号:76

对本文提及的产品感兴趣的读者请拨打:010-68994816

本文索引号:77

对本文提及的产品感兴趣的读者请拨打:010-68994816

currNodeP->capp.cross.crossId =

FALSE;

mdlDialog_openAlert ("错误的工步

交叉, 交叉工步为最后一个工步!");}

};

/*段开始时处理跳转*/

if (cross.crossOn == TRUE)/*工步交叉开始*/

{fprintf (fp, "@121 R%d K%d K%d\n",

r.loopCounter - 1, cross.jumpOnWhich,serialNo);

  /*定义循环次数和第几步交叉*/}

roughProfile_createCode (currNodeP);/*调用粗车

函数*/

preciseProfile_createCode (currNodeP); /*调用

精车函数*/

/*段结束时处理跳转*/
if (cross.crossOn == TRUE)
{ serialNo = formerP->capp.aux.cutPositionId;/

*使用formerP指针调用前一工步,实现工步交叉循环*/

fprintf (fp, "@126 R540 K0 K%d\n",-1*serialNo);}

fprintf (fp, "@126 R541 K0 K%d\n",-1*serialNo);}

/*若没有工步交叉则在本工步内循环*/

用户在加工规划时只要输入必

要的工艺信息,就能实现自动编程

的工步交叉,经后置处理生成的N C
程序能直接用于轮箍的车削加工。

实际中把该算法编制成程序输

入到Siemens 810T数控系统,并在CH5716车床进行

加工,大大提高了生产效率,缩短了工时。

四、结论
本文使用双向链表的数据结构,编制出新的算法

应用于自动编程系统中,能很好地解决工步交叉问

题,经过实际验证该算法正确、高效、思路清晰。

图 2 火车车轮轮箍的加工工步图