数控铣床手工编程Word文档下载推荐.docx
《数控铣床手工编程Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数控铣床手工编程Word文档下载推荐.docx(73页珍藏版)》请在冰豆网上搜索。
●2、使用G10修改刀具补偿半径
示例1.3,使用G10和子程序完成环切
示例1.4 使用G10和循环完成环切
●3、直接用宏变量对刀补值赋值
示例1.5 直接用宏变量对刀补值赋值,利用循环完成环切。
说明:
在G41X30d#10中,#10表示刀具补偿号,而在G41X30d[#10]中,#10表示刀具半径补偿值,此用法在FANUC说明书中没有,但实际使用的结果确实如此,如所用系统不支持此用法,就只用示例1.4用法。
1.1.4 环切宏程序
当使用刀具半径补偿来完成环切时,不管我们采用何种方式修改刀具半径补偿值,由于受刀补建、撤的限制,它们都存在走刀路线不够简洁,空刀距离较长的问题。
对于象图1-1所示的轮廓,其刀具中心轨迹很好计算,此时如用宏程序直接计算中心轨迹路线,则可简化走刀路线,缩短空刀距离。
示例1.6完全使用宏程序的环切加工
如图1-2所示,用#1、#2表示轮廓左右和上边界尺寸,编程零点在R30圆心,加工起始点放在轮廓右上角(可削除接刀痕)
1.2行切
一般来说,行切主要用于粗加工,在手工编程时多用于规则矩形平面、台阶面和矩形下陷加工,对非矩形区域的行切一般用自动编程实现。
1.2.1矩形区域的行切计算
●1、矩形平面的行切区域计算
如图所示,矩形平面一般采用图示直刀路线加工,在主切削方向,刀具中心需切削至零件轮廓边,在进刀方向,在起始和终止位置,刀具边沿需伸出工件一距离,以避免欠切。
假定工件尺寸如图所示,采用Φ60面铣刀加工,步距50mm,上、下边界刀具各伸出10mm。
则行切区域尺寸为800×
560(600+10*2-60)。
●2、矩形下陷的行切区域计算
对矩形下陷而言,由于行切只用于去除中间部分余量,下陷的轮廓是采用环切获得的,因此其行切区域为半精加工形成的矩形区域,计算方法与矩形平面类似。
假定下陷尺寸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(本程序未考虑分层下刀问题)
●主程序
O1000
G54G90G0G17G40
Z50M03S800
G65P9010A100B80C0D6Q0.5K10X0Y0Z-10F150
G0Z50
M30
●宏程序调用参数说明:
A(#1)B(#2)-------矩形下陷的长与宽
C(#3)-------------粗精加工标志,C=0,完成粗精加工,C=1,只完成精加工。
D(#7)--------------刀具半径
Q(#17)------------精加工余量
K(#6)--------------步距
X(#24)Y(#25)----下陷中心坐标
Z(#26)-------------下陷深度
F(#9)--------------走刀速度
●宏程序
O9010
#4=#1/2-#7;
精加工矩形半长
#5=#2/2-#7;
精加工矩形半宽
#8=1;
环切次数
IF[#3EQ1]GOTO100;
#4=#4-#17;
半精加工矩形半长
#5=#5-#17;
半精加工矩形半宽
#8=2;
N100G90G0X[#24-#4]Y[#25-#5];
Z5;
G1Z#26F#9;
WHILE[#8GE1]DO1;
G1X[#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[#3EQ1]GOTO200;
只走精加工,程序结束
#4=#1/2-2*[#7+#17];
行切左右极限X
#5=#/2-3*#7-2*#17+4;
行切上下极限Y
#8=-#5;
进刀起始位置
G1X[#24-#4]Y[#25+#8];
WHILE[#8LT#5DO1];
准备进刀的位置不到上极限时加工
G1Y[#25+#8];
进刀
切削
#8=#8+#6;
准备下一次进刀位置
#4=-#4;
准备下一刀终点X
G1Y[#25+#5];
进刀至上极限,准备补刀
补刀
G0Z5;
N200M99;
专题二 相同轮廓的重复加工
在实际加工中,相同轮廓的重复加工主要有两种情况:
1、同一零件上相同轮廓在不同位置出现多次;
2、在连续板料上加工多个零件。
实现相同轮廓重复加工的方法
1、用增量方式定制轮廓加工子程序,在主程序中用绝对方式对轮廓进行定位,再调用子程序完成加工。
2、用绝对方式定制轮廓加工子程序,并解决坐标系平移的问题来完成加工。
3、用宏程序来完成加工。
2.1用增量方式完成相同轮廓的重复加工
示例2-1,加工图2-1所示工件,取零件中心为编程零点,选用φ12键槽铣刀加工。
子程序用中心轨迹编程。
2.2用坐标系平移完成相同轮廓的重复加工
坐标系平移有两种方式
G54+G52,用于重复次数不多,且轮廓分布无规律情况。
G54+G92,用于轮廓分布有规律且重复次数很多的情况。
示例2-2用局部坐标系G52完成相同轮廓的重复加工,G54零点设在零件中心,局部坐标系零点在需加工孔的孔心。
示例2-3,用G54+G92完成相同轮廓的重复加工,G54零点设设在零件中心,子坐标系零点在需加工孔的孔心。
2.3用宏程序完成相同轮廓的重复加工
示例2-4,用G65调用完成加工,宏程序用绝对编程。
示例2-5,用G66调用完成加工,宏程序用绝对编程。
示例2-6,使用循环,用一个程序完成加工
G54G90G0G17G40;
Z50M03M07S1000;
#1=2;
行数
#2=3;
列数
#3=150;
列距
#4=100;
行距
#5=-150;
左下角孔中心坐标(起始孔)
#6=-50;
#10=1;
列变量
WHILE#10LE#2DO1;
#11=1;
行变量
#20=#5+[#10-1]*#3;
待加工孔的孔心坐标X
WHILE#11LE#1DO2;
#21=#6+[#11-1]*#4;
孔心坐标Y
G0X[#20+24]Y#21;
Z2;
G1Z-22F100;
G3I-24;
G0Z-10;
G1X[#20+34];
G3I-34;
G0Z5;
#11=#11+1;
END2;
#10=#10+1;
G0Z100;
M30;
专题三 简单平面曲线轮廓加工
对简单平面曲线轮廓进行加工,是采用小直线段逼近曲线来完成的。
具体算法为:
采用某种规律在曲线上取点,然后用小直线段将这些点连接起来完成加工。
示例3-1,椭圆加工,假定椭圆长(X向)、短轴(Y向)半长分别为A和B,则椭圆的极坐标方程为
,利用此方程可方便地完成在椭圆上取点工作。
编程条件:
编程零点在椭圆中心,a=50,b=30,椭圆轮廓为外轮廓,下刀点在椭圆右极限点,刀具直径φ18,加工深度10mm。
程序如下:
Z50M30S1000;
X60Y-15;
Z5M07;
G1Z-12F800;
G42X50D1F100;
Y0;
#1=0.5;
θ变量初始值0.5度
WHILE#1LE360DO1;
#2=50*COS[#1];
#3=30*SIN[#1];
G1X#2Y#3;
#1=#1+0.5;
G1Y15;
G0G40X60;
Z100;
专题四 简单立体曲面加工
4.1球面加工
●球面加工使用的刀具
粗加工可以使用键槽铣刀或立铣刀,也可以使用球头铣刀。
精加工应使用球头铣刀。
●球面加工的走刀路线
一般使用一系列水平面截球面所形成的同心圆来完成走刀。
在进刀控制上有从上向下进刀和从下向上进刀两种,一般应使用从下向上进刀来完成加工,此时主要利用铣刀侧刃切削,表面质量较好,端刃磨损较小,同时切削力将刀具向欠切方向推,有利于控制加工尺寸。
●进刀控制算法
进刀点的计算:
先根据允许的加工误差和表面粗糙度,确定合理的Z向进刀量,再根据给定加工深度Z,计算加工圆的半径,即:
r=sqrt[R2-z2]。
此算法走刀次数较多。
先根据允许的加工误差和表面粗糙度,确定两相邻进刀点相对球心的角度增量,再根据角度计算进刀点的r和Z值,即Z=R*sinθ,r=R*cosθ。
进刀轨迹的处理
对立铣刀加工,曲面加工是刀尖完成的,当刀尖沿圆弧运动时,其刀具中心运动轨迹也是一行径的圆弧,只是位置相差一个刀具半径。
对球头刀加工,曲面加工是球刃完成的,其刀具中心是球面的同心球面,半径相差一个刀具半径。
4.1.1外球面加工
示例4-1,加工图4-3所示外球面。
为对刀方便,宏程序编程零点在球面最高点处,采用从下向上进刀方式。
立铣刀加工宏程序号为O9013,球刀加工宏程序号O9014。
4.1.2内球面加工
示例4-2,加工图4-4所示内球面。
为对刀方便,宏程序编程零点在球面最高处中心,采用从下向上进刀方式。
其主程序与示例4-1类似,宏程序调用参数与示例4-1相同,本例不再给出。
立铣刀加工宏程序号为O9015,球刀加工宏程序号O9016。
4.2水平圆柱面的加工
水平圆柱面加工可采用行切加工
沿圆柱面轴向走刀,沿圆周方向进刀;
走刀路线短,加工效率高,加工后圆柱面直线度好;
用于模具加工,脱模力较大;
程序可用宏程序或自动编程实现。
沿圆柱面圆周方向走刀,沿轴向进刀;
走刀路线通常比前一方式长,加工效率较低,但用于大直径短圆柱则较好,加工后圆柱面轮廓度较好;
用于模具加工,脱模力较小;
程序可用子程序重复或宏程序实现,用自动编程实现程序效率太低。
4.2.1圆柱面的轴向走刀加工
示例4-3,为简化程序,以完整半圆柱加工为例(图4-4a)。
为对刀、编程方便,主程序、宏程序零点放在工件左侧最高点,毛坯为方料,立铣刀加工宏程序号为O9017,球刀加工宏程序号O9018。
4.2.1圆柱面的周向走刀加工
为简化程序,以完整半圆柱加工为例(图4-4a)。
为对刀、编程方便,主程序、宏程序零点放在工件左侧最高点,毛坯为方料。
示例4-4,子程序加工方案,立铣刀加工程序号为O0020,球刀加工程序号O0021。
示例4-5,宏程序加工方案,立铣刀加工宏程序号为O9020,球刀加工宏程序号O9021。
主程序和宏程序调用参数与示例4-3基本相同,不再给出。
专题五 孔系加工
孔系加工可分为矩形阵列孔系和环形阵列孔系加工两种情况。
5.1矩形阵列孔系加工
就单孔加工而言,其加工有一次钻进和间歇钻进之分,为使用方便,定制的宏程序应能完成此两种加工。
以图5-1所示工件为例,板厚20,编程零点放在工件左下角。
示例5-1,矩形阵列孔系宏程序加工,阵列基准为左下角第一个孔。
5.2环形阵列孔系加工
示例5-2,加工图5-2所示工件。
编程零点放在分布圆中心。
●宏程序调用参数说明
X(#24)-----阵列中心位置
Y(#25)
A(#1)-------起始角度
B(#2)-------角度增量(孔间夹角)
I(#4)--------分布圆半径
K(#6)-------孔数
R(#7)-------快速下刀高度
Z(#26)------钻深
Q(#17)------每次钻进量,Q=0,则一次钻进到指定深度。
F(#9)--------钻进速度
983M用户宏程序知识点
3.10.1变量
在宏程序中,变量用来代替数字的数据,用户可以对其定义任何值(在允许的范围内)。
变量的应用使得宏程序比常规的孖程序更通用灵活。
在使用某些变量时,各变量由变量号区别。
3.10.1.1变量的表示
如例10.2.1中所表明的,一个变量是由代码#变数号组成的。
#1(i=1,2,3,4……)
例10.2.1:
#5
#109
#1005
下述的格式也可以使用,在这里数字用公式来代替。
#〔<
公式>
〕
例10.2.2:
#〔#100〕
#〔#1001-1〕
#〔#b/2〕
以后的说明书变量#i都用#〔<
〕来代替。
3.10.1.2变量的引用
跟在地址后的数值可由变量来代替。
假如程序是<
地址>
#1或<
-#1,表明把变量值或是它的补数,作为其地址的指令值。
例10.2.3:
F#33如果#33=1.5,就和F1.5相同。
Z-#18如果#18=20.0,就和Z-20.0相同。
G#130如果#130=3.0,就和G3一样。
(1)禁止使用变量的地址1,:
,O和N,即不能使用:
#27或N#1这类写法。
在跳过任选程序段/n中的n倍(n=1~9)不能作变量用。
(2)变量号由变量来代替时方法如下:
在#5中的5用#30来代替时,它不能写成##30而是写成了#〔30〕。
(3)对于各地址,变量值不能超过最大指令值。
例如,当#140=120时,M#140就超过了最大值
(M代码必须小于99)。
(4)不能根据数字号进行识别,比如#30=02,就认为F#30是F2.
(5)不能识别–0和+0。
就是说在#4=-0的情况下,X#4就被认为是X0。
(6)在把变量用于地址数据的时候,有效位以下进行圆整(四舍五入)。
(7)跟在地址后边的数值也能用<
来代替,假如用<
[<
]或<
-[<
]作程序,把<
的值或用它的补数作为地址的指令值。
注意:
在括号里一个不带小数点的常数要假定在它的末尾有一个数点。
例:
10.2.4:
X[#24+#18*COS(#1)]Z-(#18+#26)
3.10.1.3未定义的变量
还没有定义的变量值叫做<
空的>
,变量#0用于总是空的变量。
一个未定义的变量具有下述性质:
(1)变量的引用在一个未定义变量被引用时,地址本身都被忽略。
当#1=<
空>
时
当#1=0时
G90X100Y#1
↓
G90X100
(2)运算公式除用<
作置换的情况,与变量值O相同。
#2=#1
#2=<
#2=0
#2=#1*5
#2=#1+#1
(3)条件表达式公对EQ和NE的情况<
和0不同。
#1EQ#0
↓确定的
↓不确定
#1NEO
↓不确定的
#1GE#0
#1GT0
↓不确定(不成立)
3.10.2变量的显示和设定
变量值可以显示在LCD屏幕上,也能在MDI方式设定变量值(见第IV章5.8.2)。
3.10.3变量的种类
变量依变量号分局部变量,公用变量和系统变量,各类变量的用途和性质是不同的。
3.10.3.1局部变量#1~#33
局部变量是一个在宏程序中局部使用的变量。
即在某一时刻,调用宏程序用的局部量#1和在另一时刻调用宏程序用的#1是不相同的(不管宏程序相同还是不同)。
因此,当从宏程序A中调用宏程序B时,象嵌套那样,用于宏程序A的局部变量决不会误用于宏程序B,并破坏其变量值。
局部变量用于自变量转换。
变量和地址的对应关系。
见10.7节。
自变量没有转换的局部变量在其原始状态是空的,用户可自由使用。
3.10.3.2公用变量#100~#149,#50~#509
局部变量公用在宏程序中而公用变量对于由主程序调用的各子程序及各宏程序是公用的。
就是说,用于某个宏序中的#1与用于一个宏程序中的#1是相同。
因此,在某个宏程序中公共变量#1的运算结果可以用在另一宏程序中。
在本系统中,对于公用变量的使用不作特别规定。
它们可以由用户使用。
关掉电源将清除#100到#149的公共变量:
然而,由#500~#509的公共变量就不能通过关掉电源来清除。
3.10.3.3系统变量(用于用户宏程序B)
本系统中,系统变量的使用是确定的。
(1)接口信号#1000到#1015和#1032,#1100到#1115和#1132。
[输入信号]
接口输入信号的状态由系统变量#1000到#1032的读数值确定。
(2)刀具偏置量#2000~#2200,工件偏置量#2500~#2906。
刀具偏置量用系统变量#2001~#2200,工件偏置量用系统变量#2500和#2906,通过读这些变量值
确定偏置量,通过给系统变量#1赋值可改变偏置量。
(3)报警#3000
当发现宏程序中有错误时,就会发生报警,若报警号规定在系统变量#3000中,在处理了前一程序段之后,报警灯点亮,NC装置处在报警状态。
#3000=n(ALARMMESSAGE):
选择标准规格中没有使用的报警号,并设置在宏程序中。
(n<200=一个少于26个字符的报警内容可规定在释开始与注释结束代码之间。
(4)时钟#3001,#3002
通过读时钟用的系统变更#3000,#3002的值可得知时钟的时刻。
时间亦可由赋值给系统变量来预
置。
种类
系统变量
单位时间
在通电时
计数条件
时钟1
#3001
1毫秒
复位到0
任何时候
时钟2
#3002
1小时
和关电源时相同
当有STL信号时
各时钟的准确度在16毫秒以内,时钟1在6536毫秒时溢出将返回到0。
只要不预置,时钟2将继续增加。
在超过最大值9544小时的情况下,时间将不能正确测定。
(5)禁止单程序段停止和等待辅助功能结束信号