1. 数控宏程序初学者怎样学
从确定走刀路线、选择合适的G命令等细节出发,分析在数控车削中程序的编制方法。
一、分析零件图样
分析零件图样是工艺准备中的首要工作,直接影响零件的编制及加工结果。主要包括以下几项内容:
分析加工轮廓的几何条件:主要目的是针对图样上不清楚尺寸及封闭的尺寸链进行处理。
分析零件图样上的尺寸公差要求,以确定控制其尺寸精度的加工工艺,如刀具的选择及切削用量的确定等。
分析形状和位置公差要求:对于数控切削加工中,零件的形状和位置误差主要受机床机械运动副精度的影响。在车削中,如沿Z坐标轴运动的方向与其主轴轴线不平形时,则无法保证圆柱度这一形状公差要求;又如沿X坐标轴运动的方向与其主轴轴线不垂直时,则无法保证垂直度这一位置公差要求。因此,进行编程前要考虑进行技术处理的有关方案。
分析零件的表面粗糙度要求,材料与热处理要求,毛坯的要求,件数的要求也是对工序安排及走刀路线的确定等都是不可忽视的参数。
二、合理确定走刀路线,并使其最短
确定走刀路线的工作是加工程序编制的重点,由于精加工切削程序走刀路线基本上都是沿其零件轮廓顺序进行的,因此主要内容是确定粗加工及空行程的走刀路线。走刀路线泛指刀具从对刀点开始运动起,直到返回该点并结束加工程序所经过的路径。包括切削加工的路径及刀具引入、切出等非切削空行程。使走刀路线最短可以节省整个加工过程的执行时间,还能减少一些不必要的刀具消耗及机床进给机构滑动部件的磨损。下图1所示为三种车锥方法,用矩形循环命令进行加工,来分析一下走刀路线合理确定。 图1a为平行车锥法,这种方法是每次进刀后,车刀移动轨迹平行于锥体母线,随着每次进刀吃刀,Z相尺寸按一定比例增加,与普车加工锥体方法相同,使初学者易懂。Z向尺寸的计算方法是按公式C=D-d/L得出。若C为1:10,含义是直径X上去除1毫米,长度Z上增加10毫米。按该比例可以很简单的进行编程,并且可以保证每一次车削的余量相同使切削均匀。图1b为改变锥角车锥法,是随着每一次X向进刀,保持Z向尺寸为图纸尺寸,每一刀都改变了锥角的大小,只有最后一刀是图纸要求的锥角大小。这种车锥法可以不必进行每次Z向尺寸的计算,但在加工中由于Z向尺寸相同,使加工路线较长,同时切削余量不均匀,影响工件的表面尺寸和粗糙度,一般适合于锥面较短,余量不大的锥体中。图1c为阶台加工锥体法,这种加工法是每一次走刀轨迹平行于工件的轴线,加工出许多小的阶台,最后一刀车刀沿锥体斜面进行走刀,这种加工方法要先做1:1比例图,否则易车废工件,由于是台阶状,所以余量不均匀,影响锥面加工质量。
显然,上述三种切削路线中,如果起刀点相同,则平行法车锥体路线最合理,生产中常用此法进行加工。
三、合理调用G命令使程序段最少
按照每个单独的几何要素(即直线、斜线和圆弧等)分别编制出相应的加工程序,其构成加工程序的各条程序即程序段。在加工程序的编制工作中,总是希望以最少的程序段数即可实现对零件的加工,以使程序简洁,减少出错的几率及提高编程工作的效率。
由于数控车床装置普遍具有直线和圆弧插补运算的功能,除了非圆弧曲线外,程序段数可以由构成零件的几何要素及由工艺路线确定的各条程序得到,这时应考虑使程序段最少原则。选择合理的G命令,可以使程序段减少,但也要兼顾走刀路线最短。如加工上图1的零件,如果毛坯均为棒料,可以用直线插补命令G01进行编程,也可以用矩形循环命令G90进行编程,还可以用复合循环命令G71进行编程,都可以加工该工件。如下图2所示,图2a为用G01命令确定的走刀路线,与图2b用G90命令确定路线相同,但用G01时编程复杂,程序段较多,常用于精加工程序中。图2c为用G71式加工路线,首先走矩形循环进给路线,最后两刀走轮廓的得等距线和最终轮廓线,走刀路线不是很长,且切削量相同,切削力均匀,与G70命令合用还可以使程序编制简单,编程时常用。如果使用的数控车床没有此命令,应该首先选用G90矩行循环命令进行编程。所以在编程中要灵活应用,选用合理的G命令进行程序编制。 对于非曲线轨迹的加工,所需主程序段数要在保证其加工精度的条件下,进行计算后才能得知。这时,一条非圆曲线应按逼近原理划分成若干个主程序段(大多为直线或圆弧),当能满足其精度要求时,所划分的若干个主程序的段数应为最少。这样,不但可以大大减少计算的工作量,而且还能减少输入的时间及内存容量的占有数。
四、合理安排“回零”路线
在编制较复杂轮廓的加工程序时,为使其计算过程尽量简化,既不易出错,又便于校核,编程者有时将每一刀加工完后的刀具终点通过执行“回零”指令(即返回对刀点),使其全返回对刀点位置,然后在执行后续程序。这样会增加走刀距离,降低生产效率。因此,在合理安排“回零”路线时,应使其前一刀终点与后一刀起点间的距离尽量减短,或者为零,即满足走刀路线最短的要求。
五、合理选择切削用量
数控车削中的切削用量是表示机床主体的主运动和进给运动大小的重要参数,包括切削深度、主轴转速、进给速度。它们的选择与普车所要求的基本对应一致,但数控车床加工的零件往往较复杂,切削用量按一定的原则初定后,还应结合零件实际加工情况随时进行调整,调整方法是利用数控车床的操作面板上各种倍率开关,随时进行调整,来实现切削用量的合理配置,这对操作者来说应该具有一定的实际生产加工经验。
六、编程中细节问题处理
1、注意G04的合理使用
G04为暂停指令,其作用是刀具在一个指令的时间内暂停止加工。该指令由于不做实际的切削运动,常常被忽略。但它在对于保证加工精度及在切槽、钻孔改变运动等方面都有很好的好处,常用于以下几种情况:
(1)切槽、钻孔时为了保证槽底、孔底的的尺寸及粗糙度应设置G04命令。
(2)当运行方向改变较大时,应在该改变运行方向指令间设置G04命令。
(3)当运行速度变化很大时应在其运行指令改变时设置 G04命令。
(4)利用G04进行断削处理,根据粗加工的切削要求,可对以连续运动轨迹进行分段加工安排,每相邻加工段中间用G04指令将其隔开。加工时,刀具每进给一段后,即安排所设定较短的延时时间(0.5秒)实施暂停,紧接着在进给一段,直至加工结束。其分段数的多少,视断削要求而定,当断削不够理想时,要增加分段数。
2、粗精加工分开编程
为了提高零件的精度并保证生产效率,车削工件轮廓的最后一刀,通常由精车刀来连续加工完成,因此,粗精加工应分开编程。并且,刀具的进、退位置要考虑妥当,尽量不要在连续的轮廓中切入切出或换刀及停顿,以免因切削力的突然变化而造成弹性变形,致使光滑连接的轮廓上产生划伤、形状突变或滞留刀痕等疵病。
3、编程时常取零件要求尺寸的中值作为编程尺寸依据。如果遇到比机床所规定的最小编程单位还要小的数值时,应尽量向其最大实体尺寸靠拢并圆整。如图纸尺寸为�0�1 80+00、026则编程时写X80.013。
4、编程时尽量符合各点重合的原则。也就是说,编程的原点要和设计的基准、对刀点的位置尽量重合起来,减少由于基准不重合所带来的加工误差。在很多情况下,若图样上的尺寸基准与编程所需要的尺寸基准不一致,故应首先将图样上的各个基准尺寸换算为编程坐标系中的尺寸。当需要掌握控制某些重要尺寸的允许变动量时,还要通过尺寸链解算才能得到,然后才可进行下一步编程工作。
5、巧利用切断刀倒角。对切断面带一倒角的零件,在批量车削加工中比较普遍,为了便于切断并避免掉头倒角,可巧利用切断刀同时完成车倒角和切断两个工序,效果较好。同时切刀有两个刀尖,在编程中要注意使用哪个刀尖及刀宽问题,防止对刀加工时出错。
数控车床的编程总原则是先粗后精、先进后远、先内后外、程序段最少、走刀路线最短,这就要求我们在编程时,特别注意理论联系实际,并在大量的实践中,对所学的知识进行验证或修正,做到编制的程序最实用
2. 数控编程宏程序的指令
宏程序编程
一 变量
普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100
G01 X#1 F300
说明:
变量的表示
计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。
例如:#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报警NO.111.
小数点的省略
当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是123.000。
变量的引用
为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3;
被引用变量的值根据地址的最小设定单位自动地舍入。
例如:
当G00X#/;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346.
改变引用变量的值的符号,要把负号(-)放在#的前面。
例如:G00X-#1
当引用未定义的变量时,变量及地址都被忽略。
例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00X0。
双轨迹(双轨迹控制)的公共变量
对双轨迹控制,系统为每一轨迹都提供了单独的宏变量,但是,根据参数N0.6036和6037的设定,某些公共变量可同时用于两个轨迹。
未定义的变量
当变量值未定义时,这样的变量成为空变量。变量#0总是空变量。它不能写,只能读。
引用
当引用一个未定义的变量时,地址本身也被忽略。
当#1=
当#1=0
G90 X100 Y#1
G90 X100
G90 X100 Y#1
G90 X100 Y0
(b) 运算
除了用赋值以外,其余情况下与0相同。
当#1=时
当#1=0时
#2=#1
#2=
#2=#1
#2=0
#2=#*5
#2=0
#2=#*5
#2=0
#2=#1+#1
#2=0
#2=#1+#1
#2=0
(c)条件表达式
EQ和NE中的不同于0。
当#1=时
当#1=0时
#1EQ#0 成立
#1EQ#0 不成立
#1 NE #0 成立
#1 NE #0 不成立
#1 GE #0 成立
#1 GE #0 不成立
#1 GT #0 不成立
#1 GT #0 不成立
限制
程序号,顺序号和任选程序段跳转号不能使用变量。
例:下面情况不能使用变量:
0#1;
/#2G00X100.0;
N#3Y200.0;
二 算术和逻辑运算
下面表中列出的运算可以在变量中执行。运算符右边的表达式可包含常量和或由函数或运算符组成的变量。表达式中的变量#j和#k可以用常数赋值。左边的变量也可以用表达式赋值。
说明:
角度单位
函数SIN ,COS,ASIN,ACOS,TAN和ATAN的角度单位是度。如90°30'表示为90.5度。
ARCSIN # i= ASIN[#j]
(1)取值范围如下:
当参数(NO.6004#0)NAT位设为0时,270°~90°
当参数(NO.6004#0)NAT位设为1时,-90°~90°
(2)当#j超出-1到1的范围时,发出P/S报警NO.111.
(3)常数可替代变量#j
ARCCOS #i=ACOS[#j] 取值范围从180°~0° 当#j超出-1到1的范围时,发出P/S报警NO.111. 常数可替代变量#j
三 程序举例
铣椭圆:
轨迹:
椭圆程序代码如下:
N10 G54 G90 G0 S1500 M03
N12 X0 Y0 Z20.
N14 G0 Z1
N16 G1 Z-5. F150.
N18 G41 D1
N20 #1=0
N22 #2=34
N24 #3=24
N26 #4=#2*COS[#1]
N28 #5=#3*SIN[#1]
N30 #10=#4*COS[45]-#5*SIN[45]
N32 #11=#4*SIN[45]+#5*COS[45]
N34 G1 X#10 Y#11
N36 #1=#1+1
N38 IF [#1 LT 370] GOTO26
N40 G40 G1 X0 Y0
N42 G0 Z100
N44 M30
铣矩形槽:
铣矩形槽代码如下:
#102=0.
N3#100=0.
#101=0.
#103=200.
#104=400.
G91G28Z0.
G0G90G54X0.Y0.
G43H1Z20.
M3S2000.
N4G0X#100Y#101
G01Z#102F200.
#102=#102-2.
IF[#102EQ-50.]GOTO1
GOTO2
N2
N4X#104F500.
Y#103
X#100
Y#101
#100=#100+10.
#101=#101+10.
#103=#103-10.
#104=#104-10.
IF[#100EQ100.]GOTO3
GOTO4
N3
N1
M5
M9
G91G28Z0.
G28Y0.
M30
铣倾斜3度的面:
轨迹:
铣倾斜3度的面的代码如下:
O0001
#[#1+1*2]=1
G65P9012L1A0B0.1C4I100J3K0
M30
宏程序O9012代码如下:
G54 G90 G00 X[#3] Y0 Z100
S500 M3
G01 Z0 F300
WHILE[#1LE10]DO1
#7= #1/TAN[#5]+#3
G1Z-#1 X#7
#8=#6/2-ROUND[#6/2]
IF[#8EQ0]GOTO10
G1Y0
GOTO20
N10 Y#4
N20#1=#1+#2
#6=#6+1
END1
G0
Z100
铣半球:
轨迹:
铣半球代码如下:
G90G0G54X-10.Y0M3S4500
G43Z50.H1M8
#1=0.5
WHILE[#1LE50.]DO1
#2=50.-#1
#3=SQRT[2500.-[#2*#2]]
G1Z-#1F20
X-#3F500
G2I#3
#1=#1+0.5
END1
G0Z50.M5
M30
铣喇叭:
铣喇叭代码如下:
M03 S500
M06 T01
#1=0
#2=0
G0 Z15
X150 Y0
N11
#2=30*SIN[#1]
#3=30+30*[1-COS[#1]]
G01 Z-#2 F40
G41 X#3 D01
G03 I-#3
G40 G01 X150 Y0
#1=#1+1
IF [#1 LE 90] GOTO 11
G0 Z30
M30
3. 数控铣削宏程序
数控铣削加工宏程序的编制与应用
在数控编程中,宏程序编程灵活、高效、快捷。宏程序不仅可以实现象子程序那样,对编制相同加工操作的程序非常有用,还可以完成子程序无法实现的特殊功能,例如,型腔加工宏程序、固定加工循环宏程序、球面加工宏程序、锥面加工宏程序等。
一、FANUC宏程序的理论基础
(一)FANUC宏程序的构成
1)包含变量
2)包含算术或逻辑运算(=)的程序段
3)包含控制语句(例如:GOTO,DO,END)的程序段
4)包含宏程序调用指令(G65,G66,G67或其他G代码,M代码调用宏程序)的程序段
(二)FANUC宏程序的变量
FANUC数控系统变量表示形式为# 后跟1~4位数字,变量有四种:
1、FANUC宏程序的变量Ⅰ
变量号
变量类型
功能
#0
空变量该变量总是空
没有任何值能赋给该变量
2、FANUC宏程序的变量Ⅱ
变量号
变量类型
功能
#1——#33
局部变量
局部变量只能用在宏程序中存储数据,例如运算结果。当断电时局部变量被初始化为空,调用宏程序时自变量对局部变量赋值。
3、FANUC宏程序的变量Ⅲ
变量号
变量类型
功能
#100—#199
#500—#999
公共变量
公共变量在不同的宏程序中的意义相同当断电时变量#100 #199初始化为空变量
#500 #999 的数据保存即使断电也不丢失
4、FANUC宏程序的变量Ⅳ
变量号
变量类型
功能
#1000——
系统变量
系统变量用于读和写CNC 运行时各种数据的变化例如刀具的当前位置和补偿值等
(三)刀具补偿存储器C用G10指令进行设定
H代码的几何补偿值
G10L10P R ;
D代码的几何补偿值
G10L12P R ;
H代码的磨损补偿值
G10L11P R ;
D代码的磨损补偿值
G10L13P R ;
P:刀具补偿号
R:绝对值指令(G90)方式时的刀具补偿值。增量值指令(G91)方式时的刀具补偿值为该值与指定的刀具补偿号的值相加。
用G10改变工件坐标系零点偏移值
格式:G10L12PpIP ;
P=0:外部工件零点偏移值
P=1:工件坐标系G54的零点偏移值
P=2:工件坐标系G55的零点偏移值
P=3:工件坐标系G56的零点偏移值
P=4:工件坐标系G57的零点偏移值
P=5:工件坐标系G58的零点偏移值
P=5:工件坐标系G59的零点偏移值
IP: 对于绝对值指令(G90),为每个轴的工件零点偏移值。
对于增量值指令(G91),为每个轴加到设定的工件零点偏移值。
(四)FANUC宏程序运算符Ⅰ
1、FANUC宏程序运算符Ⅰ
功能
格式
备注
定义
#i=#j
加法
#i=#j+#k
减法
#i =#j- #k
乘法
#i =#j*#k
除法
#i=#j/#k
2、FANUC宏程序运算符Ⅱ
功能
格式
备注
正弦
#i=SIN[#j]
角度以度指定,如90º30’表示为90.5度
反正弦
#i=ASIN[#j]
余弦
#i=COS[#j]
反余弦
#i=ACOS[#j]
正切
#i=TAN[#j]
反正切
#i=ATAN[#j]
3、FANUC宏程序运算符Ⅲ
功能
格式
备注
平方根
#i=SQRT[#j]
绝对值
#i=ABS[#j]
舍入
#i=ROUND[#j]
上取整
#i=FIX[#j]
下取整
#i=FUP[#j]
自然对数
#i=LN[#j]
指数函数
#i=EXP[#j]
4、FANUC宏程序运算符Ⅳ
功能
格式
备注
或
#i=#j OR #k
逻辑运算一位一位的按二进制数执行
异或
#i=#j XOR #k
与
#i=#j AND #k
从BCD转为BIN
#i=BIN[#j]
用于与PMC的信号交换
从BIN转为BCD
#i=BCD[#j]
(五)FANUC宏程序的转移和循环
1、FANUC宏程序的转移和循环Ⅰ
无条件转移:GOTOn
(n为顺序号,1——99999)
例:GOTO10为转移到N10程序段
2、FANUC宏程序的转移和循环Ⅱ
条件转移:(IF语句)
IF [条件表达式] GOTOn
当指定的条件表达式满足时,转移到标有顺序号n的程序段,如果指定的条件表达式不满足时,执行下个程序段
3、FANUC宏程序的转移和循环Ⅲ
条件转移:(IF语句)
IF [条件表达式] GOTOn
如果变量#1的值大于10,转移到顺序号N20的程序段。
如果条件不满足 IF [#1 GT 10] GOTO 2
如果条件满足
程 序
程程序序
N20 G00 G90 X100. Y20.
:
4、FANUC宏程序的转移和循环Ⅳ
IF [条件表达式] THEN
当指定的条件表达式满足时,执行预先决定的宏程序语句。
例:IF [#1EQ #2] THEN #3=0;
(六)FANUC宏程序的循环
FANUC宏程序循环Ⅰ
WHILE [条件表达式] Dom;
(m=1,2,3)
条件不满足 条件满足
ENDm
注:循环允许嵌套,最多3层,但不允许交叉;
FANUC宏程序循环Ⅱ
FANUC宏程序循环Ⅲ
(七)FANUC宏程序的条件表达式运算符
运算符
含义
EQ
等于
NE
不等于
GT
大于
GE
大于或等于
LT
小于
LE
小于或等于
(九)FANUC宏程序的调用Ⅰ
FANUC宏程序的调用Ⅰ
非模态调用G65:
格式: G65PpLl<自变量指定>
其中
p:要调用的程序号
L:调用次数(默认为1)
自变量:数据传递到宏程序
FANUC宏程序的调用Ⅱ
模态调用(G66):
G66PpLl<自变量指定>;
程序点
G67;(取消模态)
其中
p:要调用的程序号
L:调用次数(默认为1)
自变量:数据传递到宏程序
(十)FANUC宏程序的自变量指定
1、FANUC宏程序的自变量指定I
地址
变量
地址
变量
地址
变量
A
#1
I
#4
T
#20
B
#2
J
#5
U
#21
C
#3
K
#6
V
#22
D
#7
M
#13
W
#23
E
#8
Q
#17
X
#24
F
#9
R
#18
Y
#25
H
#11
S
#19
Z
#26
2、FANUC宏程序的调用II
地址
变量
地址
变量
地址
变量
A
#1
K3
#12
J7
#23
B
#2
I4
#13
K7
#24
C
J4
#14
I8
#25
I
#4
K4
#15
J8
#26
J
#5
I5
#16
K8
#27
K
#6
J5
#17
I9
#28
I2
#7
K5
#18
J9
#29
J2
#8
I6
#19
K9
#30
K2
#9
J6
#20
I10
#31
I3
#10
K6
#21
J10
#32
J3
#11
I7
#22
K10
#33
二、FANUC宏程序的应用
(一)宏程序示例(铣圆)
#1=圆心坐标X值
#2=圆心坐标Y值
#3=园孔最终Z值
#4=圆孔直径
#5=刀具直径
#6=[#4+#5]/4 (进刀半径)
#7= #3+50 (进刀高度)
#8= [#1+#4]/2-#6(进刀圆弧起点X值)
#9 = #2 - #6 (进刀圆弧起点Y值)
#10= #1+#4/2 (铣圆起点X值)
#11= -#4/2 (I矢量)
#12= #2+#6(退刀圆弧Y值)
%
O100
M03S1000
G00G90G54G43H01Z100.
X#1Y#2
Z#7
G01Z#3 F100
G41D02X#8Y#9
G03X#10Y#2R#6
G03X#10Y#2I#11J0
G03X#8Y#12R#6
G01G40X#1Y#2
G00Z100.
M30
%
(二)宏程序示例(铣半圆球)
自上而下等角度水平圆弧环绕球面精加工
#1=(A)球面的圆弧半径
#2=(B)球头铣刀刀具半径
#3=(C)球面的起始角度
#4= (I)球面的终止角度,#4≤90°
#17=(Q)Z坐标每次递减量
#24=(X)球心坐标X值
#25=(Y)球心坐标Y值
#26=(Z)球心坐标Z值
%
O200
M03S1000
G00G90G541Z100.
G00X0Y0
G65P1912X Y Z A B C I Q
M30
%
O1912 (宏程序)
G52X#24Y#25Z#26
G00X0Y0Z[#1+30]
#12=#1+#2
WHILE [#3LT#4]DO1
#5 = #12*COS[#3]
#6 = #12*SIN[#3]
X[#5+#2] Y#2
G03X#5Y0R#2F1000
G02 I-#5
G03X[#5+#2]Y-#2R#2
G00Z[#7+1]
Y#2
#3 = #3 + #17
END 1
GOO Z[#1+30]
G52 X0 Y0 Z0
M99
%
注释说明
(主程序)
调用宏程序O1912
(空格处为变量赋值)
在球心处建立局部坐标
球心与刀心连线距离
如果#3<#4,循环1继续
任意角度刀心X坐标值
任意角度刀心Y坐标值
G00定位于下刀点
圆弧进刀
沿球面切削
圆弧退刀
提刀1
移到进刀点
角度#3每次递增#17
循环1结束
提刀
恢复G54坐标
宏程序结束返回
(三) 宏程序示例Ⅰ
采用Φ20R4铣刀加工SR30的球,已知球心坐标为(X0Y0Z-5.)
宏程序示例Ⅱ
1、分析:铣球程序一般采用自动编程来实现,但是,利用宏程序强大的功能同样也可以实现,而且程序更加简洁。
2、编程思路:
铣球可以认为是多个铣圆的组合。
3、排刀分布:
有两种方案,一是按Z向分布,二是按圆心角分布。从保证表面质量来看,最佳方案为按圆心角分布。
圆弧起点计算,从X正向开始起刀。
刀具根部R4的圆心在XZ平面的运动轨迹为与R30等距的圆R34(见图示中红色轨迹),刀尖点上4mm处的轨迹(即褐色轨迹)为红色轨迹沿X正向平移6毫米,刀尖点坐标为褐色轨迹沿Z轴向下平移4mm(即绿色轨迹)。
起始角度=ARCSIN((5+4)/34)=15.349º
起始位置X值=34*COS(15.349)+6=38.787
起始位置Z值=0 (通用表达式=34*sin(15.349)-5-4)
4、变量定义:
#1为圆心角,范围由(15.349,90)
#2为刀尖中心X值,#2=34*COS[#1]+6
#3为刀尖中心Z值,#3=34*SIN[#1]-5-4
%
O300
M03S3000;
G00G90G54Z100.;
#1=15.349
X50.Y0;
Z10.;
WHILE[#1 LE 90] DO1;
#2=34*COS[#1]+6;
#3=34*SIN[#1]-5-4;
G01Z#3F900;
X#2;
G02X#2Y0I-#2J0;
#1=#1+1;
END1;
G00Z100.;
M30;
%
(四)宏程序示例II
用Φ20R10铣刀加工轮廓处R5圆角
下面为铣外形的一段程序,采用刀具半径补偿
G00X2.5Y26.664
G01G41D01X-8.991Y2.023
G03X2.5Y-3.336I11.491J9.641
X32.969Y-.208I0.J150.
G02X44.955Y-10.952I2.031J-9.792
G03Y-49.048I199.09J-19.048
G02X33.452Y-59.88I-9.955J-.952
G03X-28.452I-30.952J-197.59
G02X-39.922Y-48.75I-1.548J9.88
G03Y-11.25I-148.823J18.75
G02X-27.969Y-.208I9.922J1.25
G03X2.5Y-3.336I30.469J146.872
X13.991Y2.023I0.J15.
G40G01X2.5Y26.664
编程思路:
利用G10指令修改刀具半径偏置值来实现倒圆角。
G10格式为G10L12P1R ,其中,P1表示修改D01,R后为刀具半径偏置值。
设定倒角的圆心角为变量#1,取值范围为0-90º
设定#2为刀具半径偏置值,取值=COS[#1]*15-5
设定#3为Z值,取值=SIN[#1]*[5+10]-5-10
%
O400
M03S3000
G00G90G54Z100.
#1=0
X2.5Y26.64
Z5.
WHILE [#1 LE 90] DO1
#2= COS[#1]*15-5
#3= SIN[#1]
*[5+10]-5-10
G10L12P1R#2
G01Z#3F900
G00X2.5Y26.664
G01G41D01X-8.991Y2.023
G03X2.5Y-3.336I11.491J9.641
X32.969Y-.208I0.J150.
G02X44.955Y-10.952I2.031
J-9.792
G03Y-49.048I199.09J-19.048
G02X33.452Y-59.88I-9.955J-.952
G03X-28.452I-30.952J-197.59
G02X-39.922Y-48.75I-1.548J9.88
G03Y-11.25I-148.823J18.75
G02X-27.969Y-.208I9.922J1.25
G03X2.5Y-3.336I30.469J146.87
X13.991Y2.023I0.J15.
G40G01X2.5Y26.664
#1=#1+5
END1
G00Z100.
M30
%
三、小结
随着现代制造技术的发展和数控机床的日益普及,数控加工得到广泛应用。对于加工形状简单的零件,计算比较简单,程序不多,采用手工编程较容易完成。因此,在点定位加工及由直线与圆弧组成的轮廓加工中,手工编程仍广泛应用。但对于形状复杂的零件,特别是具有非圆曲线、列表曲线及曲面的零件,用一般的手工编程就有一定的困难,且出错机率大,有的甚至无法编出程序。在CAD/CAM软件普遍应用的今天,手工编程的应用空间日趋缩小。但手工编程是自动编程的基础。宏程序的运用,其最大的特点就是将有规律的形状或尺寸用最短的程序段表示出来,具有极好的易读性和易修改性。
4. 梯形螺纹宏程序编程时扣尾倒角怎么办
1:m为精车螺纹的次数,必须输入二位数,数值为00--99,但通常选择精车二次,所以编程时m一般用02,
2:r为螺纹退尾时的倒角宽度,也是二位数,一般情况下无须倒角,所以就输入00,
3:a为相邻二牙螺纹的夹角,也是二位数,说白了就是螺纹的角度,你这里应该是60度,所以就输入60,
4:Δdmin为粗车螺纹时的最小切削量,千进位,也就是说1mm为1000,一般可选择0.1mm或0.20mm,编程时应该写成100或200,这个数值选择得越大,走刀的次数就越少,但要综合考虑刀具、机床、工件刚性、精度等因素。
5:d为螺纹精车余量,单位mm,一般可选择0.2作为精车余量,
6:i螺纹锥度,直螺纹i=0,也可省略不输
7:k为牙型高度,千进位,一般可用0.6*牙距,这是个参考数值,随时可以根据切削情况修改,这里可选3600,如果螺纹规不能通过就再加大,反之减小,当然也可使用刀补解决,
8:Δd第一次切深,千进位,初步选0.5mm即500,这个数值越大切削次数就越少,但要综合考虑刀具、机床、工件刚性、精度等因素。
9:F后的I为英制螺纹,这里就不管了,直接F6
10:X为螺纹终点,即底径,前面选的单边深3.6,那么X最终的底经250-7.2=242.8
11:Z螺纹的长度,假设这里的螺纹长度为70mm
最后把上述数据写入指令格式中即可:
G76 P020060 Q200 R0.2;
G76 X242.8 Z-70 P3600 Q500 F6;