数控铣床宏程序
数控机床宏程序编程的技巧和实例
数控机床宏程序编程的技巧和实例第一篇:数控机床宏程序编程的技巧和实例论文:数控机床宏程序编程的技巧和实例2011年8月11日前言随着工业技术的飞速发展,产品形状越来越复杂,精度要求越来越高,产品更新换代越来越快,传统的设备已不能适应新要求。
现在我国的制造业中已广泛地应用了数控车床、数控铣床、加工中心机床、数控磨床等数控机床。
这些先进设备的加工过程都需要由程序来控制,需要由拥有高技能的人来操作。
要发挥数控机床的高精度、高效率和高柔性,就要求操作人员具有优秀的编程能力。
常用的编程方法有手工编程和计算机编程。
计算机编程的应用已非常广泛。
与手工编程比较,在复杂曲面和型腔零件编程时效率高、质量好。
因此,许多人认为手工编程已不再重要,特别是比较难的宏程序编程也不再需要。
只须了解一些基本的编程规则就可以了。
这样的想法并不能全面。
因为,计算机编程也有许多不足:1、程序数据量大,传输费时。
2、修改或调整刀具补偿需要重新后置输出。
3、打刀或其他原因造成的断点时,很难及时复位。
手工编程是基础能力,是数控机床操作编程人员必须掌握的一种编程方法。
手工编程能力是计算机编程的基础,是刀具轨迹设计,轨迹修改,以及进行后置处理设计的依据。
实践证明,手工编程能力强的人在计算机编程中才能速度快,程序质量高。
在程序中使用变量,通过对变量进行赋值及处理使程序具有特殊功能,这种有变量的程序叫宏程序。
宏程序是数控系统厂家面向客户提供的的二次开发工具,是数控机床编程的最高级手工方式。
合理有效的利用这个工具将极大地提升机床的加工能力。
作为一名从事数控车床、数控铣床、加工中心机床操作编程二十多年的技师,在平时的工作中,常常用宏程序来解决生产中的难题,因此对宏程序的编程使用积累了一些经验。
在传授指导徒弟和与同事探讨中,总结了许多学习编制宏程序应注意的要点。
有关宏编程的基础知识在许多书籍中讲过,我们在这里主要通过实例从编制技巧、要点上和大家讨论。
一、非圆曲面类的宏程序的编程技巧1、非圆曲面可以分为两类;(1)、方程曲面,是可以用方程描述其零件轮廓的曲面的。
数控铣床宏程序编程
变量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。
使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100 G01X#1F300 说明:变量的表示计算机允许使用变量名,用户宏程序不行。
变量用变量符号(#)和后面的变量号指定。
例如:# 1 表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。
例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型变量号变量类型功能#0空变量该变量总是空,没有值能赋给该变量. #1-#33 局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空.调用宏程序时,自变量对局部变量赋值, #100-#199#500-#999 公共变量公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失. #1000 系统变量系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿值.变量值的范围局部变量和公共变量可以有0值或下面范围中的值: -1047到-10-29或-10-2到-1047 如果计算结果超出有效范围,则发出P/S报警N O.111.小数点的省略当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是123.000。
变量的引用为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3; 被引用变量的值根据地址的最小设定单位自动地舍入。
例如:当G00X#/;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346.改变引用变量的值的符号,要把负号(-)放在#的前面。
例如:G00X-# 1 当引用未定义的变量时,变量及地址都被忽略。
数控铣床宏程序编程
变量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。
使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100 G01X#1F300 说明:变量的表示计算机允许使用变量名,用户宏程序不行。
变量用变量符号(#)和后面的变量号指定。
例如:# 1 表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。
例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型变量号变量类型功能#0空变量该变量总是空,没有值能赋给该变量. #1-#33 局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空.调用宏程序时,自变量对局部变量赋值, #100-#199#500-#999 公共变量公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失. #1000 系统变量系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿值.变量值的范围局部变量和公共变量可以有0值或下面范围中的值: -1047到-10-29或-10-2到-1047 如果计算结果超出有效范围,则发出P/S报警N O.111.小数点的省略当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是123.000。
变量的引用为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3; 被引用变量的值根据地址的最小设定单位自动地舍入。
例如:当G00X#/;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346.改变引用变量的值的符号,要把负号(-)放在#的前面。
例如:G00X-# 1 当引用未定义的变量时,变量及地址都被忽略。
数控铣宏程序实例
第四章数控铣宏程序实例§4.1 椭圆加工(编程思路:以一小段直线代替曲线)例1 整椭圆轨迹线加工(假定加工深度为2mm)方法一:已知椭圆的参数方X=acosθ Y=bsinθ变量数学表达式设定θ= #1(0°~ 360°)那么 X= #2 = acos[#1]Y= #3= bsin[#1]程序O0001;S1000 M03;G90 G54 G00 Z100;G00 Xa Y0;G00 Z3;G01 Z-2 F100;#1=0;N99 #2=a*cos[#1];#3=b*sin[#1];G01 X#2 Y#3 F300;#1=#1+1;IF[#1LE360]GOTO99;GOO Z50;M30;例2 斜椭圆且椭心不在原点的轨迹线加工(假设加工深度为2mm )椭圆心不在原点的参数方程X=a*C OS [#1]+ MY=b*SIN [#1]+ N变量数学表达式设定θ=#1; (0°~360°)那么X=#2=a*C OS [#1]+ MY=#3=b*SIN [#1]+ N因为此椭圆绕(M ,N )旋转角度为A 可运用坐标旋转指令G68格式 G68 X - Y - R - X,Y :旋转中心坐标; R: 旋转角度程序O0002;S1000 M03;G90 G54 G00 Z100;GOO X0 Y0;GOO Z3;G68 XM YN R45;#1=0;N99 #2=a*COS [#1]+M;#3=b*SIN [#1]+N;GO1 X#2 Y#3 F300;G01 Z-2 F100;#1=#1+1;IF[#1LE360]GOTO99;G69 GOO Z100;M30;例3:椭圆轮廓加工(深度2mm)采用椭圆的等距加工方法使椭圆的长半轴和短半轴同时减少一个行距的方法直到短半轴小于刀具的半径R根据椭圆的参数方程可设变量表达式θ=#1(0°~360°)a=#2b=#3(b-R~R)X=#2*COS[#1]=#4Y=#3*SIN[#1]=#5程序O0003;S1000 M03;G90 G54 G00 Z100;G00 XO YO;GOO Z3;G01 Z-2 F100;#2=a-R;#3=b-R;N99 #1=0;#4=#2*COS [#1];#5=#3*SIN [#1];G01 X#4 Y#5 F300;#1=#1+1;IF [#1LE360]GOTO99;#2=#2-R;#3=#3-R;IF [#3LER ]GOTO99;GOO Z100;M30;例4 非整椭圆轨迹线加工;(加工深度2mm )已知椭圆的长半轴a 短半轴为b 且与X 轴正向夹角为A 1,A 2。
数控铣宏程序
三. 变量#1~#33在宏程序中储存数据,在程序中对其赋值。
赋值是将一个数据赋予一个变量.例如#1=0,表示#1的值就是0,其中#1代表变量,#是变量符号,0就是给变量#1赋的值。
例如G0 X0 Y0;#1=100 ;#1=50;G01 X100 F500 ;G0 X0 Y0;#2=50;G01 X#1 F500;G0 X0 Y0 ;G01 X[#1+#2]F500;四。
变量之间的运算变量之间可以进行加,减,乘,除函数等各种运算例如#1=60;#2=SIN#1;运算顺序和一般数学上的定义相同例如#1=#2+3*SIN#4括号嵌套最里层的括号优先例如#6=COS[[[#5+#4]*#3+#2]*#1]比较难理解的一种情况典型例子#1=0;#2=1;N01 IF[#2 GT 100] GOTO 02;#1= #1+#2;#2= #2+#1;GOTO 01;N02 M30;3.循环(WHILE语句)在WHILE后制定一个条件表达式,当指定条件满足时,则执行从DO到END之间的程序,否则,转到END后的程序段例如#2=10;#3=20;WHILE[#2 LT #3]DO01;#2=#2—1;END01;实例运用O2012(螺旋铣孔)#1=50;圆孔直径#2=40;圆孔深度#3=30;刀具直径#4=0;Z坐标设为自变量,赋值为0#17=1;Z坐标每次递增量#5=[#1—#3]/2;刀具回转直径S1000 M3;G54 G90 G00 X0 Y0 Z30;G00 X#5Z[—#4+1];G01 Z—#4 F200;WHILE[#4 LT #2]DO01;#4= #4+#17;G03 I—#5 Z—#4 F1000;END 01;G03 I—#5;G01 X[#5-1];G0 Z100;M30;O2013(群孔)#1=40;最内圈孔圆心所在直径#2=30;每列孔间隔#3=12;孔的列数#4=10;空间隔#5=6;每列孔个数S1000 M3;G54 G90 G00 X0 Y0 Z30G16;#6=1;WHILE[#6 LE #3]DO 01;#7=1;WHILE[#7 LE #5]DO 02;#8= #1/2+[#7-1]*#4#9= [#6—1]*#2;G98 G81 X#8 Y#9 Z—60 R3 F100; #7=#7+1;END 02;#6=#6+1;END 01;G80 Z30;G15;M30;O2013(可变式深孔钻)#1=3;每次进给钱的缓冲高度#2=20;第一次钻深#3=0.5;递减比例#4=35;孔总深的#5=5。
华中数控铣床宏程序实例
G18G01X[#2]Z[#3]
#5=#2
WHILE#5GE2
G17G01X[#5]
#6=0
WHILE#6LT360
#7=#5*COS[#6*PI/180]
#8=#4*SIN[#6*PI/180]
G01X[#7]Y[#8]
#6=#6+1ENDW
#5=#5+5
ENDW
G54G00X0Y0Z50
M3S1500
Z3
G01Z0F250
#1=90
WHILE#1GE0
#2=30*COS[#1*PI/180]
#3=30*SIN[#1*PI/180]-30
G18G01X[#2]Z[#3]
#4=#2
WHILE#4LT43
G17X[#4]
G02I[-#4]
#4=#4+5
ENDW
G01X[-#2]
Z5
G01Z0F250
#1=180
WHILE#1LT270
#2=30*COS[#1*PI/180]
#3=30*SIN[#1*PI/180]
G18G01X[#2]Z[#3]
#4=#2
WHILE#4GE0
G17G01X[#4]
G02I[-#4]
#4=#4-5
ENDW
G01X[#2]
#1=#1+1
ENDW
G00Z50
M30
(精铣)
G54G00X0Y0Z50
M03S1500
Z5
G01Z0F250
#1=180
WHILE#1LT270
#2=30*COS[#1*PI/180]
#3=30*SIN[#1*PI/180]
数控铣床的宏程序与子程序的编程实例
数控铣床的宏程序与子程序的编程实例[摘要]本文主要使数控铣床与加工中心手工编程更加简便而进行论证。
因为数控铣床与加工中心一般加工的零件都是比较复杂与切削的刀数较多等特点。
在这篇文章里,我主要是通过宏程序与子程序来减少手工编程的工作量。
[关键词]宏程序子程序编程中图分类号:td327.3 文献标识码:a 文章编号:1009-914x (2013)20-0323-02前言:随着中国经济的不断发展,人民对产品的要求不断地提高,普通机床所加工的零件已经满足不了现代工业产品的需要。
所以现在数控机床的应用越来越广泛。
数控机床是用程序来控制的,要求工作人员必须要掌握如何进行编程。
数控机床编程分为手工编程与自动编程。
自动编程是通过一些辅助软件来进行编程的。
手工编程是通过操作人员根据零件的外形轮廓来使用相应的编程指令来编写,但一般普通的手工编程的缺点就是编程的工作量大,且容易出错。
现在手工编程使用的比较广泛的有宏程序与子程序。
使用宏程序和子程序的特点是:可以减少编程的工作量、且编程的时候不容易出错,所以在手工编程上普遍使用。
以下就举一个实例来说明宏程序与子程序的应用。
提出问题:对于以下工件(如图1),在这里主要分为两道程序,第一道外形铣削,第二道倒圆角。
外形铣削的编程,用直径为12mm的立铣刀。
所用的毛坯料尺寸为125mm×90mm×20mm,将其进行外形铣削(如图2)。
如果只用主程序来进行手工编程,会出现有工作量大且容易出错的问题。
在这里利用宏程序与子程序进行编程。
图1图2o0001;g90 g54 g40 g0 x0 y0;g43 z100. h01;g0 x75 y20 d01;z5;#1=-3;whlie [#1 ge -9] do1;g1 z#1 f100m98 p0002;#1=#1-3;end1;g0 z100;m30;o0002g41 g1 x68 y8 d01 f400;g3 x60 y0 r8;g1 y-35;g2 x50 y-45 r10;g1 x-50;g2 x-60 y-35 r10;g1 y35;g02 x-50 y45 r10;g1 x50;g2 x60 y35 r10;g1 x60;g3 x68 y-8 r8;g40 g1 y0;m99;第二道倒圆角在这里也是用直径为12mm的立铣刀。
(数控CNC宏程吧)宏程序编程实例与技巧方法
一、基础知识
1、 宏变量及常量
②全局变量:用户可以自由使用#50~#199,它对于由主程序调用的各子程序及 各宏程序来说是可以公用的,可以人工赋值。HNC-21/22T子程序嵌套调用的深度 最多可以有8层,每一层子程序都有自己独立的局部变量(变量个数为50)。
③系统变量:系统变量为#1000~#1199,它能获取包含在机床处理器或NC内存中 的只读或读/写信息,包括与机床处理器有关的交换参数、机床状态获取参数、 加工参数等系统信息。 (2) 常量 PI:圆周率π;TRUE:条件成立(真);FALSE:条件不成立(假)
#500 #999 的数据保存即使断 电也不丢失
#1000 系统变量 系统变量用于读和写CNC 运行
——
时各种数据的变化例如刀具的当
前位置和补偿值等
三、刀具补偿存储器C用G10 指令进行设定
H代码的几何补偿值 D代码的几何补偿值 H代码的磨损补偿值 D代码的磨损补偿值
G10L10P R ; G10L12P R ; G10L11P R ; G10L13P R ;
二、 数控铣床用户宏程序编程
%1000;长半轴、短半轴分别为40、30的椭圆 G92 X0 Y0 Z30 M03 S800 G00 X45 Y-15 M08;快速定位至A点 Z3 G01 Z-5 F100 #2=0;给角度赋0初值 WHILE #2 LE 360;当角度≤360度时,执行循环体内容 #11=40*COS[#2*PI/180];用椭圆的标准参数方程求动点M的X坐标值 #12=30*SIN[#2*PI/180];用椭圆的标准参数方程求动点M的Y坐标值 G42 G64 G01 X[#11] Y[#12] D01;用直线插补指令加工至M点,即用 直线段逼近椭圆 #2=#2+1;角度的递增步长取1度 ENDW G40 G01 X45 Y15;切出椭圆至C点 Z3 M09 G00 Z30 X0 Y0 M05 M30
宏程序在数控铣床编程球面加工中的应用
宏程序在数控铣床编程球面加工中的应用摘要:宏程序在生产实践中有着广泛的应用,尤其在曲面的编程时更为常用。
掌握宏程序在数控编程中的应用,是数控技术的重要组成部分。
文章针对宏程序在球面加工中的使用,阐述了如何使用变量及高级语言的表达式编制程序。
关键词:数控编程宏程序变量中图分类号:TP313 文献标识码:A 文章编号:1672-4801(2007)01-02-031 引言在铣床上,数控编程方式有两种,一是自动编程,二是手工编程。
自动编程是指依靠自动编程软件来完成程序编制,它可以解决复杂零件的加工问题,但其产生的数控加工程序受多方面因素的影响,首先受CAD/CAM 软件在CAD 建模时计算精度的影响,其次,受CAD/CAM 软件在生成NC 刀具轨迹时计算精度的影响,有时后处理环节对其也会有影响,打开一个自动编程的数控加工程序,可发现程序中几乎都是简单的圆弧与直线指令的组合,虽然数据很准确,但很繁琐,几乎无法读懂程序。
手工编程是由人工完成零件的程序编制工作,主要包括零件图样分析、工艺处理、数据计算、编制程序及输入并校验程序等过程,相对于自动编程而言,可以完成的零件相对较为简单,但为什么还要学手工编程呢?对于数控从业人员来讲,手工编程是自动编程的基础,在任何时候,手工编程都是必须要掌握,在我国,无论是数控类技能鉴定等级考试或是数控类技能大赛,都不允许使用CAD/CAM 软件进行自动编程,而只能进行手工编程,在企业中,手工编程依然运用于实际生产。
特别是宏程序,是手工编程的高级形式,程序编制过程中,如果能够精通宏程序的使用,会使程序变得简单,而且其加工精很高,相对于自动编程产生的数控加工程序,加工时间也会大大缩短。
2 关于宏程序2.1 宏程序的定义、特点在程序中使用变量,通过对变量进行赋值及处理的方法达到程序功能,这种有变量的程序称之为宏程序。
在一般的程序编制中程序字视为一常量,一个程序只能描述一个几何形状,所以缺乏灵活性和适用性;而使用宏程序编程,针对同一类型的编程,只须改动变量数值,不用重新编程,就可以得到不同尺寸而几何形状相似的程序具有应用灵活、形式自由的特点;还具备计算机高级语言的表达式、逻辑运算及类似的程序流程,使加工程序简练易懂,实现普通编程难以实现的功能。
数控铣实训-机械专业本科宏程序篇
复合乘/除 复合平方根1
宏功能应用
0.概述
• 用户宏功能是提高数控机床性能的一种特殊功能。使用中, 通常把能完成某一功能的一系列指令像子程序一样存入存 储器,然后用一个总指令代表它们,使用时只需给出这个 总指令就能执行其功能。 用户宏功能主体是一系列指令,相当于子程序体。它 既可以由机床生产厂提供,也可以由机床用户自己编制。 宏指令是代表一系列指令的总指令,相当于子程序调 用指令。 用户宏功能的最大特点是,可以对变量进行运算,使 程序应用更加灵活、方便。
(3)WHILE语句,当…时循环
循环格式: WHILE [条件表达式] DO m;(m=1,2,3)
程序
END m • 在WHILE后指定一个表达式。当条件满足时,则执行从DO到 END之间的程序段。否则,转到END后的程序段。DO后面的号 是指定程序执行范围的标号,其值只能为1,2,3,如果使用 了1,2,3以外的值会触发报警。在DO~END循环中的标号 (1~3)可根据需要多次重复使用。 • DO循环可以嵌套,最多3重嵌套。DO的范围不能交叉。(条件) 转移可以跳出循环的外边,但外边的转移不能进入循环区内。 • DO m和END m必须成对使用,而且DO m 一定要在END m 指令 之前。用识别号m来识别。
• 用户宏功能有A、B两类。
1.变量
•
在常规的主程序和子程序内,总是将一个具体的数值 赋给一个地址。为了使程序更具通用性、更加灵活,在宏 程序中设置了变量,即将变量赋给一个地址。
(1)变量的表示 变量可以用“#”号和跟随其后的变量序号来表示: #i(i=1,2,3......) 例:#5, #109, #501。
含义:#100=#101+15
• 1)变量的定Biblioteka 和替换 #i=#j编程格式: G65 H01 P#i Q#j 例 G65 H01 P#101 Q1005; (#101=1005) G65 H01 P#101 Q- #112;(#101=- #112) 2)加法 #i=#j+#k 编程格式: G65 H02 P#i Q#j R#k 例 G65 H02 P#101 Q#102 R#103;(#101=#102+#103) 3)减法 #i=#j-#k 编程格式 G65 H03 P#i Q#j R#k 例 G65 H03 P#101 Q#102 R#103;(#101=#102-#103) 4)乘法 #i=#j×#k 编程格式 G65 H04 P#i Q#j R#k 例 G65 H04 P#101 Q#102 R#103;(#101=#102×#103) 5)除法 #i=#j / #k 编程格式 G65 H05 P#i Q#j R#k 例 G65 H05 P#101 Q#102 R#103;(#101=#102/#103)
数控铣床宏程序 5个例子改
三、计算题1、如图工件原点在工件上表面圆心,设平底立铣刀直径φ10,由下而上周铣孔口倒圆角,试编写的宏程序部分。
G00 X0 Y0 Z10 起刀点定位在Z10Z–8G01 X15 F1000 加上刀具半径5,就是X20.半径补偿功能没有使用。
#1=0;(自变量初始化,#1为X、Z变化量,因为是45°,所以X、Z变化量相等)N10 G1 X[15+#1] Z[–8+#1];(X从右边开始,Z从下面开始)G17 G03 I–[15+#1];(铣整圆,J0省略,起点和终点Y0不变)#1=#1+0.1;(设步进距为0.1,自变量递增0.1,)IF [#1 LE 8.5 ]GOTO 10;(8.5过头一点,防止未切完,留有毛刺)Z10;M99;2、如图工件原点在工件上表面圆心,设平底立铣刀直径φ8,由下而上周铣倒圆角,试编写倒圆角的宏程序部分。
椭圆有长半轴、短半轴。
圆只有半径。
椭圆参数方程:a=b,是一个圆。
)sin()cos(tbytax⨯=⨯=tabxy立铣刀直径φ8,由下而上周铣倒圆角初始化,G00 X30 Y0 Z10;从右面下来Z -5;G01 X24 F300;从右面靠上工件。
#3=0;角度α赋初值,以角度作为自变量N10 #1=5*COS[#3];X值计算COS[0]=1,COS[90]=0#2=5*SIN[#3];Z值计算SIN[0]=0,SIN[90]=1G01 X[19+#1] Z[#2-5] F1000;刀具移动一个偏移量G17 G3 I-[19+#1];XY平面加工整圆,起点、终点不变,J0省略。
#3=#3+1;设角度步进距为1°ºIF [#3 LE 90] GOTO 10;(第一象限,条件为圆的四分之一)Z10;M99;3、如图工件原点在工件上表面,设加工深度为5mm,试用变量编程编写该曲线轮廓A的宏程序部分。
渐开线函数为sin(t))*t-*(sin(t)y,t的取值范围是[0,3.14159]。
数控铣宏程序编程100例
数控铣宏程序编程100例数控铣宏程序编程是数控铣床操作中的重要环节,它可以大大提高生产效率和产品质量。
下面将介绍100个常见的数控铣宏程序编程实例。
1. G90 G54 G0 X0 Y0:将坐标系设置为绝对坐标系,将刀具移动到原点位置。
2. G91 G0 X10 Y10:将坐标系设置为相对坐标系,将刀具移动到当前位置的X轴正方向10mm,Y轴正方向10mm的位置。
3. G92 X0 Y0:将当前位置设置为坐标系原点。
4. G94:将进给速度设置为每分钟进给。
5. G95:将进给速度设置为每转进给。
6. G96 S1000:将主轴转速设置为1000转/分钟。
7. G97:将主轴转速设置为每分钟转速。
8. G98:将主轴转速设置为每转转速。
9. G99:将主轴转速设置为每进给转速。
10. G40:取消刀具半径补偿。
11. G41 D1:启用刀具半径补偿,刀具半径为1mm。
12. G42 D2:启用刀具半径补偿,刀具半径为2mm。
13. G43 H1:启用刀具长度补偿,刀具长度为1mm。
14. G44 H2:启用刀具长度补偿,刀具长度为2mm。
15. G45 H3:启用刀具长度补偿,刀具长度为3mm。
16. G46 H4:启用刀具长度补偿,刀具长度为4mm。
17. G47 H5:启用刀具长度补偿,刀具长度为5mm。
18. G48:取消刀具长度补偿。
19. G49:取消刀具半径和长度补偿。
20. G50 S2000:将主轴转速设置为2000转/分钟。
21. G51:取消坐标系旋转。
22. G52 X10 Y10:将坐标系旋转10度。
23. G53:取消工件坐标系。
24. G54:将工件坐标系设置为1号坐标系。
25. G55:将工件坐标系设置为2号坐标系。
26. G56:将工件坐标系设置为3号坐标系。
27. G57:将工件坐标系设置为4号坐标系。
28. G58:将工件坐标系设置为5号坐标系。
29. G59:将工件坐标系设置为6号坐标系。
G54数控宏程序教程(铣床篇)
G54数控宏程序教程(铣床篇1)—利用宏程序实现零件的分层加工对于手工编程者来说,如果能够恰当的使用宏程序,会给编程带来很大的方便。
下面用一个非常简单的例子来说明:下图中在板料中间加工一个键槽,这里为了说明程序,我们假设用直径5mm的立铣刀直接加工,实际上刀具加工槽时,只是走了段长度为25的直线。
工件坐标系原点定在工件上表面中心,则程序编制如下:G90G54G00X0Y0Z100M3S2500G0X-12.5Y0Z3#1=-1 设定初始加工深度Z-1N10 G1Z[#1]F20X12.5G0Z3X-12.5#1=#1-1IF [#1GE-5] GOTO 10G0Z100M5M30阴影部分是完成一层的加工,无论多复杂的腔或外轮廓都可以加工,当然侧面需要是垂直的才行。
G54数控宏程序教程(铣床篇2)—外轮廓线数控宏程序加工实例在前面例子的基础上,我们用直径10mm的立铣刀加工一下图纸中的外轮廓。
为编程方便我们调用刀具半径补偿D01=5。
工件坐标系原点定在工件上表面中心,则程序编制如下:G90G54G00X0Y0Z100M3S2500G0X-40Y-40#1=-1 设定初始加工深度Z-1N10 G0Z[#1] 阴影部分完成轮廓在Z[#1]这个深度的加工G0G41X-21D01G1Y21F1000X21Y-21X-21G0G40Y-40#1=#1-1IF [#1GE-5] GOTO 10G0Z100M5M30G54数控宏程序教程(铣床篇3)—圆周孔加工宏程序实例如下图所示,在φ30圆周上均匀加工6个φ6小孔,假设深度为8mm工件坐标系原点定在工件上表面中心,则程序编制如下:G90G54G00X0Y0Z100M3S800#1=0N10 #2=15*COS[#1]#3=15*SIN[#1]G99G81X[#2]Y[#3]R5Z-8F80#1=#1+30IF [#1LT360] GOTO 10 或写成IF [#1LE330] GOTO 10G0G80Z100M5M30G54数控宏程序教程(铣床篇4)—铣床椭圆标准方程宏程序分层加工椭圆的基础知识及宏程序加工原理请参考下面链接程序:/program/macro/355.html/program/macro/356.html本宏程序示例中假设刀具沿着椭圆中心加工一个深度为5mm的椭圆槽,椭圆长半轴20mm,短半轴15mm。
华中数控铣宏程序加工
宏程序加工实例一、宏指令编程1宏变量及常量(1)宏变量#0~#49当前局部变量#50~#199全局变量#200~#249 0层局部变量#250~#299 1层局部变量#300~#349 2层局部变量#350~#399 3层局部变量#400~#449 4层局部变量#450~#499 5层局部变量#500~#549 6层局部变量#550~#599 7层局部变量#600~#699刀具长度寄存器H0~H99#700~#799刀具半径寄存器D0~D99#800~#899刀具寿命寄存器#1000“机床当前位置X”#1001“机床当前位置Y”#1002“机床当前位置Z”#1003“机床当前位置A”#1004“机床当前位置B”#1005“机床当前位置C”#1006“机床当前位置U”#1007“机床当前位置V”#1008“机床当前位置W”#1009保留#1010“程编机床位置X”#1011“程编机床位置Y”#1012“程编机床位置Z”#1013“程编机床位置A”#1014“程编机床位置B”#1015“程编机床位置C”#1016“程编机床位置U”#1017“程编机床位置V”#1018“程编机床位置W”#1019保留#1020“程编工件位置X”#1021“程编工件位置Y”#1022“程编工件位置Z”#1023“程编工件位置A”#1024“程编工件位置B”#1025“程编工件位置C”#1026“程编工件位置U”#1027“程编工件位置V”#1028“程编工件位置W”#1029保留53#1030“当前工件零点X”#1031“当前工件零点Y”#1032“当前工件零点Z”#1033“当前工件零点A”#1034“当前工件零点B”#1035“当前工件零点C”#1036“当前工件零点U”#1037“当前工件零点V”#1038“当前工件零点W”#1039保留#1040“G54零点X”#1041“G54零点Y”#1042“G54零点Z”#1043“G54零点A”#1044“G54零点B”#1045“G54零点C”#1046“G54零点U”#1047“G54零点V”#1048“G54零点W”#1049保留#1050“G55零点X”#1051“G55零点Y”#1052“G55零点Z”#1053“G55零点A”#1054“G55零点B”#1055“G55零点C”#1056“G55零点U”#1057“G55零点V”#1058“G55零点W”#1059保留#1060“G56零点X”#1061“G56零点Y”#1062“G56零点Z”#1063“G56零点A”#1064“G56零点B”#1065“G56零点C”#1066“G56零点U”#1067“G56零点V”#1068“G56零点W”#1069保留#1070“G57零点X”#1071“G57零点Y”#1072“G57零点Z”#1073“G57零点A”#1074“G57零点B”#1075“G57零点C”#1076“G57零点U”#1077“G57零点V”#1078“G57零点W”#1079保留#1080“G58零点X”#1081“G58零点Y”#1082“G58零点Z”#1083“G58零点A”#1084“G58零点B”#1085“G58零点C”#1086“G58零点U”#1087“G58零点V”#1088“G58零点W”#1089保留#1090“G59零点X”#1091“G59零点Y”#1092“G59零点Z”#1093“G59零点A”#1094“G59零点B”#1095“G59零点C”#1096“G59零点U”#1097“G59零点V”#1098“G59零点W”#1099保留#1100“中断点位置X”#1101“中断点位置Y”#1102“中断点位置Z”#1103“中断点位置A”#1104“中断点位置B”#1105“中断点位置C”#1106“中断点位置U”#1107“中断点位置V”#1108“中断点位置W”#1109“坐标系建立轴”#1110“G28中间点位置X”#1111“G28中间点位置Y”#1112“G28中间点位置Z”#1113“G28中间点位置A”#1114“G28中间点位置B”#1115“G28中间点位置C”#1116“G28中间点位置U”#1117“G28中间点位置V”#111“8G28中间点位置W”#1119“G28屏蔽字”#1120“镜像点位置X”#1121“镜像点位置Y”#1122“镜像点位置Z”#1123“镜像点位置A”#1124“镜像点位置B”#1125“镜像点位置C”#1126“镜像点位置U”#1127“镜像点位置V”#1128“镜像点位置W”#1129“镜像屏蔽字”#1130“旋转中心(轴1)”#1131“旋转中心(轴2)”#1132“旋转角度”#1133“旋转轴屏蔽字”#1134保留#1135“缩放中心(轴1)”#1136“缩放中心(轴2)”#1137“缩放中心(轴3)”#1138“缩放比例”#1139“缩放轴屏蔽字”#1140“坐标变换代码1”#1141“坐标变换代码2”#1142“坐标变换代码3”#1143保留#1144“刀具长度补偿号”#1145“刀具半径补偿号”#1146“当前平面轴1”#1147“当前平面轴2”#1148“虚拟轴屏蔽字”#1149“进给速度指定”#1150“G代码模态值0”#1151“G代码模态值1”#1152“G代码模态值2”#1153“G代码模态值3”#1154“G代码模态值4”#1155“G代码模态值5#1156“G代码模态值6”#1157“G代码模态值7”#1158“G代码模态值8”世纪星铣床数控系统(HNC-21/22M)编程说明书54#1159“G代码模态值9”#1160“G代码模态值10”#1161“G代码模态值11”#1162“G代码模态值12”#1163“G代码模态值13”#1164“G代码模态值14”#1165“G代码模态值15”#1166“G代码模态值16”#1167“G代码模态值17”#1168“G代码模态值18”#1169“G代码模态值19”#1170“剩余CACHE”#1171“备用CACHE”#1172“剩余缓冲区”#1173“备用缓冲区”#1174保留#1175保留#1176保留#1177保留#1178保留#1179保留#1180保留#1181保留#1182保留#1183保留#1184保留#1185保留#1186保留#1187保留#1188保留#1189保留#1190“用户自定义输入”#1191“用户自定义输出”#1192“自定义输出屏蔽”#1193保留#1194保留(2)常量PI:圆周率πTRUE:条件成立(真)FALSE:条件不成立(假)2运算符与表达式(1)算术运算符:+,-,*,/(2)条件运算符EQ(=),NE(≠),GT(>),GE(≥),LT(<),LE(≤)(3)逻辑运算符AND,OR,NOT(4)函数SIN,COS,TAN,ATAN,A TAN2,ABS,INT,SIGN,SQRT,EXP(5)表达式用运算符连接起来的常数,宏变量构成表达式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数控铣教程专题一行切和环切在数控加工中,行切和环切是典型的两种走刀路线。
行切在手工编程时多用于规则矩形平面、台阶面和矩形下陷加工,对非矩形区域的行切一般用自动编程实现。
环切主要用于轮廓的半精、精加工及粗加工,用于粗加工时,其效率比行切低,但可方便的用刀补功能实现。
1.1环切环切加工是利用已有精加工刀补程序,通过修改刀具半径补偿值的方式,控制刀具从内向外或从外向内,一层一层去除工件余量,直至完成零件加工。
编写环切加工程序,需解决三个问题:环切刀具半径补偿值的计算;环切刀补程序工步起点(下刀点)的确定;如何在程序中修改刀具半径补偿值。
1.1.1环切刀具半径补偿值的计算确定环切刀具半径补偿值可按如下步骤进行:1、确定刀具直径、走刀步距和精加工余量;2、确定半精加工和精加工刀补值;3、确定环切第一刀的刀具中心相对零件轮廓的位置(第一刀刀补值);41、根据内槽圆角半径键槽铣刀,精加工余量为距取10mm。
2、由刀具半径6加工的刀补半径分别为6和3、如图所示,等于步距,则该刀刀补值4第二刀刀补值第三刀刀补值=15-10=5刀补值分别为25、15、6.5、6mm。
1.1.2环切刀补程序工步起点(下刀点)的确定对于封闭轮廓的刀补加工程序来说,一般选择轮廓上凸出的角作为切削起点,对内轮廓,如没有这样的点,也可以选取圆弧与直线的相切点,以避免在轮廓上留下接刀痕。
在确定切削起点后,再在该点附近确定一个合适的点,来完成刀补的建立与撤消,这个专用于刀补建立与撤消的点就是刀补程序的工步起点,一般情况下也是刀补程序的下刀点。
一般而言,当选择轮廓上凸出的角作为切削起点时,刀补程序的下刀点应在该角的角平分线上(45°方向),当选取圆弧与直线的相切点或某水平/垂直直线上的点作为切削起点时,刀补程序的下刀点与切削起点的连线应与直线部分垂直。
在一般的刀补程序中,为缩短空刀距离,下刀点与切削起点的距离比刀具半径略大一点,下刀时刀具与工件不发生干涉即可。
但在环切刀补程序中,下刀点与切削起点的距离应大于在上一步骤中确定的最大刀具半径补偿值,以避免产生刀具干涉报警。
如对图1-1零件,取R30圆弧圆心为编程零点,取R30圆弧右侧端点作为切削起点,如刀补程序仅用于精加工,下刀点取在(22,0)即可,该点至切削起点距离=8mm 。
但在环切时,由于前两刀的刀具半径补偿值大于8mm ,建立刀补时,刀具实际运动方向是向左,而程序中指定的运动方向是向右,撤消刀补时与此类似,此时数控系统就会产生刀具干涉报警。
因此合理的下刀点应在编程零点(0,0)。
1.1.3在程序中修改刀具半径补偿值在程序中修改刀具半径补偿值可采用如下方法1、在刀补表中设好环切每一刀的刀具半径补偿值,然后在刀补程序中修改刀具补偿号。
示例1.1 直接在G41/G42程序段修改刀具补偿号示例1.2 用宏变量表示刀具补偿号,利用循环修改刀具补偿号主程序 %1000G54 G90 G0 G17 G40; Z50 M03 S1000; X0 Y0; Z5 M08; G1 Z-10 F60;G41 X30 D1 F100; M98 P0010;G41 X30 D2 F100; M98 P0010;G41 X30 D3 F100; M98 P0010;G41 X30 D4 F100; M98 P0010; M05 M09;2、使用G10修改刀具补偿半径示例1.3,使用G10和子程序完成环切示例1.4 使用G10和循环完成环切3、直接用宏变量对刀补值赋值示例1.5 直接用宏变量对刀补值赋值,利用循环完成环切。
%1000G54 G90 G0 G17 G40; Z50 M03 S1000; X0 Y0; Z5 M08; G1 Z-10 F60;#10=25 ;粗加工起始刀补值 #11=10 ;步距#12=6 ;精加工刀补值 #1=2 ;粗、精加工控制 WHILE [#1 GE 1] DO1;WHILE #10 GE #12 DO2; G10 L10 P1 R#10;G41 X30 D1 F100; Y60; X-30; Y0;G3 X30 R30; G0 G40 X0; #10=#10-#11; END2;#10=#12+0.5 ;半精加工刀补值 #11=0.5; #1=#1-1; END1; Z50;主程序 %100G54 G90 G0 G17 G40; Z50 M03 S1000; X0 Y0; Z5 M08; G1 Z-10 F60; G10 L10 P1 R25; M98 P0010; G10 L10 P1 R15; M98 P0010; G10 L10 P1 R6.5; M98 P0010;M98 P0010; M05 M09; G0 Z50; M30;子程序 %0010G90 G41 X30 D1 F100; Y60; X-30; Y0;G3 X30 R30; G0 G40 X0;%100G54 G90 G0 G17 G40; Z50 M03 S1000; X0 Y0; Z5 M08; G1 Z-10 F60;#1=1; 刀补号变量 WHILE #1 LE 4 DO1; G41 X30 D#1 F100;Y60; X-30; Y0;G3 X30 R30; G0 G40 X0; #1=#1+1; End1; Z50; M30;说明:在G41 X30 d#10中,#10表示刀具补偿号,而在G41 X30 d[#10]中,#10表示刀具半径补偿值,此用法在FANUC 说明书中没有,但实际使用的结果确实如此,如所用系统不支持此用法,就只用示例1.4用法。
1.1.4 环切宏程序当使用刀具半径补偿来完成环切时,不管我们采用何种方式修改刀具半径补偿值,由于受刀补建、撤的限制,它们都存在走刀路线不够简洁,空刀距离较长的问题。
对于象图1-1所示的轮廓,其刀具中心轨迹很好计算,此时如用宏程序直接计算中心轨迹路线,则可简化走刀路线,缩短空刀距离。
示例1.6 完全使用宏程序的环切加工如图1-2所示,用#1、#2表示轮廓左右和上边界尺寸,编程零点在R30圆心,加工起始点放在轮廓右上角(可削除接刀痕)%1000G54 G90 G0 G17 G40; Z50 M03 S1000; X0 Y0; Z5 M08; G1 Z-10 F60;#10=25 ;粗加工起始刀补值 #11=9.25 ;步距#12=6 ;精加工刀补值 #1=2 ;粗、精加工控制 WHILE[ #1 GE 1] DO1;WHILE[ #10 GE #12] DO2;G41 X30 D[#10] F100; Y60; X-30; Y0;G3 X30 R30; G0 G40 X0; #10=#10-#11; END2;#10=#12 ;半精加工刀补值 #1=#1-1; END1; Z50;1.2 行切般用自动编程实现。
1.2.1 矩形区域的行切计算1、矩形平面的行切区域计算如图所示,矩形平面一般采用图示直刀路线加工,在主切削方向,刀具中心需切削至零件轮廓边,在进刀方向,在起始和终止位置,刀具边沿需伸出工件一距离,以避免欠切。
假定工件尺寸如图所示,采用Φ60面铣刀加工,步距50mm,上、下边界刀具各伸出10mm。
则行切区域尺寸为800×560(600+10*2-60)。
2、矩形下陷的行切区域计算对矩形下陷而言,由于行切只用Array于去除中间部分余量,下陷的轮廓是采用环切获得的,因此其行切区域为半精加工形成的矩形区域,计算方法与矩形平面类似。
假定下陷尺寸100*80,由圆角R6选Φ12铣刀,精加工余量0.5mm,步距10mm,则半精加工形成的矩形为(100-12*2-0.5*2)*(80-12*2-0.5*2)=75*55。
如行切上、下边界刀具各伸出1mm,则实际切削区域尺寸=75*(55+2-12)=75*45。
1.2.2行切的子程序实现对于行切走刀路线而言,每来回切削一次,其切削动作形成一种重复,如果将来回切削一次做成增量子程序,则利用子程序的重复可完成行切加工。
1、切削次数与子程序重复次数计算进刀次数n=总进刀距离/步距=47/10=4.5,实际需切削6刀,进刀5次。
子程序重复次数m=n/2=5/2=2,剩余一刀进行补刀。
步距的调整:步距=总进刀距离/切削次数。
说明:当实际切削次数约为偶数刀时,应对步距进行调整,以方便程序编写;当实际切削次数约为奇数刀时,可加1成偶数刀,再对步距进行调整,或直接将剩下的一刀放在行切后的补刀中,此时不需调整步距。
由于行切最后一刀总是进刀动作,故行切后一般需补刀。
2、示例1.7对图1-4零件,编程零点设在工件中央,下刀点选在左下角点,加工程序如下:1.2.3 行切宏程序实现对图1-4零件,编程零点设在工件中央,下刀点选在左下角点,加工宏程序如下:示例1.8(本程序未考虑分层下刀问题)宏程序调用参数说明:A(#1)B(#2)-------矩形下陷的长与宽C(#3)------ -------粗精加工标志,C=0,完成粗精加工,C=1,只完成精加工。
D(#7)--------------刀具半径 Q(#17)------------精加工余量 K(#6)--------------步距X(#24)Y(#25)----下陷中心坐标 Z(#26)-------------下陷深度 F(#9)--------------走刀速度 主程序%1000G54 G90 G0 G17 G40 Z50 M03 S800G65 P9010 A100 B80 C0 D6 Q0.5 K10 X0 Y0 Z-10 F150 G0 Z50 M30 子程序 %0020G91 G1 X75 F150; Y10; X-75; Y10.; G90 M99;主程序 %1000G54 G90 G0 G17 G40; Z50 M03 S800;G0 X-43.5 Y-33.5; 定位到下刀点 Z5;G1 Z-10 F100;M98 P0010; 环切加工,该程序省略G1 X-37.5 Y-22.5; 行切起点 M98 P0020 L2; 行切加工 G1 X37.5; 补刀 Y22.5 X-37.5 G0 Z50; M30;宏程序%9010#4=#1/2-#7; 精加工矩形半长#5=#2/2-#7; 精加工矩形半宽#8=1;环切次数IF [#3 EQ 1] GOTO 100;#4=#4-#17; 半精加工矩形半长#5=#5-#17; 半精加工矩形半宽#8=2;N100 G90 G0 X[#24-#4] Y[#25-#5];Z5;G1 Z#26 F#9;WHILE [#8 GE 1] DO1;G1 X[#24-#4] Y[#25-#5];X[#24+#4];Y[#25+#5];X[#24-#4];Y[#25-#5];#4=#4+#17;#5=#5+#17;#8=#8-1;END1;IF [#3 EQ 1] GOTO 200;只走精加工,程序结束#4=#1/2-2*[#7+#17]; 行切左右极限X#5=#/2-3*#7-2*#17+4; 行切上下极限Y#8=-#5;进刀起始位置G1 X[#24-#4] Y[#25+#8];WHILE [#8 LT #5 DO1];准备进刀的位置不到上极限时加工G1 Y[#25+#8]; 进刀X[#24+#4]; 切削#8=#8+#6; 准备下一次进刀位置#4=-#4; 准备下一刀终点XEND1;G1 Y[#25+#5]; 进刀至上极限,准备补刀X[#24+#4]; 补刀G0 Z5;N200 M99;专题二 相同轮廓的重复加工在实际加工中,相同轮廓的重复加工主要有两种情况: 1、同一零件上相同轮廓在不同位置出现多次; 2、在连续板料上加工多个零件。