数控模块化编程一一R刀车圆弧
由于经常加工弯管压轮模,其程序基本就是修改一下几个固定值,最近因为又需要加工一批,量比较大规格比较多,每种规格都是一件,如果做完一件修改一下程序,一来容易出错,二来效率也不高,所以想把程序模块化,加工不同零件只需调用模块,输入必要参数即可,无需修改程序,现把用切刀加工(辅助加工)以及R圆弧头加工模块(采用B型补偿)及如何调用模块附上,有时间的话把程序流程图一起附上,希望像我等初学者共同进步.1)切刀辅助加工模块(
#1 切刀刀宽
#2 圆弧弦长
#3 圆弧半径
#7 进级量
#8 Z向圆弧起点
#9 X向圆弧起点
模块入口参数(即调用此模块需要输入数据):#1,#2,#3,#7,#8,#9
中间变量:#5,#6,#27,#28,#29,#30,#31 ,#32
#29=0
#30=#2-1
#32=#2/2
WHILE [#29#30] GOTO3
IF[#29>#32] GOTO2
#27=#32-#29
N1 #28=SQRT[#3*#3-#27*#27]
#5=#8-#29-#1-1
#6=#9-#28*2
#31=#9+2
G0 X#31
G0 Z#5
G1 X#6 F#7
G0 X#31
GOTO3
N2 #27=#29-#32
GOTO1
N3 END1
M99
2)R刀加工圆弧采用B型补偿,即采用刀心轨迹编程
#1 X向圆弧起点
#2 Z向圆弧起点
#3 R刀半径
#4 F进级量
#5 需要加工的圆弧半径
模块入口参数(即调用此模块需要输入数据):#1,#2,#3,#4,#5
中间变量:#28,#29,#30,#31 ,#32,#33
O0002
#33=#1+2
#32=#3*2
#31=#1-#32
#30=#2-#32
#29=#5-#3
#28=0-#29*2
G0 X#33
G0 Z#30
G1 X#31 F#4
G2 W#28 R#29
G1 X#1
G0 X#33
M99
3) 如果R一次切削量过大,可以修改刀具磨损量,进行多次重复切削,修改刀补模块
入口参数:#21,#23
O003
G65 H23 P#101 Q#4120 R100;
#102=2000+#101;获取x向刀具磨损量
#103=2100+#101;获取z向刀具磨损量
#9102=#9102+#21;修改x向刀具磨损量
#9103=#9103+#23;修改z向刀具磨损量
T#4120 ;更新刀补
M99;
mcsino 发表于 2013-8-18 15:04
3) 如果R一次切削量过大,可以修改刀具磨损量,进行多次重复切削,修改刀补模块
入口参数:#21,#23
O003 ...
4)模块调用
假设1)需要在外径100,z向为10的地方加工一半径为15的半圆弧,切刀刀宽为3,R刀半径为6,进级量每转0.05mm,则加工程序参考如下
T0*0*;换切刀
G0 X120 Z2
G65 P001 A3 B30 C15 D0.05 E10 F100 ||#1 切刀刀宽 A
||#2 圆弧弦长 B
||#3 圆弧半径 C
||#7 进级量 D
||#8 Z向圆弧起点E
||#9 X向圆弧起点F
G0 X* Z*;退出到换刀安全距离
T0*0*;换R刀
G0 X120 Z2
G65 P002 A100 B10 C6I0.05 J15 ||#1 X向圆弧起点 A
||#2 Z向圆弧起点 B
||#3 R刀半径 C
||#4 F进级量 I
||#5 需要加工的圆弧半径 J
假设2)需要在外径200,z向为70的地方加工一半径为20的半圆弧,切刀刀宽为4,R刀半径为2,进级量为每转0.08mm,则加工程序参考如下
T0*0*;换切刀
G0 X220 Z2
G65 P001 A4 B40 C20 D0.08 E70 F200 ||#1 切刀刀宽 A
||#2 圆弧弦长 B
||#3 圆弧半径 C
||#7 进级量 D
||#8 Z向圆弧起点E
||#9 X向圆弧起点F
G0 X* Z*;退出到换刀安全距离
T0*0*;换R刀
G0 X120 Z2
G65 P002 A200 B70 C2I0.08 J20 ||#1 X向圆弧起点 A
||#2 Z向圆弧起点 B
||#3 R刀半径 C
||#4 F进级量 I
||#5 需要加工的圆弧半径 J
太累了吧,直接电脑编程省事,而且安全 宏程序的主要用途之一相同类型 相同工艺 修改几个赋值用同一程序做不同尺寸的工件 方便 高效
mjypc009 发表于 2013-8-18 16:59
太累了吧,直接电脑编程省事,而且安全
直接电脑编应该也没有模块化来得快 认真学习了
页:
[1]