微型机与应用
WEIXINGJI YU YINGYONG
2000　Vol.19　No.5　P.50-51




应用AutoCAD实现整体涡轮加工过程仿真
王刚赵万生
摘 要：利用AutoCAD14提供的3维实体运算功能实现整体涡轮加工过程的动态仿真方法。
关键词：动态仿真 AutoCAD 整体涡轮
　　随着现代科学技术的发展，机械零件的复杂程度越来越高。因此，在零件实际加工之前的仿真加工就显得格外重要。传统的仿真方式都是由用户自己针对特定的零件在用户自己的应用平台上进行开发，其编程效率和仿真效果都直接受到用户水平的限制，而且开发周期和开发难度都很大。为此，作者在本文中将讨论如何引入AutoCAD R14作为开发平台，编制复杂零件加工过程的计算机仿真软件。
1 仿真加工原理
　　计算机仿真加工需要解决二个问题。一个是模仿机床加工工件时，在毛坯上切除材料余量，形成工件成品的过程；另一个是要检测加工过程中，刀具是否和机床发生干涉，刀具的运动切削轨迹是否连续、合理。如果将工件的实际加工过程抽象成几何问题，那么在仿真中毛坯余量的去除过程就可以转化为：工件毛坯几何体和刀具几何体做差运算（用表示毛坯的几何体剪切表示刀具的几何体），得到的计算结果就是工件成品。
　　基于上述分析，我们知道：实现几何体之间的运算关系（交、并、差）是仿真软件中必不可少的技术条件。由于3维几何体布尔运算算法和3维几何体光学渲染效果算法的编程量都很大，对相关的专业知识和编程技术都有很高的要求。所以，在自己编制仿真程序时，可以考虑利用第3方平台辅助开发。
　　AutoCAD这种广泛使用的计算机辅助绘图软件提供了丰富的2维图形操作和3维几何体运算功能（交、并、差），同时它还提供了ARX、ADS、Visual LISP或者Script脚本语言等多种编程接口，供用户进行二次开发。
　　因此，选用AutoCAD R14作为开发支持平台可以简化编程过程、提高编程效率，同时改善仿真效果。这样，在编制仿真加工程序时就可以充分利用AutoCAD R14平台提供的实体运算功能（交、并、差）来模拟实现机械加工中毛坯和刀具之间的切削关系，从而达到仿真目的。本文以其中最简单的Script脚本文件为例介绍如何利用AutoCAD实现复杂零件加工过程仿真。其它编程接口的操作过程大同小异，只是在运行速度上有所差异。
2 仿真加工实例
　　涡轮是一种将工质（蒸汽或燃气）的热能转换为机械功的旋转式动力机械。航天工业上应用的涡轮结构复杂，加工精度要求高，材料的可加工性差，尤其是叶片工作表面为空间自由曲面，且形状复杂，所以一般采用4轴以上的电火花数控机床加工（图1是火箭发动机整体涡轮盘的三维几何造型图）。

图1 整体涡轮盘局部
　　在进行仿真之前，我们先分析整体涡轮盘的加工过程。首先采用指状铣刀在多坐标数控铣床加工出电火花加工使用的成型电极；然后在电火花数控机床上采用成型电极靠模加工出整体涡轮。仿真加工的步骤和实际加工步骤相似。先构造出指状铣刀几何体和成型电极的毛坯几何体，使指状铣刀几何体沿着算好的加工轨迹运动，同时在毛坯几何体和铣刀几何体之间做差运算，这样可以计算出表示成型电极的几何体。接下来使成型电极几何体沿着计算好的运动轨迹运动，同时在成型电极几何体和涡轮盘毛坯几何体之间做差运算，最终得到仿真结果--整体涡轮盘。
　　在编制仿真程序时，我们首先按机床的实际相对位置关系，绘制出刀具几何体和电极毛坯几何体。通常毛坯和刀具的几何形状较为简单（本例中电极毛坯是一段圆环），可以通过基本几何体（球体、圆柱体、圆锥体、立方体等）经过布尔运算形成。构造铣刀几何体和电极毛坯的部分代码如下（采用Matlab语言编写）：
　　fid＝fopen（′f＼acad14＼mp．scr′，′w′）；打开1个文件，准备 
　　　　　　　　　　　　　　　　　　　　　　　　　　写入script文件
　　fprintf（fid，′new．＼n′）；创建一个新CAD图
　　fprintf（fid，′units 2 6 1 4 0 n＼n′）；确定绘图单位
　　fprintf（fid，′ucsicon or＼n′）；显示坐标原点
　　fprintf（fid，′vpoint －1，－1，1＼n′）；确定视点，以便形成3
　　　　　　　　　　　　　　　　　　　　　　　　　　　　维观察效果
　　fprintf（fid，′cylinder ％f，％f，％f ％f ％f＼n′，0，0，xmin，
　　　　　　　　　　　　　　　　　　　　　　　　10．65，xmax－xmin）；
　　　　　　　　　　　　　　　　　　　　　　　　　　　　　绘制一个圆柱
　　fprintf（fid，′cylinder ％f，％f，％f ％f ％f＼n′，0，0，xmin，
　　　　　　　　　　　　　　　　　　　　　　　　9．35，xmax－xmin）；
　　fprintf（fid，′zoom e＼n′）；
　　fprintf（fid，′subtract 10．75，0，0 9．35，0，0 ＼n′）；
　　fprintf（fid，′ucs 3 0，0，1 －1，0，0＼n′）；
　　进入工件坐标系，并构造工件：
　　fprintf（fid，′slice 0，0，10．65 0，％f，0 1，％f，0 0，％ 
　　　　　　　　　f，1 0，％f，0＼n′，ymax，ymax，ymax，ymax－2）；
　　　　　　　　　　　　　　2个同心圆柱做差运算，形成圆柱环
　　fprintf（fid，′slice 0，0，10．65 0，0，0 1，0，0 0，1，0 0， 
　　　　　　0，1＼n′）；
　　fprintf（fid，′slice 0，0，10．65 0，％f，0 1，％f，0 0， 
　　　　　　％f，1 0，％f，0＼n′，ymin，ymin，ymin，ymin＋1）；
　　　　　　将圆柱环切开，形成图1中的毛坯
　　开始构造刀具：
　　fprintf（fid，′sphere ％f＼n′，toolradius）；构造指状铣刀刀头
　　fprintf（fid，′ucs x 90＼n′）；
　　fprintf（fid，′cylinder 0，0，0 ％f －％f＼n′，toolradus，tool－
　　　　　　　　　　　　　　　　　　　　　　　　　length）；构造刀柄
　　fprintf（fid，′ucs x －90＼n′）；
　　fprintf（fid，′zoom e＼n′）；
　　fprintf（fid，′union 0，0，％f 0，％f，0 ＼n′，toolradius，－
　　toolradius－．05）；将刀头和刀柄做并运算，得到刀具几何体
　　fprintf（fid，′block dj 0，％f，0 0，％f，0 ＼n′，－
　　　　　　　　　　　　toolradius，－toolradius）；把刀具做成块
　　刀具几何体制作完毕后，应该按块（block）方式保存。在成型电极仿真加工过程中，根据给定的刀位轨迹来插入刀具块，再炸开（explode），然后在电极毛坯几何体与刀具几何体之间做差运算，去除加工余量。在这一步骤中需要注意的是：刀具块的插入点和计算刀具运动轨迹的参考点应该一致（即：如果计算刀具移动轨迹时的基准是刀尖，那么在AutoCAD中插入刀具块时的参考点也应该是刀尖）。否则，会出现仿真和实际加工不一致的情况。部分仿真加工程序代码如下：
for j＝1：endj　　　　　　　　　　共计有endj个刀位点
　　i＝j＊2；
　　fprintf（fid，′insert dj ％f，％f，％f ＼n′，
　　ypdwgjx（i）， ypdwgjy（i），ypdwgjz（i））；在给定的刀位轨迹处插入刀具块
　　fprintf（fid，′explode l＼n′）；将刀具块炸开（块无法进行布尔运算）
　　fprintf（fid，′subtract ％2．4f，％2．4f，％2．4f，％2．4f，％ 
　　　2．4F，％2．4f ＼n′，1．54，－2．43，9，ypdwgix（i）＋toolradius，
　　ypdwgjy（i）＋toollength，ypdwgiz（i））；电极毛坯几何体与刀具几何体作差运算，实现余量去除
end
　　运算后得到的成型电极几何体仍采用块方式保存。在整体涡轮盘仿真加工时，根据给定的刀位轨迹插入成型电极块，再炸开（explode）。然后在整体涡轮盘毛坯几何体与成型电极几何体之间做差运算，去除加工余量。上述操作步骤和编程与指状铣刀加工成形电极毛坯相似，在此不再赘述。
3 结 论
　　在高速发展的现代科技领域，各部门分工合作，各自发挥特长。在软件编程领域，共享、合作则显得更加重要。充分利用各种功能平台，不但可以为编程人员节省大量的时间、精力，同时还可以大大提高编程效率，减少编程错误，改善编程效果。本文中介绍的采用AutoCAD平台编制仿真软件就是其中一例。由于采用了较为成熟的第三方平台，使得本仿真软件的编程周期大大缩短，而且取得了良好的仿真效果。
王刚（哈尔滨工业大学421信箱150001）
赵万生（哈尔滨工业大学421信箱150001）
参考文献
［1］Omura G．AutoCAD 14从入门到精通．北京：电子工业出 版社，1998
［2］Hanselman D．精通MATLAB综合辅导与指南．西安：西安 交通大学出版社，1998
收稿日期：1999－11－18
