cnc宏程序代码大全有什书吗?(cnc宏程序是什么意思)
有哪些适合cnc数控编程自学的书籍?
????书籍的名称
初级入门:数控机床与编程教程,北大出版社;?
中级入门:数控加工工艺,上海交大出版社
????cnc数控编程
cnc数控编程是指在计算机及相应的计算机软件系统的支持下,自动生成数控加工程序的过程。它充分发挥了计算机快速运算和存储的功能。
?调机员所需要学会的? ? ?
1 .熟悉机床面板。2.熟悉常用的代码和简单编程。3 .会磨刀。
熟悉机床面板? :? ?第一个怎么学习。平时有空就多按几下面板,不懂就问师傅,实在没办法,就把上面的英文抄下来然后百度。 也可以找一下机床的说明书,多看几次,有空就自己实操练习。
熟悉常用的代码和简单编程: 代码学习跟上面差不多,有条件就去买书,不然就百度,我之前学手工编程也是看书来学习的,遇到不懂就去请教师傅。
磨刀:需要多练习,没有捷径,磨的多了就会了。可以看工厂师傅是怎么磨的,自己参照着练习。还有就是刀具的各个角度,多看多问多练。
法兰克数控系统车宏程序有那些英文代码?例如:GT,EN,IF等,分别是什么意思?
在法兰克数控系统宏程序中涉及英文代码的有运算指令、控制指令等。
表示运算指令的有:GT表示大于,GE表示小于或等于,EQ表示等于,NE表示不等于,......;
表示控制指令的有:IF表示的是条件转移语句1,? GOTO表示的是无条件转移语句,WHILE表示的是循环语句 ,IF.....THEN表示的是条件转移语句2.....。
扩展资料:
数控宏程序编程,是用变量的方式进行数控编程的方法。
数控宏程序分为A类和B类宏程序,其中A类宏程序比较老,编写起来也比较费时费力,B类宏程序类似于C语言的编程,编写起来也很方便。不论是A类还B类宏程序,它们运行的效果都是一样的。
参考资料:百度百科-数控宏程序
请问谁有完整一点的CNC代码 比如 (M03
数铣及加工中心编程指令复习
非模态G代码 00组的指令有 G04 G09 G10 G11 G27 G28 G29 G30 G31 G37 G45 G46 G47 G48 G50 G51 G52 G53 G60 G65 G92
每个指令的详细讲解
G04 暂停指令
格式 G04 X (P ,U)
详解 G04指令有效后 机床进给暂停 主轴继续运转 暂停的时间由 X P U 后的数值控制 X U 单位是秒 P 的单位是毫秒 1s=1000ms G04的程序段中不能有其他命令
G04 X1.0 暂停一秒
G04 P1000 暂停一秒
G04 U1.0 暂停一秒(数车专用)
G09 准确停止
格式 G09
详解 G09是一个不经常使用的指令 它的功能是用来检查切削刀具是否已精确定位 使刀具在接近终点时减速进给
G10 可编程数据输入
格式 无具体格式
详解 G10 这个命令本身没有任何作用 要完成相应的工作 还需其他的辅助输入 而且不同的控制器其指令格式有细微差别
对于FANUC控制器来说
坐标模式
选择绝对(G90)和增量(G91)编程方式对所有偏置量的输入有很大影响 G90或G91可在程序中的任何位置设置 也可以互相修改 只要程序段再调用G10数据设置命令之前进行指定即可 可在程序中设置的有效偏置量
工件偏置量 。。。。。G54~G59
刀具长度偏置量。。。。G43或G44(取消是G49)
切削半径偏置量。。。。G41或G42(取消时G40)
工件偏置量
格式 G10 L2 P X Y Z 加工中心
G10 L2P X Z 车削中心
字L2是固定的命令编辑偏置组号 P地址可在1~6中取值
P1=G54 P2=G55 P3=G56 P4=G57 P5=G58 P6=G59
例如 G90 G10 L2 P1 X-450.0 Y-375.0 Z0.0 该语句将会输入 X-450.0 Y-375.0 Z0.0 到G54 工件坐标偏置寄存器
G11可编程数据输入取消
机械原点指令 G27 G28 G29 G30
G27 机床原点返回位置检查
G28 第一机床原点返回指令 G28有两种形式 绝对形式和增量形式G90 G28 X14.0Y2.0 Z0.0 刀具运动到点X14.0Y2.0 Z0.0 然后再返回机床原点
G29 从机械原点的回退指令 和G28相反也要通过中间点并有两种形式
G30第二机床原定回退指令
G31跳过指令 主要和数控机床上的探测器一起使用跳转功能
G31是跳转指令,通常只用于测量功能,需要外部输入信号,输入信号的地址是X4.7(信号名SKIP)。
G31执行过程中如果没有SKIP信号输入则和G01完全一样,如果在执行过程中SKIP信号置“1”,则在SKIP信号置“1”的位置清除剩余的运动量,直接执行下一个程序段。在SKIP信号置“1”时,4个进给轴的坐标值被存储在#5061~5064这4个系统变量中,供测量宏程序计算使用。
你所说的主轴扭矩跳跃大概是指执行小孔深孔钻循环(G83)时的过载扭矩检测退回功能。使用这个功能同样需要输入信号,和G31用的是同一个信号。要求刀具本身有过载检测功能,在检测到过载时输出一个信号到机床的X4.7(SKIP)。
执行过程大致是这样的:当执行G83过程中(Z轴位置在R和Z之间)如果刀具发出过载信号使SKIP置“1”,则进给停止,刀具退回R点。改变转速和进给速度后再继续执行循环。
主轴转速和进给速度改变的百分比分别在5164和5166号参数设置。
G37自动刀具长度测量
位置补偿G45 G46 G47 G48
G45 在编程方向上增加一倍编程量
格式G91 G00 G45 X Y H
或 G91 G00 G45 X Y D
G46在编程方向上减少一倍编程量
G47在编程方向上增加二倍编程量
G48在编程方向上减少二倍编程量
G50取消比例编程 G51 比例缩放有效
格式 G51 X Y Z P 以给定点X Y Z 为缩放中心 将图形放大到原始图形的P倍 若省略X Y Z 则以程序原点为缩放中心
G52局部坐标系设定
格式 G52 X Y Z X Y Z 用于制定局部坐标系的原点在工件坐标系中的位置G52 X0.0 Y0.0 Z0.0 用于取消局部坐标系
G53 选择机床坐标系
G60 单方向定位
详解 G60只是定位而不是切削 它代替的是G00快速移动指令 在绝对模式或增量模式下都可使用与G00的用法相同 如果使用镜像指令则不必改变定位方向 它的定位方向和超出距离由系统参数指定)
G65 宏程序调用指令
详解G65
在A 类宏指令中的应用
格式 G65 Hm P#i Q#j R#k
m——宏程序的功能
#i——运算结果存放出的变量名
#j——被操作的第一个变量
#k——被操作的第二个变量
在B 类宏指令中的应用
格式G65P L
P被调用的宏程序代号
L 宏程序重复运行的次数 为一时可省略
G92设定工件坐标系指令
格式 G92 X Y Z
详解 执行该命令时 刀具并不运动 只是当前刀位点被设置为工件坐标系下的X Y Z 的设定值
01组 运动指令有G00 G01 G02 G03
G00快速点定位
格式G00X Y Z
G01 直线插补指令
格式 G01 X Y Z F
G02/G03顺/逆时针圆弧擦补
格式
G02 I J
G17 X Y F
G03 R
__________________________________________________
G02 I J
G18 X Y F
G03 R
______________________________________________________-
G02 I J
G19 X Y F
G03 R
_______________________________________________________
02组 平面选择指令
G17 选择XY平面
G18 选择ZX平面
G19 选择YZ平面
X Y Z 终点坐标
I J K 圆心坐标相对于起点在X Y Z 轴向的增量值
R 圆弧半径
F 进给率
03组 尺寸模式
G90 绝对坐标编程G91 相对坐标编程
04组 存储行程
G22存储行程限制激活
格式G22 X Y Z I J K
详解 X Y Z 限制区域的起始点 I J K 限制区域的终止点 X-I2mm Y-J2mm Z-K2mm
G23存储行程限制取消
06组输入单元
G20 英制数据输入G21公制数据输入
07组刀具半径偏置
G40 刀具半径偏取消
G41刀具半径左补偿
格式G41 D
G42刀具半径右补偿
格式G42 D
08组刀具长度偏置
G43刀具长度正偏置
格式G43 H
G44刀具长度负偏置
格式G44 H
G49刀具长度偏置取消
09组循环
固定循环G73 G74 G76 G80 G81 G82 G83 G84 G85 G86 G87 G88 G89
G代码 孔加工行程 (-Z) 孔底动作 返回行程
(+Z) 用途
G73 断续进给 快速进给 高速深孔往复排屑钻孔
G74 切削进给 主轴正转 切削进给 攻左旋螺纹
G76 切削进给 主轴准停刀具位移 快速进给 精镗
G80 ———— —————— ———— 取消指令
G81 切削进给 快速进给 钻孔
G82 切削进给 暂停 快速进给 钻孔
G83 断续进给 快速进给 深孔排屑钻
G84 切削进给 主轴反转 切削进给 攻右旋螺纹
G85 切削进给 切削进给 镗削
G86 切削进给 主轴停转 切削进给 镗削
G87 切削进给 刀具移位主轴启动 快速进给 背镗
G88 切削进给 暂停;主轴停转 手动操作后
快速返回 镗削
G89 切削进给 暂停 切削进给 镗削
固定循环的代码组成
G90/G91 G98(返回初始点)/G99(返回R点) G73~G89
使用前一定要在前一程序段中加M03/M04指令 使主轴启动
固定循环指令的格式是
G X Y Z R Q P F K
G 是指G73~G89
X Y 是指孔在X Y 平面内的坐标位置(增量或绝对值)
Z 是指孔底坐标值 在增量方式时 是R点到孔底的距离 在绝对值方式时 是孔底的Z坐标值
R 在增量方式时是初始点到R点的距离 而在绝对值方式时是R点的Z坐标值
Q 在G73 G83 中是每次进刀深度 在G76 G87 中指定刀具的让刀量
P 暂停时间单位1ms
F 进给量
K 固定循环的重复次数
他们都是模态指令 固定循环中的参数(z r q p f )也是模态的
钻孔包括铰孔 攻丝 和单点镗孔
编程时需考虑钻头的直径和锋角及螺旋槽的数量
10组 返回模式
G98 固定循环返回初始点G99 固定循环返回R点
12组 坐标系
G54 G55 G56 G57 G58 G59
14组宏指令模式
G66 模态调用
G67 模态调用取消
16组 坐标旋转
G68坐标旋转激活
格式G68 X Y R
详解 X Y 旋转中心 如果省略则以程序原点为中心 R 为旋转角度 顺时针为+值 逆时针为-值
G69坐标旋转取消
18组 极坐标输入
G15 极坐标指令取消
G16 极坐标指令激活
24组 主轴速度波动
G25 主轴速度波动检测功能无效
G26 主轴速度波动检测功能有效
格式G26P Q R
P以毫秒记的开始检查时间
Q允许误差的百分比
R主轴速度跳动的百分比
M代码
程序控制组
M00
无条件强制性停止 包括停止 所有轴的运动
主轴的旋转
冷却液功能
程序的进一步执行
执行M00时控制器不会重启 所有当前有效地重要数据(进给率 坐标设置 主轴速度等)都被保存 M00会取消主轴旋转和冷却液功能
M01可选择程序停止 当按下操作面板上的选择停止开关时
M01同M00功能相同
不按下时M01无效
M02程序结束 M02将终止程序但不会回到程序的开头
M30程序结束 M30将终止程序并同时回到程序的开头
执行M02和M30时 便取消所有轴的运动 主轴旋转 冷却液功能 并且将系统重新设置到缺省状态 M02执行时 将停留在末尾 并准备开始下一循环
主轴控制组
M03主轴顺时针旋转(CW) M04主轴逆时针旋转(CCW) M05 主轴停止M19主轴定位
换刀
M06
冷却液
M07开 M08 开(标准)M09关
附件
M10 M11 M12 M13 M17 M18 M21 M22 M78 M79
螺纹加工
M23 螺纹渐退出开M24关
齿轮速比范围
M41 M42 M43 M44
进给率倍率
M48 M49
子程序
M98调子程序 M99子程序结束
托盘
M60
在程序开头激活的M功能 在程序末尾激活的M功能
M03 M00
M04 M01
M06 M02
M07 M05
M08 M09
M30
M60
M功能的持续时间
在单个程序段中有效的
M00 M01 M02 M06 M30 M60
M功能一直有效的,直到被取消或替代
M03 M04 M05 M07 M08 M09
镜像M21对Y轴镜像 M22的X轴镜像 M23取消镜像
当只对X轴或Y轴镜像时 刀具的实际切削顺序将与源程序相反
刀补矢量方向相反 圆弧插补方向相反 同时镜像时 均不变
镜像功能必须在工件坐标系原点开始回到原点取消 各镜像指令必须单独编写
镜像加工程序中不允许带有转移性质的指令
不允许嵌套使用
使用后必须用M23取消
编程实例
O4151
N1 X6.0 Y1.0
N2 X4.0 Y3.0
N3 X2.0 Y5.0
N4 M99
O1111
M21 (镜像开)
G98 P4151(调用需要镜像的程序)
宏程序的变量类型
#0 空变量 它是空变量即所谓的空白变量 它可以被系统读取但不能赋值
#1~#33 局部变量 它仅是暂时的 当完成调用时或切断电源时所有局部变量会被清空
#100~#149
#500~#531 全局或全局变量 完成宏程序调用仍有用 变量由系统维护可以与其他程序共享
#1000~上限 系统变量 用于设置或修改缺省值 可以读写不同的CNC数据
局部变量赋值
自变量列表1的赋值 宏程序中的局部变量
A #1
B #2
C #3
D #7
E #8
F #9
H #11
I #4
J #5
K #6
M #13
Q #17
R #18
S #19
T #20
U #21
V #22
W #23
X #24
Y #25
Z #26
赋值列表2
自变量列表1的赋值 宏程序中的局部变量
A #1
B #2
C #3
I1 #4
J1 #5
K1 #6
I2 #7
J2 #8
K2 #9
I3 #10
J3 #11
K3 #12
I4 #13
J4 #14
K4 #15
I5 #16
J5 #17
K5 #18
I6 #19
J6 #20
K6 #21
I7 #22
J7 #23
K7 #24
I8 #25
J8 #26
K8 #27
I9 #28
J9 #29
K9 #30
I10 #31
J10 #32
K10 #33
自己做的 请指教
cnc编程一些常用的G,M代码有哪些!
关于 M 指令和 G 代码
G 代码
G00快速定位
G01主轴直线切削
G02主轴顺时针圆壶切削
G03主轴逆时针圆壶切削
G04 暂停
G04 X4 主轴暂停4秒
G10 资料预设
G28原点复归
G28 U0W0 ;U轴和W轴复归
G41 刀尖左侧半径补偿
G42 刀尖右侧半径补偿
G40 取消
G97 以转速 进给
G98 以时间进给
G73 循环
G80取消循环 G10 00 数据设置 模态
G11 00 数据设置取消 模态
G17 16 XY平面选择 模态
G18 16 ZX平面选择 模态
G19 16 YZ平面选择 模态
G20 06 英制 模态
G21 06 米制 模态
G22 09 行程检查开关打开 模态
G23 09 行程检查开关关闭 模态
G25 08 主轴速度波动检查打开 模态
G26 08 主轴速度波动检查关闭 模态
G27 00 参考点返回检查 非模态
G28 00 参考点返回 非模态
G31 00 跳步功能 非模态
G40 07 刀具半径补偿取消 模态
G41 07 刀具半径左补偿 模态
G42 07 刀具半径右补偿 模态
G43 17 刀具半径正补偿 模态
G44 17 刀具半径负补偿 模态
G49 17 刀具长度补偿取消 模态
G52 00 局部坐标系设置 非模态
G53 00 机床坐标系设置 非模态
G54 14 第一工件坐标系设置 模态
G55 14 第二工件坐标系设置 模态
G59 14 第六工件坐标系设置 模态
G65 00 宏程序调用 模态
G66 12 宏程序调用模态 模态
G67 12 宏程序调用取消 模态
G73 01 高速深孔钻孔循环 非模态
G74 01 左旋攻螺纹循环 非模态
G76 01 精镗循环 非模态
G80 10 固定循环注销 模态
G81 10 钻孔循环 模态
G82 10 钻孔循环 模态
G83 10 深孔钻孔循环 模态
G84 10 攻螺纹循环 模态
G85 10 粗镗循环 模态
G86 10 镗孔循环 模态
G87 10 背镗循环 模态
G89 10 镗孔循环 模态
G90 01 绝对尺寸 模态
G91 01 增量尺寸 模态
G92 01 工件坐标原点设置 模态
M03 主轴正转
M03 S1000 主轴以每分钟1000的速度正转
M04主轴逆转
M05主轴停止
M10 M14 。M08 主轴切削液开
M11 M15主轴切削液停
M25 托盘上升
M85工件计数器加一个
M19主轴定位
M99 循环所以程式
数控宏程序
现行的数控程序的编制中,主要有两种编程方式:手工编程和自动编程。虽然自动编程运用得越来越广泛,但手工编程在某些领域也是不可或缺的一种编程手段。手工编程至少在此以下几方面有着自己的优势:其一,熟练的程序员编制的手工程序加工效率高于自动编程;其二,熟悉手工编程,对自动程序的修改是不无裨益的;其三,自动编程的所敲定的走刀路线限制了其加工工艺,通过手工编程能够得到弥补。
在手工编程过程中,用户宏程序的编制,能极大提高程序编制的效率,因此,我们在数控教学及训练过程中,必须把用户宏程序的编制作为我们数控教学的重要内容之一。从历年全国数控大赛的试题中也不难发现,用户宏程序的编制是运用得极其频繁的。但是,我们很难在目前的教材中找到完整的宏程序的编写的方法及思路。为此,笔者提出了一整套设计用户宏程序的方法,通过利用流程图来设计用户宏程序,提高了编程的效率。
二、用户宏程序简介
用户宏程序有A、B两种,A类宏程序用G65指令编写,其格式如下:
G65 Hm P#i Q#j R#k
其中,m—01~99表示运算命令或转移命令功能;
#i—存入运算结果的变量名;
#j—进行运算的变量名1,可以是常数,常数直接表示,不带#;
#k—进行运算的变量名2,也可以是常数。
意义, #i=#j○#k,表示运算符号,常用意义如表1
表1
G代码
H代码
功能
定义
G65
H01
赋值
#i=#j
G65
H02
加法
#i=#j+#k
G65
H03
减法
#i=#j-#k
G65
H04
乘法
#i=#j×#k
G65
H05
除法
#i=#j÷#k
G65
H80
无条件转移
转向N
G65
H81
条件转移1
IF #j=#k,GOTO N
G65
H82
条件转移2
IF #j≠#k,GOTO N
G65
H83
条件转移3
IF #j>#k,GOTO N
G65
H84
条件转移4
IF #j<#k,GOTO N
G65
H85
条件转移5
IF #j≥#k,GOTO N
G65
H86
条件转移6
IF #j≤#k,GOTO N
G65
H99
产生P/S报警
产生500+1号P/S报警
除此以外,G65指令还可以实现逻辑运算、开平方、取绝对值、三角运算及复合运算等,相关指令见有关书籍,这里不一一介绍。需要指出的是,不同的数控系统,其功能的多少也不一样,用户可参考有关系统的说明书。
B类宏程序由控制语句,调用语句所组成。宏程序可以与主程序做在一起,也可以单独做成一个子程序,然后用G65指令调用。调用方法如下:
G65 P(程序号)〈引数赋值〉或G65 P(程序号) L(循环次数)〈引数赋值〉
所谓引数赋值,是指用A、B、C、D等地址给变量#1、#2、#3、#4等赋值。
B类宏程序的控制指令有三类,与C语言等高级程序设计语言的控制指令很类似。一类是IF语句,格式为:
IF[条件式]GOTO n (n即顺序号)
条件式成立时,从顺序号为n的程序段往下执行,条件式不成立时,执行下一下程序段;第二类是WHILE语句,格式为:
WHILE[条件式] DO m
.
.
.
END m
条件式成立时,从DO m的程序段到END m的程序段重复执行,条件式不成立时,则从END m的下一程序段执行。
第三类是无条件转移指令,格式为:GOTO n。
三、运用流程图编写用户宏程序的一般步骤
运用流程图编写用户宏程序的一般步骤为:一分析零件结构,确定宏程序加工的内容,找出加工工艺路线的律;二将零件加工路线规律用流程图表达出来,并进一步分清楚哪些是程序编制过程中的变量,哪些是常量,从而将一般的流程变成程序流程图;三根据程序流程图,编写零件的加工程序。
四、应用举例
(一)宏程序应用实例一
如图1所示,在一根轴上加工N个槽,每个槽的宽度为a1,槽的间距为a2,槽底直径为b1,棒料直径b2,并且设所给材料足够长,试编写程序加工该零件,现有一零件参数为N=100个槽,槽底直径b1=30mm,槽宽a1=5mm,工件直径b2=40mm,间隔a2=2mm,刀宽=3mm,现编写程序加工。图11零件工艺过程分析
该零件是一个比较简单的例子,在压面机械上用得较多。零件的精度要求不高,为了使程序有更广泛的适应性,将宏程序做成一个子程序,用主程序来调用实现零件的加工。加工时将坐标原点选择在如图所示的位置,X轴离第一个槽的距离为一个间距a2的距离。
零件的加工过程如下将:将刀具移至加工起点→进刀→切削第一个槽→计算下一槽的位置并将刀具移到此位置→加工下一个槽……如此至最后一个槽加工完为止。
将此过程画成流程图,如图2(a)所示。
(a) (b)
图2
2零件加工过程中所使用的变量
通过分析,要加工该零件,需要如下一些变量:
工件直径#200= b2
槽底直径#201= b1
槽宽#202= a1
槽间间隔#203= a2
切槽刀宽度#204
每加工一个槽后,切槽刀在Z轴方向移动的距离#205(等于槽间距加上槽宽)
槽的起点坐标Xs=#206,Zs=#207
槽加工终点的坐标Xf=#208,Yf=#209
计算槽数目的变量#215
加工槽的总数#216
由此画出编制程序所用的流程图,如图2(b)所示。
3根据程序流程图编制程序
宏程序O9061
N10 G65 H83 P160 Q#204 R#202 如果刀宽大于槽完,则结束
N20 G65 H01 P#215 Q0 计数器变量清零
N30 G65 H02 P#205 Q#202 R#203 计算#205
N40 G65 H02 P#206 Q#200 R5 工件直径加上5mm作为X方向起点
N50 G65 H02 P#207 Q#203 R#204 槽的间距加上一个刀宽
N60 G65 H01 P#207 Q?#207 取负值后作为第一个槽的Z向起点
N70 G65 H01 P#208 Q#201 槽底直径作为槽终点的X坐标
N80 G65 H01 P#209 Q?#205 第一个槽终点Z向坐标
N90 G00 X#206 Z#207 M08 定位到槽加工的位置
N100 G75 R1
N110 G75 X#208 Z#209 P2 Q#204 F20 加工槽
N120 G65 H03 P#207 Q#207 R#205 下一个槽起点Z向坐标计算
N130 G65 H03 P#209 Q#209 R#205 下一个槽终点Z向坐标计算
N140 G65 H02 P#215 Q#215 R1 槽计数器加1
N150 G65 H84 P90 Q#215 R#216 判断槽是否加工完毕
N160 M08
N170 M99 结束
主程序 O0001
N10 G65 H01 P#200 Q40 工件直径赋值
N20 G65 H01 P#201 Q30 槽底直径赋值
N30 G65 H01 P#202 Q5 槽宽赋值
N40 G65 H01 P#203 Q2 槽间间隔赋值
N50 G65 H01 P#204 Q3 切槽刀宽赋值
N60 G65 H01 P#216 Q100 槽数赋值
N70 G00 X100 Z100 起刀点位置
N80 M98 P9061 调用宏程序
N90 M30 程序结束
(二)宏程序应用实例二
对于一些大悬伸(加工深度与刀具直径之比较大)的零件,用普通加工方法总难达到理想效果,此时用插铣法容易保证零件精度,如图3所示的零件,尺寸80很难保证,用插铣法后获得了比较好的效果。曾经有工厂做过类似的程序,但程序只是针对零件本身,适应性不强,当零件的尺寸发生变化后,程序还得发生较大修改。笔者针对这种情况,将程序分为主程序和子程序,当零件的尺寸发生变化后,只需要修改主程序即可,非常方便。
1加工工艺分析
传统加工工艺方法采用多次重复加工。很难消除让刀,并且造成加工应力,最后由于应力释放造成零件的内腔变小。为了解决这个问题,我们将加工分为粗加工和精加工,粗加工采用普通的工艺方法,精加工采用插铣。
建立如图3所示的坐标系,为了保证加工质量,防止划伤已加工过的表面,编程时避免使用钻孔循环指令。加工轨迹如图4所示,在YZ平面内进行以下加工步骤:加工第一刀→沿圆弧退刀→返回Z=3处→沿圆弧进刀→沿X方向移动一个步距→加工第二刀→…。
加工过程中,粗加工尺寸80按79.6加工,而精加工采用宏程序编制高速插铣程序。精加工的具体参数如表2所示
图3零件图及坐标系 图4刀具路径表2精加工参数
加工方式
加工材料
刀具
步距
设置安全高度
顺铣
铝合金
Φ18整体硬质合金加长球头刀
0.05
Z=3
2加工流程图
为增强程序的适应性,本程序刀分为子程序和主程序来编写,子程序起始位置为(0,0,50),刀具在加工过程中的基本路线是按前面所给出的路线来走刀。
由此画出加工流程图如图5(a)所示。(a) (b)
图5
3程序所使用的变量及程序流程图
本程序中所使用的变量如下:
需加工部位X方向的长度:#1;
需加工部位Y方向的长度:#2;
需加工部位Z方向的深度:#3;
X方向的步距:#4;
走刀轨迹中,退(或进)刀时的半径:#5(本例图4中的R10);
中间变量:#6、#7、#8、#9
由所确定的变量及加工流程图,画出程序流程图如图5(b)所示。
4编制程序
子程序:%9001
N10 #1=#1/2 #1变量取1/2作为X坐标
N20 #2=#2/2 #2变量取1/2作为Y坐标
N30 G00 X#1 X方向定位到加工位置
N40 G41 D1 Y#2 Y方向定位到加工位置
N50 G01 Z3 F3000 M08 下降下安全高度,开冷却液
N60 #6=-(#3-#5) 计算加工终点Z向坐标
N70 #7=#2-2*#5 计算退刀终点Y坐标
N80 G01 Z#6 插铣加工
N90 G02 Y#7 R#5 退刀
N100 G01 Z3 返回
N110 G02 Y#2 R#5 进刀
N120 #8=#8+#4 X方向总加工长度计数
N130 G91 G01 X-#4 X方向走一个步距
N140 IF #8LE#1 GOTO 80 判别第一侧是否加工完
N150 G90 Y-#2 移至另一侧
N160 G01 Z#6 插铣加工另一侧
N180 G02 Y-#7 R#5 退刀
N190 G01 Z3 返回安全高度
N200 G02 Y-#2 R#5 进刀
N210 #9=#9+#4 X方向总加工长度计数
N220 G91 G01 X#4 X方向移动一个步距
N230 IF #9LE#1 GOTO 160 判别另一侧是否加工完
N240 G90 G40 G00 X0 Y0 M09 X、Y方向返回起始点
N250 Z50 Z方向返回起始点
N260 M99 宏程序结束
主程序:%1010
N10 T01 选一号刀
N20 M06 换刀
N30 G00 G90 G54 G19 X0 Y0 S5000 M03 定位到起始位置,选择坐标平面及坐标系,启动主轴。
N40 G43 H01 Z50 Z方向补偿
N60 G65 P9001 A200 B80.05 C90 D0 E0 F0 I0.05 J10 K0 调用宏程序并给相关变量赋值
N70 M05 停止主轴
N80 G49 Z50 Z方向取消补偿
N90 M30 程序结束
五、结束语
利用流程图编制用户宏程序,思路清晰,所编制的程序适应性好,是一种值得推广的方法。