通过实例,剖析了加工中心机床坐标设置与子程序的应用问题,说明了自动编程与手工编程相结合,利用G92位置设置功能与子程序调用相配合,简化编程,优化程序的方法。在实际工作中,取到事半功倍的作用。
随着数控技术的快速发展及CAD/CAM技术的广泛应用,数控加工越来越多地依赖于软件的自动编程,手工编程逐渐处于次要的地位。但在实际加工中如果将自动编程与手工编程相结合,利用G92位置设置功能与子程序调用相配合,则可以更加简化编程,优化程序,有利于程序的修改和重复调用。
下面以美国SABRE-1000 Acramatic 850SX系统立式加工中心机床为例,就坐标设置(位置设置)与子程序调用问题进行探讨。
机床坐标系为机床上固有的坐标系,是由机床生产厂家设定的。工件坐标系是编程人员在编制加工程序时,根据零件图纸上的某一固定点为原点确定的坐标系。两坐标系之间的统一通过准备功能代码G92的位置设置功能实现。
G92位置设置功能允许操作人员或编程人员为当前坐标轴赋予新的坐标值而工作台并不移动。G92偏移机床坐标系,使NC程序中的工件坐标系的坐标值与之相匹配。
工件原点(NC程序的零点)是由操作人员在安装工件的过程中进行定位的。编程人员在编制程序时可以不考虑工件在机床上安装的物理位置和安装精度,而利用数控系统的原点偏置功能,通过工件原点偏置来补偿工件的装夹误差。在加工前将该偏置值输入到数控装置,加工时该偏置值便能自动加到工件坐标系上,使数控系统按机床坐标系确定的工件的坐标值进行加工。但是,如果将G92直接编入程序中,而不采用将偏置值输入到数控装置的方法,则会更加方便。
模具有6个相同的型芯,如果仅采用自动编程而不进行人工编辑,就需要对每一个型芯都完全绘制和进行编程,工作量较大,程序量更大,也不便于检查程序。
如果将手动编程与自动编程相结合,利用CAD/CAM软件自动编程,只需要绘制一个型芯,生成加工一个型芯的程序。再根据各型芯之间的位置关系,通过G92设置和子程序调用,即可得到简洁、清晰的程序。而且,如果在加工的过程中刀具已经磨损,更换刀具后,也可以很方便地修改程序,继续下一个型芯的加工。
:G71G90 “:”为程序开始标识符
T16M6 装第16号刀位上的刀具
G00X519.8Y254.4Z77.929 机床坐标系中工件中心位置(也是型芯1的工件原点)
(CLS,L10) 调用加工一个型芯的子程序
G00X664.8Y254.4Z77.929 到达机床坐标系中型芯2的工件原点位置
(CLS,L10) 调用同一个子程序
G00X809.8Y254.4Z77.929到达机床坐标系中型芯3的工件原点位置
(CLS,L10)
G00X809.8Y484.4Z77.929到达机床坐标系中型芯4的工件原点位置
(CLS,L10)
G00X664.8Y484.4Z77.929到达机床坐标系中型芯5的工件原点位置
(CLS,L10)
G00X519.8Y484.4Z77.929到达机床坐标系中型芯6的工件原点位置
(CLS,L10)
(DFS,L10) 定义加工一个型芯的子程序
G92X0Y0Z0 将子程序前面的,当前坐标轴赋予新的坐标值(0,0,0)
G01X-145.Y-115.M03S350M08F2000
Z-38F100
...... 加工一个型芯的程序
Y-115.
G00Z100 将主轴快速地提升到工件坐标系中Z为100的位置
X0Y0 回到工件坐标系X-Y平面零点
G99 取消G92位置设置,让工件坐标系回复到机床坐标系中
(ENS) 子程序结束
M30 程序结束
实际工作中,工件坐标系的Z方向以工件表面(甚至低于工件表面)作为零点。如果让刀具真正到达工件原点,势必与工件相碰。为了提高安全性,如图3所示,在让刀具准确到达工件原点时,刀具并不真实与工件接触,应将工件原点在机床坐标系中的Z值抬高一定距离(如距离a),相应地,在G92设置Z高度值时,Z值也加上相同距离a。
G00X__Y__Z__+a
G92X0Y0Z0+a
例如,对下面的G92设置程序:
G00X519.8Y254.4Z77.929
G92X0Y0Z0
如:将刀具抬高100mm,可改成:
G00X519.8Y254.4Z77.929+100
G92X0Y0Z0+100
刀具端面距离工件表面高100mm,而工件原点实际上仍在工件表面未变。这样,在进行程序加工过程中就安全、灵活多了。
如果装夹好工件后需要调试程序,我们必须抬高刀具远离工件表面运行,这时只需要将G92中的Z值减去a(a为Z向所需抬高的高度值),就使刀具端面距离工件表面(工件原点)高了a距离。
在加工过程中需要临时增加深度,这时就只需要将G92中的Z值加上a(a为Z向所需下降的深度值),就使刀具端面距离工件表面(工件原点)低了a距离。
如此,就可以在不更改程序其它部分的情况下,只通过更改G92中Z坐标的设置就可以快速、安全地达到目的。
G00X__Y__Z__
G92X0Y0Z0+a (或G92X0Y0Z0-a)
例如:
对下面的程序要求Z方向下降5mm:
G00X519.8Y254.4Z77.929+100
G92X0Y0Z0+100
可改成:
G00X519.8Y254.4Z77.929+100
G92X0Y0Z0+100+5
如果将机床坐标系中工件原点所在的Z值加上a,而G92程序段中的Z值不变,也可使刀具端面距离工件表面(工件原点)提高a距离。或者,将机床坐标系中工件原点所在的Z值减去a,而G92程序段中的Z值不变,就使刀具端面距离工件表面(工件原点)降低a距离。效果与更改G92中Z坐标的设置相同。
G00X__Y__Z__-a (或G00X__Y__Z__+a)
G92X0Y0Z0
例如,对下面的程序要求Z方向下降5mm:
G00X519.8Y254.4Z77.929
G92X0Y0Z0
可改成:
G00X519.8Y254.4Z77.929+100-5
G92X0Y0Z0+100
利用以上原理,在利用加工中心机床刃磨工件时,由于砂轮损耗大,需要执行一次刃磨程序,就修磨一次砂轮(Z值必须下降),如果分别编程,加工时就需要反复更换程序,十分不便。下面的实例程序,可以方便地实现通过G92的设置,调用砂轮修磨程序,在加工过程中方便地修改程序,进行砂轮修磨和工件刃磨,以提高加工效率。
:G71
T12M6
G00X541.52Y254.8Z170+100S3000M03M08 到达机床坐标系中工件原点位置
X60.0Y302.3 砂轮原点在机床坐标系中(X—Y平面内)的位置
Z167.0+100F50 砂轮Z方向零点在机床坐标系中的位置,更改该值可以修磨砂轮
(CLS,L10) 调用砂轮修磨子程序
G92X0Y0Z0+100 当前坐标轴赋予新的坐标值(0,0,100)
G01X43.677Y4F2000S5000
Z79.4F1000
Z73.5F100 工件坐标系中的Z值,与砂轮修磨时下降的高度对应修改
...... 磨削工件程序
G00Z150 将主轴快速地提升到工件坐标系中Z为150的位置
X0Y0
G99 取消位置设置,让工件坐标系回复到机床坐标系中
(DFS,L10) 定义修磨砂轮子程序
G92X0Y0Z0+100 将子程序前面的,轴的当前位置设置为(0,0,100)
G01X10Z-10F100
X0Z0
G99 取消位置设置,让砂轮的工件坐标系回复到机床坐标系中
G00Z270 将主轴快速地提升到机床坐标系中Z为270的位置
X541.52Y254.8 机床坐标系中工件中心位置
(ENS) 砂轮修磨子程序结束
M30
在 G92的位置设置时应注意:当G92包含在程序中时,如果不再需要G92位置设置,一定要使用位置设置取消指令(如G99,不同的机床有不同的指令),否则就可能导致工件、刀具、机床被损坏甚至产生人身伤害事故。
G00X664.8Y254.4Z77.929 到达机床坐标系中型芯2的工件原点位置
(CLS,L10) 调用同一个子程序
G00X809.8Y254.4Z77.929到达机床坐标系中型芯3的工件原点位置
(CLS,L10)
G00X809.8Y484.4Z77.929到达机床坐标系中型芯4的工件原点位置
(CLS,L10)
G00X664.8Y484.4Z77.929到达机床坐标系中型芯5的工件原点位置
(CLS,L10)
G00X519.8Y484.4Z77.929到达机床坐标系中型芯6的工件原点位置
(CLS,L10)
(DFS,L10) 定义加工一个型芯的子程序
G92X0Y0Z0 将子程序前面的,当前坐标轴赋予新的坐标值(0,0,0)
G01X-145.Y-115.M03S350M08F2000
Z-38F100
...... 加工一个型芯的程序
Y-115.
G00Z100 将主轴快速地提升到工件坐标系中Z为100的位置
X0Y0 回到工件坐标系X-Y平面零点
G99 取消G92位置设置,让工件坐标系回复到机床坐标系中
(ENS) 子程序结束
M30 程序结束
实际工作中,工件坐标系的Z方向以工件表面(甚至低于工件表面)作为零点。如果让刀具真正到达工件原点,势必与工件相碰。为了提高安全性,如图3所示,在让刀具准确到达工件原点时,刀具并不真实与工件接触,应将工件原点在机床坐标系中的Z值抬高一定距离(如距离a),相应地,在G92设置Z高度值时,Z值也加上相同距离a。
G00X__Y__Z__+a
G92X0Y0Z0+a
例如,对下面的G92设置程序:
G00X519.8Y254.4Z77.929
G92X0Y0Z0
如:将刀具抬高100mm,可改成:
G00X519.8Y254.4Z77.929+100
G92X0Y0Z0+100
刀具端面距离工件表面高100mm,而工件原点实际上仍在工件表面未变。这样,在进行程序加工过程中就安全、灵活多了。
如果装夹好工件后需要调试程序,我们必须抬高刀具远离工件表面运行,这时只需要将G92中的Z值减去a(a为Z向所需抬高的高度值),就使刀具端面距离工件表面(工件原点)高了a距离。
在加工过程中需要临时增加深度,这时就只需要将G92中的Z值加上a(a为Z向所需下降的深度值),就使刀具端面距离工件表面(工件原点)低了a距离。
如此,就可以在不更改程序其它部分的情况下,只通过更改G92中Z坐标的设置就可以快速、安全地达到目的。
G00X__Y__Z__
G92X0Y0Z0+a (或G92X0Y0Z0-a)
例如:
对下面的程序要求Z方向下降5mm:
G00X519.8Y254.4Z77.929+100
本文来自莫莫的微信公众号【UG数控编程】,关注后可领取教程。
学习UG编程,能力到了,薪资都不是问题。干操机累,即使干操机一个月五到七千,但那不是长之计,你每次换了工作薪资还是一样,没多大区别。而干编程,你越往后,积累的技术能力越强,薪资自然会更高。希望大家找对学习的方向,也希望在群192963572可以帮助到正在迷茫的你。