数控铣床宏程序
数控机床宏程序编程的技巧和实例

数控机床宏程序编程的技巧和实例第一篇:数控机床宏程序编程的技巧和实例论文:数控机床宏程序编程的技巧和实例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
- 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、在连续板料上加工多个零件。