【摘要】本文分析了数控加工程序编制的现状和发展趋势,指出了―变量‖的运用在加工程序编制中的意义,比较了宏程序和CAM 软件编程各自的长处与不足,同时按不同工作场合和工件的要求,分类给出了对应的宏程序实现。通过对于现生产需要的分析——提出了编制并完善―通用宏程序集‖的设想,―通用宏程序集‖除可以有效提高工作效率外,还可以作为数控加工经验交流和共享的工具,最后根据自身对于数控加工的认识给出了通用宏程序的示例。
【关键词】宏程序 数控加工 应用 变量 传值调用
1.数控加工程序编制的方法和现状。要说数控系统的种类有多少或数控机床的结构形式共有多少个?恐怕即使从事数控加工多年的人士也很难说出一个准确的数字,但要说起数控加工程序编制的方法来,则几乎连一个初学者也能马上告诉你:分手工编程和计算机自动编程两类。由于受数控系统指令集规模的限制,致使可插补的线形比较单一(通常只有直线或圆弧),所以手工编程常用于形状简单、精度要求较高、批量较大的产品的加工和制造。而形状复杂、批量较小、精度要求一般的零件则多采用计算机自动编程的方法。
以一汽集团为例,其从事零部件生产的企业(比如:车桥公司、轿车公司、一汽大众等等)基本都是采用手工编程的形式,而模具类零件则都采用计算机自动编程。久而久之就使人们产生了一种误解:―认为具有复杂轮廓的零件只能通过自动编程进行加工,而手工程序只能完成简单轮廓的加工,将来自动编程将是手工程序的取代者‖。
其实,目前数控系统广泛提供的宏程序(或称参数子程序)功能完全可以完成复杂轮廓(可以以数学方程表达)的加工,同时它还具有许多自动编程无法比拟的特点。
2.宏程序的特点和作用。宏程序或称参数子程序,由于其引入了变量、流程控制和数学(代数和逻辑)运算功能,所以就具有以下优点:
①由于可以使用变量,使程序具有更加柔性化和智能化。
②流程控制指令的使用,可以使加工程序具有分析功能并更容易实现执行次数的控制。 ③代数和逻辑运算的应用,则为完成各类数学曲线和曲面的加工提供了基础和保障。 由于上述特点的存在,可以根据数控加工的需要来编制以下几类宏程序:
①用于加工数学曲线(或曲面)所构成的零件轮廓(如:圆锥曲线宏程序、渐开线宏程序、球面加工宏程序、锥台加工宏程序等等)。
②用于完成不同工艺特征的粗、精加工(如:圆型腔加工宏程序、方型腔加工宏程序、倒角加工宏程序等等)。
③与辅助装置配合完成特定工作任务(如:用测量探头的检测宏程序、指挥换刀机构的换刀宏程序、刀具破损检测宏程序、专用夹具控制宏程序等等)。
④不同种类设备的专用加工宏程序(如:滚齿加工专用宏程序、数控磨床专用宏程序)。 ⑤其他(如:与外部通信的宏程序、实现多品种混流生产的分支宏程序等等)。
3.宏程序在典型零件加工中的应用。下面以笔者编程和加工过的一些零件为例,介绍一下宏程序的具体应用:
3.1 渐开线凸轮的铣削:如图1—1所示,被加工的(刹车用)凸轮为渐开线轮廓,而且有0.03mm 的轮廓度要求。从前采用的是CAM 软件编制轮廓加工程序,但生成G 代码以后,由于不便使用半径补偿功能,所以刀具稍有磨损就必须更换,这样大大的增加了制造成本。 经过对被加工零件轮廓的分析(零件图见附件一),决定以宏程序完成上述零件的加工,首先根据基圆半径得出渐开线的参数方程:
x=20×cos(afa)+pi×20×afa/180×sin(afa)
y=20×sin(afa)-pi×20×afa/180×cos(afa)
39.1
Pi=3.14159
其中afa 为压力角,也是参数方程的自变量,经过分析压力角在39.1度附近时,每增加3度轮廓逼近误差小于0.02mm ,因此选择压力角每次递增2度以提高加工速度。
然后开始编制宏程序,先进行变量分配:
#1 为压力角afa
#2 为常数pi=3.14159
#3 为基圆半径
#4 节点坐标x
#5 节点坐标y
#6 为压力角afa 终了值
编写宏程序代码:
O0022 程序名
#2=3.14159 常数pi 赋值
WHILE [#1 LT #6 ] DO1 循环体头
#4 = #3*COS[#1] + #2*#3*#1/180*SIN[#1] 计算节点X
#5= #3*SIN[#1] - #2*#3*#1/180*COS[#1] 计算节点Y
G01 X#4 Y#5 F200 按节点进给
#1= #1+2 自变量递增
END1
#4 = #3*COS[#6] + #2*#3*#1/180*SIN[#6] 计算节点X
#5= #3*SIN[#6] - #2*#3*#1/180*COS[#6] 计算节点Y
G01 X#4 Y#5 F200 最后一点加工
M99 程序尾
调用格式:G65 P0022 A39.1 C20 K166.5 传递变量#1=39.1、#3=20、#6=166.5
对应主程序为
O0012
G90 G49 G80 G21 G40 G69
G54 G00 X80. Y15.
G43 Z0. H01
M3 S600
Z-48.
G01 G42 X40. D01 引入半径补偿
G65 P0022 A39.1 C20 K166.5 宏程序调用
G03 X-71.33 Y-2.02 R15. 加工过度圆弧
G02 X -38.42 Y-17.34 R48. 加工过度圆弧
X -31. Y-25.2 R15. 加工过度圆弧
G01 G40 X-45. 取消半径补偿
G68 X0 Y0 R180. 图形旋转180度
G01 G42 X40. D01 引入半径补偿
G65 P0022 A39.1 C20 K166.5 宏程序调用
G03 X-71.33 Y-2.02 R15. 加工过度圆弧
G02 X -38.42 Y-17.34 R48. 加工过度圆弧
X-31. Y-25.2 R15. 加工过度圆弧
G01 G40 X-45. 取消半径补偿
G69 取消图形旋转
G00 G49 Z200.
X100. Y100.
M5
M30
不难看出使用了传值调用的办法后,该宏程序示例可以被运用至其它包含渐开线轮廓的零件加工中(只需根据渐开线的参数变更变量#1、#3、#6即可)。
3.2 支撑件上的减重坑加工:如图2-1所示,为一支撑件在该制件上须加工多个倒棱锥形减重坑(侧壁须有2~5度的斜度),而且规格不同,若以子程序完成加工须针对每一个规格编制一个子程序,工作量和难度都较大,而以自动编程完成零件的加工又由于基础尺寸太大,因而程序量很大。
分析后准备编制对应的宏程序完成零件的粗、精加工,通过改变调用时的参数值来实现不同规格减重坑的加工,由于各个减重坑的基本截面形状都是矩形,而且侧壁有斜度,因此可以将宏程序的工作过程概括如下:刀具在每一个层深上完成一个矩形型腔的加工如图2-2所示,而每发生一次层深的变化被加工的型腔尺寸都按必须规律减小。
A 、实现每层轮廓加工,是依靠不断修改刀具补偿值来实现的,具体如下:
*变量分配:
#1 矩形宽度
#2 矩形高度
#3 刀具直径
#33 刀补值
*代码:
O0111
#33 = [#1- #3]/2 计算刀具补偿值的初值
IF [#1 LT #2 ] THEN #33 = [#2- #3]/2 计算刀具补偿值的初值(根据长边指定)
WHILE [#33 GT [#3/2] ] DO1 循环指令(刀补值等于刀具半径时结束)
#33 = #33 – 0.8*#3 变化刀补值(行距为0.8倍的刀具直径)
IF [#33 LT #3/2] THEN #33 = #3/2 若计算后的刀补值小于刀具半径,则刀补值等于刀具半径 G10 L12 P01 R#33 将刀补值写入系统(写入一号补偿)
G41 G01 Y[#2/2] D01 引入刀补(一号补偿)
X[-#1/2] 轮廓铣削
Y[-#2/2] 轮廓铣削
X[#1/2] 轮廓铣削
Y[#2/2] 轮廓铣削
X0 轮廓铣削
G40 Y0 撤消补偿
END1 循环结束
G52 X 0 Y 0
M99 程序结束
B 、在不同截面变量多次调用上述程序,实现分层加工(如图2-3所示):
*变量分配:
#1 矩形宽度
#2 矩形高度
#3 刀具直径
#24 轮廓原点X 坐标
#25 轮廓原点Y 坐标
#7 每层切深
#8 终了Z 高度
#26 起始Z 高度
#11 侧壁倾斜角度
*代码:
O0112
G52 X#24 Y#25 平移坐标系
G90 G00 X0 Y0 定位至行腔中心
Z#26+2 定位至行腔之上2mm 处
G01 Z#26 F100 工进至行腔上表面
WHILE [#26 GT #8] DO1 进入循环,以深度为截止条件
#26 = #26 – ABS[#7] 改变深度数值
IF [#26 LT #8] THEN #26 = #8 判断到达终点否
#1 = #1- 2*#7*TAN[#11] 计算本层的矩形宽度
#2 = #2- 2*#7*TAN[#11] 计算本层的矩形高度
G01 Z#26 F60 下切至本层深度
G65 P0011 A#1 B#2 C#3 以计算出的矩形参数调用每层加工程序
END1 完成循环
G00 Z#26+50 提刀至安全高度
G52 X0 Y0 取消平移坐标系
M99 宏程序结束
主程序调用上述宏程序,可以完成在各个位置的型腔加工,例如:
O0010
G54 G90 G80 G40 G49 G69 设定程序执行环境
T01 M06 换刀
G00 G43 Z50 H01 引入长度补偿
M03 S1200 启动主轴
G65 P0012 A80 B60 C12 D0.8 E-41.3 H3.0 X165. Y-50. Z0. 调宏程序加工型腔1
G00 G90 Z100 退刀Z 向
Y300. 退刀Y 向
M05 主轴停
M01 程序停(检查尺寸)
M03 启动主轴
G65 P0012 A80 B60 C12 D0.8 E-41.3 H3.0 X-165. Y-50. Z0. 调宏程序加工型腔2
………
……….
M05
M30
通过上述两个零件的加工,可以看到对于集合结构清晰,且能以数学方式描述的零件来说,宏程序与自动编程相比较有很多的优势,比如:程序短小便于修改、通用性强更容易实现代码重用、因可以引入刀补使控制加工精度更容易、可以充分使用NC 系统的特殊功能……。所以有效的利用宏程序可以提高工作效率,确保产品质量和简化工作流程。
4.―通用宏程序集‖的编写和意义。目前宏程序加工多用于单件或小批量生产的环境中,操作者会根据加工的需要自行编制满足需要的宏程序,当零件完成后,它就会被从NC 系统中删除,而其他人则无法共享这一工作成果。再者由于能力和知识水平(特别是数学基础)所限,从业者通常只能在参阅资料的基础上简单的套用公式,而缺乏对于零件几何结构的正确分析,因此所编制的宏程序使用范围较窄,缺乏推广的意义。
通过较长时间的实践,笔者认为实现具有较强通用性的宏程序是可行的,也是具有现实意义的,不难看出:在上述的两个实例中所完成的宏程序已经具有较好的通用性了。但要编写通用性更好、更稳定易用的―通用宏程序集‖,还要注意以下问题:
①合理的使用各种变量。
②严谨的逻辑结构,正确的算法。
③简明、易用的调用接口。
④必要的错误拦截和系统环境的保护。
下面以一个通用(FANUC 系统)的椭圆程序为例来说明上述观点:
变量选用:
#1 椭圆长半轴
#2 椭圆短半轴
#3 轮廓度要求
#4 参数角度递增量
#8 参数角度终了值
#9 参数角度起始值
#20 椭圆长轴与X 轴角度
#24 椭圆心X
#25 椭圆心Y
#29 中间变量
#30 角度自变量
#31 中间变量
#32 椭圆节点X
#33 椭圆节点Y
可以看到#3和#4两个变量的作用相同——都是获得逼近步长,用户只需根据自己的需求来选择其中一个即可。这样使程序更具有易用性。
同时在变量的选择上也尽量使之调用的名字与其实际意义相近,比如:
A #1
B #2
I #3
E #8
F #9
X #24
Y #25
代码:
O0077
IF [[#3 NE #0] AND [#4 NE #0] ] GOTO 3000
G90 G52 X0 Y0
G68 X0 Y0 R#20
G41 G01 X#1+20 Y0 D01
#29 = [#1- #3]*[#1- #3]/[#1*#1]
#31 = SQRT[1-#29]/#2
IF [#4 EQ #0] THEN #4 = ATAN[#31]
#30 = #9
WHILE [#30 LT #8] DO1
#30 = #30 + #4
IF [#30 GT #8] THEN #30 = #8
#32 = #1* SIN [#30]
#33 = #2* COS[#30]
G01 X#32 Y#33 F200
END1
G40 X#1+20 Y0
G69
G52 X0 Y0
GOTO 4000
N3000 #3000=―*******‖
N4000 M99
格式说明:
格式一:G65 P0077 A30. B15. C0.05 E180. F30. T5. X0 Y50.
当希望按轮廓度要求加工时给出C0.05(其中0.05为轮廓度要求),程序会自动选择步长。 格式二:G65 P0077 A30. B15. I3. E180. F30. T5. X0 Y50.
希望按给定步长进行加工时给出I3. (其中递增角度为3度)。
当用户将变量I ,J 同时赋值时将产生错误报警信息―******‖,否则程序将按要求完成轮廓的加工。
通过上例可以发现只要认真分析加工需要,就可以编写出有实用意义的通用宏程序,将这些程序汇集起来就可以实现加工经验的交流和工作成果的共享,并能不断提高操作工人的技术水平,为我国尽快地从制造大国向制造强国转变作出应有的贡献。
附件一 渐开线凸轮轴零件图
渐开线参数:基圆半径20mm ,压力角范围39.1—166.5
A 、可按压力角39.1度代入方程。
B 、可按压力角166.5度代入方程。
C 、-71.33,-2.02
D 、-38.42,-17.34
E 、-31. ,-25.2
参考文献
1 陈海舟. 数控铣削加工宏程序及应用实例. 机械工业出版社,2006.05
2 FANUC Series 0i — MODEL C 操作手册. FANUC ltd
3 菜复之. 实用数控加工技术. 兵器工业出版社,1995.04
【摘要】本文分析了数控加工程序编制的现状和发展趋势,指出了―变量‖的运用在加工程序编制中的意义,比较了宏程序和CAM 软件编程各自的长处与不足,同时按不同工作场合和工件的要求,分类给出了对应的宏程序实现。通过对于现生产需要的分析——提出了编制并完善―通用宏程序集‖的设想,―通用宏程序集‖除可以有效提高工作效率外,还可以作为数控加工经验交流和共享的工具,最后根据自身对于数控加工的认识给出了通用宏程序的示例。
【关键词】宏程序 数控加工 应用 变量 传值调用
1.数控加工程序编制的方法和现状。要说数控系统的种类有多少或数控机床的结构形式共有多少个?恐怕即使从事数控加工多年的人士也很难说出一个准确的数字,但要说起数控加工程序编制的方法来,则几乎连一个初学者也能马上告诉你:分手工编程和计算机自动编程两类。由于受数控系统指令集规模的限制,致使可插补的线形比较单一(通常只有直线或圆弧),所以手工编程常用于形状简单、精度要求较高、批量较大的产品的加工和制造。而形状复杂、批量较小、精度要求一般的零件则多采用计算机自动编程的方法。
以一汽集团为例,其从事零部件生产的企业(比如:车桥公司、轿车公司、一汽大众等等)基本都是采用手工编程的形式,而模具类零件则都采用计算机自动编程。久而久之就使人们产生了一种误解:―认为具有复杂轮廓的零件只能通过自动编程进行加工,而手工程序只能完成简单轮廓的加工,将来自动编程将是手工程序的取代者‖。
其实,目前数控系统广泛提供的宏程序(或称参数子程序)功能完全可以完成复杂轮廓(可以以数学方程表达)的加工,同时它还具有许多自动编程无法比拟的特点。
2.宏程序的特点和作用。宏程序或称参数子程序,由于其引入了变量、流程控制和数学(代数和逻辑)运算功能,所以就具有以下优点:
①由于可以使用变量,使程序具有更加柔性化和智能化。
②流程控制指令的使用,可以使加工程序具有分析功能并更容易实现执行次数的控制。 ③代数和逻辑运算的应用,则为完成各类数学曲线和曲面的加工提供了基础和保障。 由于上述特点的存在,可以根据数控加工的需要来编制以下几类宏程序:
①用于加工数学曲线(或曲面)所构成的零件轮廓(如:圆锥曲线宏程序、渐开线宏程序、球面加工宏程序、锥台加工宏程序等等)。
②用于完成不同工艺特征的粗、精加工(如:圆型腔加工宏程序、方型腔加工宏程序、倒角加工宏程序等等)。
③与辅助装置配合完成特定工作任务(如:用测量探头的检测宏程序、指挥换刀机构的换刀宏程序、刀具破损检测宏程序、专用夹具控制宏程序等等)。
④不同种类设备的专用加工宏程序(如:滚齿加工专用宏程序、数控磨床专用宏程序)。 ⑤其他(如:与外部通信的宏程序、实现多品种混流生产的分支宏程序等等)。
3.宏程序在典型零件加工中的应用。下面以笔者编程和加工过的一些零件为例,介绍一下宏程序的具体应用:
3.1 渐开线凸轮的铣削:如图1—1所示,被加工的(刹车用)凸轮为渐开线轮廓,而且有0.03mm 的轮廓度要求。从前采用的是CAM 软件编制轮廓加工程序,但生成G 代码以后,由于不便使用半径补偿功能,所以刀具稍有磨损就必须更换,这样大大的增加了制造成本。 经过对被加工零件轮廓的分析(零件图见附件一),决定以宏程序完成上述零件的加工,首先根据基圆半径得出渐开线的参数方程:
x=20×cos(afa)+pi×20×afa/180×sin(afa)
y=20×sin(afa)-pi×20×afa/180×cos(afa)
39.1
Pi=3.14159
其中afa 为压力角,也是参数方程的自变量,经过分析压力角在39.1度附近时,每增加3度轮廓逼近误差小于0.02mm ,因此选择压力角每次递增2度以提高加工速度。
然后开始编制宏程序,先进行变量分配:
#1 为压力角afa
#2 为常数pi=3.14159
#3 为基圆半径
#4 节点坐标x
#5 节点坐标y
#6 为压力角afa 终了值
编写宏程序代码:
O0022 程序名
#2=3.14159 常数pi 赋值
WHILE [#1 LT #6 ] DO1 循环体头
#4 = #3*COS[#1] + #2*#3*#1/180*SIN[#1] 计算节点X
#5= #3*SIN[#1] - #2*#3*#1/180*COS[#1] 计算节点Y
G01 X#4 Y#5 F200 按节点进给
#1= #1+2 自变量递增
END1
#4 = #3*COS[#6] + #2*#3*#1/180*SIN[#6] 计算节点X
#5= #3*SIN[#6] - #2*#3*#1/180*COS[#6] 计算节点Y
G01 X#4 Y#5 F200 最后一点加工
M99 程序尾
调用格式:G65 P0022 A39.1 C20 K166.5 传递变量#1=39.1、#3=20、#6=166.5
对应主程序为
O0012
G90 G49 G80 G21 G40 G69
G54 G00 X80. Y15.
G43 Z0. H01
M3 S600
Z-48.
G01 G42 X40. D01 引入半径补偿
G65 P0022 A39.1 C20 K166.5 宏程序调用
G03 X-71.33 Y-2.02 R15. 加工过度圆弧
G02 X -38.42 Y-17.34 R48. 加工过度圆弧
X -31. Y-25.2 R15. 加工过度圆弧
G01 G40 X-45. 取消半径补偿
G68 X0 Y0 R180. 图形旋转180度
G01 G42 X40. D01 引入半径补偿
G65 P0022 A39.1 C20 K166.5 宏程序调用
G03 X-71.33 Y-2.02 R15. 加工过度圆弧
G02 X -38.42 Y-17.34 R48. 加工过度圆弧
X-31. Y-25.2 R15. 加工过度圆弧
G01 G40 X-45. 取消半径补偿
G69 取消图形旋转
G00 G49 Z200.
X100. Y100.
M5
M30
不难看出使用了传值调用的办法后,该宏程序示例可以被运用至其它包含渐开线轮廓的零件加工中(只需根据渐开线的参数变更变量#1、#3、#6即可)。
3.2 支撑件上的减重坑加工:如图2-1所示,为一支撑件在该制件上须加工多个倒棱锥形减重坑(侧壁须有2~5度的斜度),而且规格不同,若以子程序完成加工须针对每一个规格编制一个子程序,工作量和难度都较大,而以自动编程完成零件的加工又由于基础尺寸太大,因而程序量很大。
分析后准备编制对应的宏程序完成零件的粗、精加工,通过改变调用时的参数值来实现不同规格减重坑的加工,由于各个减重坑的基本截面形状都是矩形,而且侧壁有斜度,因此可以将宏程序的工作过程概括如下:刀具在每一个层深上完成一个矩形型腔的加工如图2-2所示,而每发生一次层深的变化被加工的型腔尺寸都按必须规律减小。
A 、实现每层轮廓加工,是依靠不断修改刀具补偿值来实现的,具体如下:
*变量分配:
#1 矩形宽度
#2 矩形高度
#3 刀具直径
#33 刀补值
*代码:
O0111
#33 = [#1- #3]/2 计算刀具补偿值的初值
IF [#1 LT #2 ] THEN #33 = [#2- #3]/2 计算刀具补偿值的初值(根据长边指定)
WHILE [#33 GT [#3/2] ] DO1 循环指令(刀补值等于刀具半径时结束)
#33 = #33 – 0.8*#3 变化刀补值(行距为0.8倍的刀具直径)
IF [#33 LT #3/2] THEN #33 = #3/2 若计算后的刀补值小于刀具半径,则刀补值等于刀具半径 G10 L12 P01 R#33 将刀补值写入系统(写入一号补偿)
G41 G01 Y[#2/2] D01 引入刀补(一号补偿)
X[-#1/2] 轮廓铣削
Y[-#2/2] 轮廓铣削
X[#1/2] 轮廓铣削
Y[#2/2] 轮廓铣削
X0 轮廓铣削
G40 Y0 撤消补偿
END1 循环结束
G52 X 0 Y 0
M99 程序结束
B 、在不同截面变量多次调用上述程序,实现分层加工(如图2-3所示):
*变量分配:
#1 矩形宽度
#2 矩形高度
#3 刀具直径
#24 轮廓原点X 坐标
#25 轮廓原点Y 坐标
#7 每层切深
#8 终了Z 高度
#26 起始Z 高度
#11 侧壁倾斜角度
*代码:
O0112
G52 X#24 Y#25 平移坐标系
G90 G00 X0 Y0 定位至行腔中心
Z#26+2 定位至行腔之上2mm 处
G01 Z#26 F100 工进至行腔上表面
WHILE [#26 GT #8] DO1 进入循环,以深度为截止条件
#26 = #26 – ABS[#7] 改变深度数值
IF [#26 LT #8] THEN #26 = #8 判断到达终点否
#1 = #1- 2*#7*TAN[#11] 计算本层的矩形宽度
#2 = #2- 2*#7*TAN[#11] 计算本层的矩形高度
G01 Z#26 F60 下切至本层深度
G65 P0011 A#1 B#2 C#3 以计算出的矩形参数调用每层加工程序
END1 完成循环
G00 Z#26+50 提刀至安全高度
G52 X0 Y0 取消平移坐标系
M99 宏程序结束
主程序调用上述宏程序,可以完成在各个位置的型腔加工,例如:
O0010
G54 G90 G80 G40 G49 G69 设定程序执行环境
T01 M06 换刀
G00 G43 Z50 H01 引入长度补偿
M03 S1200 启动主轴
G65 P0012 A80 B60 C12 D0.8 E-41.3 H3.0 X165. Y-50. Z0. 调宏程序加工型腔1
G00 G90 Z100 退刀Z 向
Y300. 退刀Y 向
M05 主轴停
M01 程序停(检查尺寸)
M03 启动主轴
G65 P0012 A80 B60 C12 D0.8 E-41.3 H3.0 X-165. Y-50. Z0. 调宏程序加工型腔2
………
……….
M05
M30
通过上述两个零件的加工,可以看到对于集合结构清晰,且能以数学方式描述的零件来说,宏程序与自动编程相比较有很多的优势,比如:程序短小便于修改、通用性强更容易实现代码重用、因可以引入刀补使控制加工精度更容易、可以充分使用NC 系统的特殊功能……。所以有效的利用宏程序可以提高工作效率,确保产品质量和简化工作流程。
4.―通用宏程序集‖的编写和意义。目前宏程序加工多用于单件或小批量生产的环境中,操作者会根据加工的需要自行编制满足需要的宏程序,当零件完成后,它就会被从NC 系统中删除,而其他人则无法共享这一工作成果。再者由于能力和知识水平(特别是数学基础)所限,从业者通常只能在参阅资料的基础上简单的套用公式,而缺乏对于零件几何结构的正确分析,因此所编制的宏程序使用范围较窄,缺乏推广的意义。
通过较长时间的实践,笔者认为实现具有较强通用性的宏程序是可行的,也是具有现实意义的,不难看出:在上述的两个实例中所完成的宏程序已经具有较好的通用性了。但要编写通用性更好、更稳定易用的―通用宏程序集‖,还要注意以下问题:
①合理的使用各种变量。
②严谨的逻辑结构,正确的算法。
③简明、易用的调用接口。
④必要的错误拦截和系统环境的保护。
下面以一个通用(FANUC 系统)的椭圆程序为例来说明上述观点:
变量选用:
#1 椭圆长半轴
#2 椭圆短半轴
#3 轮廓度要求
#4 参数角度递增量
#8 参数角度终了值
#9 参数角度起始值
#20 椭圆长轴与X 轴角度
#24 椭圆心X
#25 椭圆心Y
#29 中间变量
#30 角度自变量
#31 中间变量
#32 椭圆节点X
#33 椭圆节点Y
可以看到#3和#4两个变量的作用相同——都是获得逼近步长,用户只需根据自己的需求来选择其中一个即可。这样使程序更具有易用性。
同时在变量的选择上也尽量使之调用的名字与其实际意义相近,比如:
A #1
B #2
I #3
E #8
F #9
X #24
Y #25
代码:
O0077
IF [[#3 NE #0] AND [#4 NE #0] ] GOTO 3000
G90 G52 X0 Y0
G68 X0 Y0 R#20
G41 G01 X#1+20 Y0 D01
#29 = [#1- #3]*[#1- #3]/[#1*#1]
#31 = SQRT[1-#29]/#2
IF [#4 EQ #0] THEN #4 = ATAN[#31]
#30 = #9
WHILE [#30 LT #8] DO1
#30 = #30 + #4
IF [#30 GT #8] THEN #30 = #8
#32 = #1* SIN [#30]
#33 = #2* COS[#30]
G01 X#32 Y#33 F200
END1
G40 X#1+20 Y0
G69
G52 X0 Y0
GOTO 4000
N3000 #3000=―*******‖
N4000 M99
格式说明:
格式一:G65 P0077 A30. B15. C0.05 E180. F30. T5. X0 Y50.
当希望按轮廓度要求加工时给出C0.05(其中0.05为轮廓度要求),程序会自动选择步长。 格式二:G65 P0077 A30. B15. I3. E180. F30. T5. X0 Y50.
希望按给定步长进行加工时给出I3. (其中递增角度为3度)。
当用户将变量I ,J 同时赋值时将产生错误报警信息―******‖,否则程序将按要求完成轮廓的加工。
通过上例可以发现只要认真分析加工需要,就可以编写出有实用意义的通用宏程序,将这些程序汇集起来就可以实现加工经验的交流和工作成果的共享,并能不断提高操作工人的技术水平,为我国尽快地从制造大国向制造强国转变作出应有的贡献。
附件一 渐开线凸轮轴零件图
渐开线参数:基圆半径20mm ,压力角范围39.1—166.5
A 、可按压力角39.1度代入方程。
B 、可按压力角166.5度代入方程。
C 、-71.33,-2.02
D 、-38.42,-17.34
E 、-31. ,-25.2
参考文献
1 陈海舟. 数控铣削加工宏程序及应用实例. 机械工业出版社,2006.05
2 FANUC Series 0i — MODEL C 操作手册. FANUC ltd
3 菜复之. 实用数控加工技术. 兵器工业出版社,1995.04