资源描述
数控宏程序编程主讲:杨旭第一章 宏程序应用概述1.宏程序与普通程序的对比2.宏程序编程特点3.宏程序与CAD/CAM软件生成程序的加工性能对比1.宏程序与普通程序的对比2.宏程序编程特点 宏程序的最大特点是将有规则的形状和尺寸用最短的程序表示出来,具有极好的易读性和易修改性,编写的程序非常简洁,逻辑严密,通用性极强。宏程序具有灵活性、通用性和智能性等特点3.宏程序与CAD/CAM软件生成程序的加工性能对比(1)宏程序天生短小精悍,即使最廉价的数控系统,其内部程序存储空间也会有10KB左右。(2)CAD/CAM软件生成的程序通常比较大,很容易占据所有的内存空间。怎么用手工编写半球面的程序呢?第二章 宏程序基础理论1.Fanuc 0i系统的用户宏程序2.变量3.算术和逻辑运算 4.转移和循环 5.SIEMENS 802D系统R参数指令编程1.Fanuc 0i系统的用户宏程序 Fanuc 0i系统提供两种用户宏程序,即用户宏程序功能A和用户宏程序功能B。 由于用户宏程序功能A的宏程序需要使用“G65Hm”格式的宏程序指令来表达各种数学运算和逻辑关系,极不直观,可读性非常差,从而很少人知道它。2.变量变量 普通加工程序直接用数值指定 G代码和移动距离; 例如, G100和 X100.0。 使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用 MDI 面板上的操作改变。 如:#2=30; #1=#2+100; G01 X#1 F0.3 (1)、变量的表示)、变量的表示 变量用变量符号(#)和后面的变量号指定。 例如:#1 表达式可以用于指定变量号。此时,表达式必须封闭在括号中。 例如:#1+#2-12 (2)变量的类型)变量的类型变量根据变量号可以分成四种类型。(3)变量的引用变量的引用 为在程序中使用变量值, 指定后跟变量号的地址。 当用表达式指定变量时,要把表达式放在括号中。 例如:G01X#1+#2F#3; 改变引用的变量值的符号,要把负号(一)放在#的前面。 例如:G00X-#1 当变量#1的值是 0,并且变量#2的值是空时,G00X#1 Z#2 的执行结果为 G00X0; 当变量值未定义时,这样的变量成为“空”变量。变量#0 总是空变量。它不能写,只能读。3.算术和逻辑运算4.转移和循环 在程序中,使用 GOTO 语句和 IF 语句可以改变控制的流向。有三种转移和循环操作可供使用: (1)无条件转移无条件转移 (GOTO 语句语句) 格式:GOTOn;n:顺序号(199999) 转移到标有顺序号 n 的程序段。当指定 1 到99999 以外的顺序号时,出现P/S 报警 No.128。可用表达式指定顺序号。 例: GOTO1; GOTO#10;(2)条件转移条件转移 (IF 语句语句) IF GOTO n 如果指定的条件表达式满足时,转移到标有顺序号 n 的程序段。如果指定的条件表达式不满足,执行下个程序段。 说明: a、条件表达式 条件表达式必须包括算符。算符插在两个变量中间或变量和常数中间,并且用括号 ( )封闭。表达式可以替代变量。 b、运算符 运算符由 2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一个值。注意,不能使用不等符号。 下面的程序计算数值 110 的总和(3)循环)循环 (WHILE 语句语句) 在WHILE后指定一个条件表达式, 当指定条件满足时, 执行从DO到END之间的程序。否则,转到 END后的程序段。说明:说明: 当指定的条件满足时,执行 WHILE 从 DO 到 END 之间的程序。否则,转而执行 END 之后的程序段。DO 后的号和 END 后的号是指定程序执行范围的标号,标号值为 1,2,3。若用 1,2,3 以外的值会产生 P/S 报警 No.126。 循环嵌套: 在 DOEND循环中的标号(1 到 3)可根据需要多次使用。但是,当程序有交叉重复循环(DO范围的重叠)时,出现 P/S报警 No.124。 FANUC宏程序的调用1. 非模态调用G65:格式: G65 Pp Ll 其中 p:要调用的程序号 L:调用次数(默认为1) 自变量:数据传递到宏程序例:G65 P8000 L2 A10. B2.;调用2次程序号8000,经自变量A传递到宏程序#1=10;自变量B传递到宏程序#2=2。自变量指定自变量指定 根据使用的字母,CNC系统自动地决定自变量指定的类型。 地址不需要按字母顺序指定。但应符合字地址的格式。 但是,I,J 和K 需要按字母顺序指定。自变量指定自变量指定根据使用的字母,系统自动决定自变量指定的类型。自变量指定用于传递诸如三维坐标值的变量。I,J,K 的下标用于确定自变量指定的顺序,在实际编程中不写。如果自变量指定和自变量指定混合指定的话,后指定的自变量类型有效。2. 模态调用(G66):G66 Pp Ll ;程序点G67;(取消模态)例:G66 P8000 L2 A10. B2.; G00 G90 Z-10. X-5. G67一旦发出G66 则指定模态调用,即指定沿移动轴移动的程序段后调用宏程序。移动到Z-10,调用2次程序号8000,移动到X-5,再调用2次程序号8000 。5.SIEMENS 802D系统R参数指令编程 编程的计算参数从R0R299,共计300个计算参数。其中R0R99在编程时可以自由使用; R100R249主要用于加工循环传递参数; R250R299用于加工循环的内部计算参数。 如果编程时没有用到加工循环,R100R249同样可以在编程时自由使用。(1)赋值变量:用R和后面的数字(0、1、2、3)组成R0=10R1=20注意:1、一个程序中可以有多个赋值语句;也可以用计算表达式赋值。 2、赋值时在地址符之后写入符号“=”;赋值也可以有正负(2).程序跳转 跳转目标程序段中标记符后面必须为冒号;标记符号位于程序段段首。 程序举例:N10 MARKE1: G01 X20 ;TR789 :G00 X10 Z20N100绝对跳转绝对跳转编程格式:GOTOF Label;向前跳转GOTOB Label;向后跳转指令说明GOTOF向程序结束方向跳转GOTOB向程序开始方向跳转Label所选的标记符有条件跳转有条件跳转功能:用IF 条件语句表示有条件跳转,如果满足条件,则进行跳转。编程格式: IF 条件 GOTO F Label;向前跳转 IF 条件 GOTO B Label;向后跳转第三章 编程实例例1:如果所示加工长半轴为40,短半轴为20的椭圆。 首先进行工艺的分析,选择相关的进行切削参数,刀具的选择,粗、精加工分开。主轴转速粗加工选择500r/min,精加工选择800r/min,、进给速度F=150mm/min。O1002G00X100Z50T0101M03S800F150G00X68.Z5.G94X0.Z0.G90X58.Z-50.X56.Z-50.X54.Z-50.X51.Z-50.G00X56.Z5.G90X51.Z-15.R-7.X51.Z-22.R-7.X51.Z-30.R-7.X40.Z-5.R-10.X40.Z-10.R-10.G00X51Z2#50=11WHILE#50GE1DO1M98P4003#50=#50-1END1G00X51Z2M03S1500F80#50=0M98P4003G00X100Z50M05M30主程序主程序子程序: O4003 #1=40 #2=20 #4=40 N10#5=#2/#1*SQRT#1*#1-#4*#4 G01X2*#5+#50Z#4-40F40 #4=#4-0.1 IF#4GE0GOTO10 G00U2Z2 M99宏程序编程思路 用方程来表示Z轴,Z=a/b*sqrtb2-x2,长半轴为6,短半轴为4的椭圆。X轴作为变量O002#1=6#2=4#3=0T0101M03 S600WHILE #3 LE #2 DO1#4=#1/#2*SQRT#2*#2-#3*#3#5=#4-6G01 X2*#3 Z#5 F50#3=#3+0.2END 1G00 X100 Z50M05M30作业:用方程来表示X轴,Z轴作为变量,编写长半轴为6短半轴为4的椭圆?O002#1=6#2=4#3=6T0101M03 S600WHILE #3 GE -#1 DO1#4=#2/#1*SQRT#2*#2-#3*#3G01 X2*#4 Z#3-6 F50#3=#3-0.2END 1G00 X100 Z50M05M30例2.编制一个车削加工如图所示具有抛物线曲线类的零件通用程序,抛物线开口距离为V,抛物线方程为y2=-2px。抛物线的一般方程: X2=+2PZ(或者Z2=+2PX)可转换为: Z=+X2/2P(或者X=+Z2/2P)用变量表示上式为: #2=+#1*#1/2*#3 #1=+#2*#2/2*#3根据上述工艺分析,可画出宏程序结构流程框图。FANUC 0i 数控系统对抛物线曲线类零件精车削的用户宏程序#1=X0 抛物线顶点的工件坐标横坐标绝对值#2=Z0 抛物线顶点的工件坐标纵坐标绝对值#3=P 抛物线焦点坐标点Z轴上绝对值的2倍p#4=V 抛物线的开口距离#5=K X向递减均值Q123N10 G00 X#1 Z#2+5N15 M03 S500N20 G01 Z#2 F50N30 #1=#1-#5N40 #2=-#1*#1/2*#3N50 G01 X#1 Z#2 F50N60 IF #1LE #4/2 GOTO 30N70 G01 X#4 Z#2N80 G00 X100 Z50N90 M05N100 M30例3. 数控车床钻孔循环宏程序编程O0003M03 S300M08 F10T0303 G00 Z2#1=50 孔总体深度#2=5 每次钻削递增量#3=0 Z轴初始值WHILE #3LE#1 DO1#3=#3+#2G01 Z-#3 G00 Z1#4=#3-1G00 Z-#4END 1G00 Z100M05M30例4.用宏程序编程实现螺纹粗、精加工。(1)、 螺纹轴加工时先粗、精车螺纹大径,螺纹大径一般应车的比基本尺寸小0.20.4mm(约0.13C,C为螺纹螺距);(2)、保证车好螺纹后牙顶出有0.125C的宽度;(3)、再车削退刀槽;(4)、最后分层粗、精车螺纹。采用直进法车削螺纹,升速进刀段为I,降速退刀段为J,螺纹精加工余量D,根据精加工余量确定每次背吃刀量(直径值)分别为(n-1)D、(n-2)D、3D、2D、D,车削次数等于螺纹背吃刀量(=0.65C)除以螺纹精加工余量D后求整。O0004#1=A A螺纹大径#2=B B螺纹长度#3=C C螺纹螺距#4=I I螺纹升速段长#5=J J螺纹减速段长#6=K K螺纹背吃刀量(K=0.65*#3)半径值#7=D D螺纹最终精加工背吃刀量#8=FUP #6/#7 切削次数上取整#9=#6/#8 背吃刀量递减均值T0101M03 S300WHILE #8GE1 DO1#8=#8-1 切削次数递减1次#10=#8*#9 背吃刀量计算#1=#1-#10 第n次加工螺纹的X坐标计算G00 X#1+5 Z#4 到螺纹起点,升速段#4 X#1 背吃刀量G32 W-#2+#5 F#3 切削螺纹到螺纹终点G00 X#1+5 X轴方向快退END1G00 X100 Z50 推出工件M30螺纹车削动画演示例5:用宏程序编写外圆粗车。工件毛坯为50,加工成30的圆柱。O0005#1=50#2=30#3=100#4=2#5=5T0101M03S600N10 G00 X#1+5 Z#5 X#1G01 Z-#3 F50G00 X#1Z#5#1=#1-#4IF #1GE#2 GOTO 10G00 X100 Z50M05M30外圆车削循环宏程序编程演示第四章 什么叫顺铣,什么叫逆铣?与刀补之间的关系? 在数控铣床上(加工中心上)加工平面是最基本、最简单的零件加工方式,平面的铣削的方法有哪几种? 例1:如图所示,长为75mm,宽为50mm的45#钢块,进行开放区域平面加工,铣削厚度为3mm。回字形平面的铣削1工艺分析(1).材料选用45#钢块,采用平口虎钳进行装夹工件,平口虎钳使用前要进行校正。(2).采用适切对刀法进行对刀,G54设在X、Y对称中心上,加工深度3mm,Z轴零点设在工件的表面。起刀点设在工件的左下角(-#2,-#1),选用10的平底立铣刀或者10的键槽铣刀。(3).主轴转速选择600r/min,进给速度选择80mm/min(读者可根据实际情况而定)。2编程思路或编程方法 本例题采用环切法编程,深度上进行一次加工,X、Y同时递减一个刀具直进的%80,短半轴作为循环条件,循环语句一重循环。O0001 程序号#1=25 定义短半轴#2=37.5 定义长半轴#3=10 定义刀具直径#4=#3*0.8 变量每次变化量G94 G90 G80 G40 G49 G21 G17 程序初始化G54 G00 X-#2 Y-#1 起刀点Z20 M07 安全高度M03 S600 主轴正转、转速600r/minG01 Z-3 F80 下Z轴 给进给速度WHILE #1GE0 DO1 如果#10循环继续执行G01 Y#1 G01 移到Y轴的正半轴上X#2 移动到X轴的正半轴上Y-#1 移动到Y轴的负半轴上X-#2+#4 移动到减去一个变化量的X轴的负半轴上#1=#1-#4 Y轴坐标即变量#1递减#4#2=#2-#4 X轴坐标即变量#1递减#4END1 循环结束G00 Z50 M09 抬刀至安全高度M05 M30 程序结束并返回程序头一次性平面铣削宏程序编程演示例2:如图所示,长为75mm,宽为50mm的45#钢块,进行开放区域平面加工,其铣削厚度为8mm。1工艺分析(1).材料选用45#钢块,采用平口虎钳进行装夹工件,平口虎钳使用前要进行校正。(2).采用适切对刀法进行对刀,G54设在X、Y对称中心上,加工深度8mm,Z轴零点设在工件的表面。起刀点设在工件的左下角(-#2,-#1),选用10的平底立铣刀。(3).主轴转速选择600r/min,进给速度选择80mm/min(读者可根据实际情况而定)。2编程思路或编程方法 本例题采用环切法编程, X、Y同时递减一个刀具直进的%80,深度上作为一个循环条件进行深度控制,短半轴作为另一个循环条件进行平面的铣削,循环语句的双重调用。%0002 程序号#1=25 定义短半轴#2=37.5 定义长半轴#3=10 定义刀具直径#4=#3*0.8 变量每次变化量#5=8 所需加工深度H(绝对值)#6=0 dz(绝对值)设为自变量,赋初始值为0#7=2 Z坐标(绝对值)每次递增量G94 G90 G80 G40 G49 G21 G17 程序初始化G54 G00 X-#2 Y-#1 起刀点M03 S600 主轴正转、转速600r/minWHILE #6LE#5Do1 如果#6#5,循环继续执行#1=25 重新定义短半轴#2=37.5 重新定义长半轴Z20 M07 安全高度G00 X-#2 Y-#1 移到起刀点G01 Z-#6 F80 下Z轴 WHILE #1GE0DO2 如果#10,循环继续执行G01 Y#1 G01 移到Y轴的正半轴上X#2 移动到X轴的正半轴上Y-#1 移动到Y轴的负半轴上X-#2+#4 移动到减去一个变化量的X轴的负半轴上#1=#1-#4 Y轴坐标即变量#1递减#4#2=#2-#4 X轴坐标即变量#1递减#4END2 循环结束G00 Z50 抬刀至安全高度#6=#6+#7 Z坐标(绝对)依次递增#7(层间距)END1 循环结束M09 切削液关M05 M30 程序结束并返回程序头 深度多次铣削平面加工宏程序编程演示弓字形开放区域平面铣削弓字形开放区域平面铣削作业:如图所示,长为75mm,宽为50mm的45#钢块,进行开放区域平面加工,其厚度为3mm。 %0033 程序号 #1=50 定义短轴 #2=75 定义长轴 #3=10 定义刀具直径 #4=#3*0.8 变量每次变化量 #5=-#1+#3/2+6 开始点的Y坐标 #6=-#2/2 开始点的X坐标 #7=#2/2+0.3*#3 G94 G90 G80 G40 G49 G21 G17 程序初始化 G54 G00 X#6 Y#5 起刀点 M03 S600 主轴正转、转速600r/min Z20 M07 安全高度 G01 Z-3 F80 下Z轴 WHILE #6LE#7 如果#6#7,循环继续执行 G01 Y-#5 G01移至Y轴正向 #6=#6+#4 X坐标即变量#6递增#4 X#6 X坐标向正方向移动#4 Y#5 移至Y轴负向 #6=#6+#4 X坐标即变量#6递增#4 X#6 X坐标即变量#6递增#4 ENDW 循环结束 G00 Z50 M09 抬刀 M05 M30 程序结束并返回程序头用圆的标准方程编写圆的外轮廓加工例例3 如图所示,在边长为50mm的正方形上精加工一个半径为20mm整圆,深度为3mm,以顺铣方式进行加工。 %0003 程序号 #1=20 圆半径 #2=-#1 X负半轴 #3=#1 X正半轴 #4=5 刀具半径值 G94 G90 G80 G40 G49 G21 G17 程序初始化 G54 G00 X30 Y25 起刀点 Z30 M07 安全高度 M03 S600 主轴正转、转速600r/min G01 Z-3 F100 最终加工深度H Y0 移动到Y0点WHILE #3GE-#1 DO1 如果#3-#1,循环执行#6=-SQRT#1*#1-#3*#3+#4 刀具中心在Y轴坐标点值G01 X#3 Y#6 用G01移动到目标点#3=#3-0.05 X轴每次递减0.05END1 循环结束WHILE #2LE#1 DO1 如果#2#1,循环继续执行#5=SQRT#1*#1-#2*#2+#4 刀具中心在Y轴坐标点值G01 X#2 Y#5 用G01移动到目标点#2=#2+0.05 X轴每次递增0.05END 1 循环结束G01 Y-10 延切线走出G00 Z50 M09 抬刀M05 M30 程序结束并返回程序头作业:用圆的参数方程,编写整圆的宏程序加工程序。 如图所示,40圆上钻86的孔第一孔与X成0夹角,其深度都为10mm,分布在圆周上的孔。%0001 程序号#1=40 孔所在圆的直径#2=0 第一孔与X轴的夹角#3=1 孔计数器#4=8 总共加工孔数#5=360/#8 孔平分所在圆上#6=10 Z最终深度#7=10 R点平面#8=-3 每次进刀量G94 G90 G80 G40 G49 G21 G17 程序初始化G54 G00 X0 Y0 起刀点Z30 安全高度M03 S600 主轴正转、转速800r/minWHILE #3LE#4 累加器数小于所加工孔循环继续#9=#2+#3-1*#5 计算当前孔所在角度#10=#1/2*COS#9*PI/180 当前孔的X坐标值#11=#1/2*SIN#9*PI/180 当前孔的Y坐标值G73 X#10 Y#11 Z-#6 R#7 Q#8 F10#3=#3+1 孔数累加ENDW 循环结束G00 Z50 抬刀M05M30 程序结束并返回程序头 例例4 如图所示,在边长为50mm的正方形的45#钢块上加工一个椭圆,长半轴为20mm,短半轴为10mm,深度为3mm,以逆铣方式进行加工。1工艺分析(1).材料选用45#钢,采用平口虎钳进行装夹工件。(2).采用适切对刀法进行对刀,G54设在X、Y对称中心上,加工深度为3mm,Z轴零点设在工件的表面。起刀点设在(#6,-#7)处,选用10的平底立铣刀或者10的键槽铣刀进行加工。(3).主轴转速选择600r/min,进给速度选择100mm/min(读者可根据实际情况而定)。2编程思路或编程方法本例题采用椭圆的标准方程进行编程。深度上进行一次加工,角度的变化作为循环判断条件,使用一次循环语句。 %0004 程序号 #1=20 椭圆长半轴 #2=10 椭圆短半轴 #3=0 初始角度 #4=360 最终角度 #5=5 刀具半径值 #6=#1+#5 X坐标刀具中心值 #7=#2+#5 Y坐标刀具中心值 G94 G90 G80 G40 G49 G21 G17 程序初始化 G54 G00 X#6 Y-#7 起刀点 Z30 M07 安全高度 M03 S600 主轴正转、转速600r/min G01 Z-3 F100 最终加工深度H Y0 移动到Y0点 WHILE #3LE#4 如果#3#4,循环继续执行 #8=#6*COSPI*#3/180 X目标点坐标值 #9=#7*SINPI*#3/180 Y目标点坐标值 G01 X#8 Y#9 F80 用G01移动到目标点 #3=#3+0.02 角度每次递增0.02 ENDW 循环结束 G00 Z50 M09 抬刀 M05 M30 程序结束并返回程序头作业:如图所示,用椭圆的标准方程编写其加工程序。 在边长为50mm的正方形45#钢块上加工一个椭圆,长半轴为20mm,短半轴为10mm,深度为3mm。%0044 #1=20 定义椭圆长半轴#2=10 定义椭圆短半轴#5=5 定义平底立铣刀半径#3=-#1 椭圆长半轴负向赋值给#3#4=#1 椭圆长半轴正向赋值给#3#6=#1+#5 刀具中心位置坐标点#7=#2+#5 刀具中心位置坐标点G90 G94 G80 G40 G49 G21 G17 程序初始化G54 G00 X-#6 Y-#7 起刀点Z30 安全高度M03 S600 主轴正转、转速600r/minG01 Z-3 F100 最终加工深度3mmY0 移动到Y0点WHILE #3LE#1 DO1 如果#3#1(长半轴为变量)#8=#2*SQRT#1*#1-#3*#3/#1 当前Y坐标点G64 G01 X#3 Y#8 F100 以G01 移到目标点#3=#3+0.02 X轴每次递增0.02ENDW 循环结束WHILE #4GE-#1 如果#4-#1(长半轴作为变量)#9=-#2*SQRT#1*#1-#4*#4/#1 当前Y坐标点G64 G01 X#4 Y#9 F100 以G01 移到目标点#4=#4-0.02 X轴每次递减0.02ENDW 循环结束G00 Z50 抬刀M05M30 程序结束并返回程序头例5: 如图所示,在边长为50mm的正方形钢块上加工一个圆锥台,锥台大圆直径为40mm,锥台小圆直径为20mm,深度为10mm 。1工艺分析(1).材料选用45#钢,采用平口虎钳进行装夹工件。(2).采用适切对刀法进行对刀,G54设在X、Y对称中心上,加工深度为10mm,Z轴零点设在工件的表面。起刀点设在(#6/2,0)处,选用10的平底立铣刀或者10的键槽铣刀进行加工。(3).主轴转速选择800r/min,进给速度选择80mm/min(读者可根据实际情况而定)。2编程思路或编程方法本例题采用从上至下进行加工,用直线和圆弧进行逼近圆锥台的粗加工,圆弧的切入点一般选在坐标轴上,Z轴作为变量, Z轴的变化作为循环判断条件,进行多次加工,使用一次循环语句。本题还可以从下至上进行加工。Z轴作为变化量进行编程。 %0005 程序号 #1=40 大圆直径 #2=20 小圆直径 #3=10 刀具直径 #4=45 斜边和底边夹角角度 #5=10 最终加工深度 #6=#1-#2+#3 刀具中心初始点 #7=0 dz初始值 G90 G94 G80 G40 G49 G21 G17 程序初始化 G54 G00 X#6/2 Y0 刀具起刀点 Z30 安全高度 M03 S800 主轴正转、转速800r/min WHILE #7LE#5 如果#7#5,循环继续执行 G01 Z-#7 F80 当前点Z坐标值 #8=#7*TAN#4 计算圆锥台X坐标值 #9=#6/2+#8 当前点刀具中心值 G01 X#9 Y0 G01移动到X正半轴 G02 X#9 Y0 I-#9 J0 顺时针圆进行加工 #7=#7+0.2 Z递增量0.2 ENDW 循环结束 G00 Z50 抬刀 M05 M30 程序结束并返回程序头例6:如图所示,在60mm60mm的正方形上,其圆柱的直径为50,圆柱面倒一个R为10mm的圆角。 1工艺分析 (1).材料选用45#钢,采用平口虎钳进行装夹工件。 (2).采用适切对刀法进行对刀,G54设在X、Y对称中心上,倒一个R为10mm的圆角,Z轴零点设在工件的表面。起刀点设在(0,0)处,选用10的球头铣刀进行加工。 (3).主轴转速选择800r/min,进给速度选择100mm/min(读者可根据实际情况而定)。 2编程思路或编程方法 根据勾股定理计算出当前X=a+R坐标值。%0006 程序号#1=0 定义Z轴的初始值#2=10 定义最终加工深度G94 G90 G80 G40 G21 G17 程序初始化G54 G00 X0 Y0 起刀点Z30 安全高度M03 S800 主轴正转、转速800r/minWHILE #1LE#2 如果#1#2,循环继续#3=10-#1 Z当前的坐标值#4=SQRT10*10-#3*#3 X当前的坐标值#5=15+#4 当前刀具中心的X坐标值 G01 X#5 Y0 F100 以G01移到目标点Z-#1 下深度G02 X#5 Y0 I-#5 J0 以G02进行加工#1=#1+0.5 Z轴每次递减0.5ENDW 循环结束G00 X0 Y0 移至中心点Z50 抬刀M05M30 程序结束并返回程序头例7:如图所示,在60mm60mm的正方形上,其圆的直径为38,孔口倒一个R为5mm的圆角。1工艺分析(1).材料选用45#钢,采用平口虎钳进行装夹工件。(2).采用适切对刀法进行对刀,G54设在X、Y对称中心上,倒一个R为10mm的圆角,Z轴零点设在工件表面上。起刀点设在(0,0)处,选用8球头铣刀进行加工。(3).主轴转速选择800r/min,进给速度选择100mm/min(读者可根据实际情况而定)。2编程思路或编程方法首先,根据勾股定理计算圆角的加工点,再根据R=19+5-4,X=R-a计算出刀具的中心位置,即为当前X坐标值。%0007 程序号#1=0 定义Z轴起始深度#2=-5 定义Z轴最终深度G94 G90 G80 G40 G21 G17 程序初始化G54 G00 X0 Y0 起刀点Z30 安全高度M03 S800 主轴正转、转速800r/minWHILE #1GE#2 如果#1#2,循环继续#3=5+#1 Z方向计数器#4=SQRT5*5-#3*#3 X方向当前坐标值#5=20-#4 当前刀具中心在X方向的坐标值G01 X#5 Y0 F100 以G01移到目标点Z#1 下深度G02 X#5 Y0 I-#5 J0 以G02进行加工#1=#1-0.2 Z轴每次递减0.5ENDW 循环结束G00 X0 Y0 移至中心点Z50 抬刀M05M30 程序结束并返回程序头作业:圆的参数编程 ,孔口倒90圆角 。例8:如图6-6所示,在60mm60mm的正方形上,其圆的直径为38,孔口倒一个R为30mm的圆角,深度为7mm。 1工艺分析 (1).材料选用45#钢,采用平口虎钳进行装夹工件。 (2).采用适切对刀法进行对刀,G54设在X、Y对称中心上,倒一个R为10mm的圆角,Z轴零点设在工件表面上。起刀点设在(0,0)处,选用8球头铣刀进行加工。 (3).主轴转速选择800r/min,进给速度选择100mm/min(读者可根据实际情况而定)。 2编程思路或编程方法 首先,根据勾股定理计算圆角的加工点,再根据X=a-r计算出刀具的中心位置,即为当前X坐标值。 %0008 程序号 #1=0 定义Z轴起始深度 #2=7 定义Z轴最终深度 G94 G90 G80 G40 G49 G21 G17 程序初始化 G54 G00 X0 Y0 起刀点 Z20 安全高度 M03 S800 主轴正转、转速800r/min WHILE #1LE#2 如果#1#2,循环继续 #3=16.216+#1 Z方向当前深度的坐标值 #4=SQRT30*30-#3*#3 X方向坐标值 #5=#4-4 刀具中心在X方向的坐标值 G01 X#5 Y0 F150 以G01移到目标点#5 Z#1 下深度 G02 X#5 Y0 I-#5 J0 以G02走圆加工 #1=#1+0.2 dz每次递增0.2 ENDW 循环结束 G00 X0 Y0 移至中心点 Z50 抬刀 M05 M30 程序结束并返回程序头第第5章章 内轮廓零件的铣削加工内轮廓零件的铣削加工例例1 如图所示,在边长为50mm的正方形上加工一个半径为20mm的圆孔内腔,深度为10mm。1工艺分析(1).材料选用45#钢,采用平口虎钳进行装夹工件。(2).采用适切对刀法进行对刀,G54设在X、Y对称中心上,加工深度为10mm,Z轴零点设在工件表上。起刀点设在(0,0)处,10的键槽铣刀进行直接加工或者预先钻中心孔,再用10的平底立铣刀进行加工。(3).主轴转速选择600r/min,进给速度选择100mm/min(读者可根据实际情况而定)。2编程思路或编程方法此题采用中心垂直下刀,预先计算要走刀次数,每步的步距,采用逆铣铣削方式,在Z轴上进行多次进刀。 O0001 程序号 #1=40 定义圆孔直径 #2=10 最终加工深度 #3=10 刀具直径 #4=0 dz初始赋值 #17=2 dz每次递增量 #5=0.80*#3 步距设为刀具直径的80% #6=#1-#3 刀具(中心)在内腔中的最大回转直径 G90 G94 G80 G40 G49 G21 G17 程序初始化 G54 G00 X0 Y0 起刀点 Z30 安全高度 M03 S600 主轴正转,转速600r/min WHILE #4LT#2 如果#4#2,循环继续执行 G01 Z -#4 F80 Z当前坐标值 #7=INT #6/#5 中心在内腔最大回转直径除以步距并取整 #8=INT#7/2 刀具中心在内腔半径上走几步 WHILE #8GE0 #80(走到最外一圈)循环继续 #9=#6/2-#8*#5 每圈在X方向上移动的距离(绝对值) G01 X#9 Y0 F100 以G01移动到目标点 G03 I-#9 逆时针走整圆 #8=#8-1 #8依次递减至0 ENDW 循环结束 G01 X0 Y0 移至中心点,准备下一层加工 #4=#4+#17 Z坐标(绝对值)依次递增#17 ENDW 循环结束 G00 Z50 抬刀 M05 M30 程序结束并返回程序头5.2椭圆内轮廓铣削加工(中心垂直下刀)椭圆内轮廓铣削加工(中心垂直下刀)例例5 如图所示,在长为75mm,宽为50mm,的长方形7550mm上加工一个长半轴为30mm,短半轴为20mm,深度为10mm的椭圆内腔。1工艺分析(1).材料选用45#钢,采用平口虎钳进行装夹工件。(2).采用适切对刀法进行对刀,G54设在X、Y对称中心上,加工深度为10mm,Z轴零点设在工件表上。起刀点设在(0,0)处,10的键槽铣刀进行直接加工或者预先钻中心孔,再用10的平底立铣刀进行加工。(3).主轴转速选择600r/min,进给速度选择120mm/min(读者可根据实际情况而定)。2编程思路或编程方法此题采用中心垂直下刀,首先判断长半轴还是短半轴作为步距移动量,计算出要走刀次数,计算每步的步距,运用椭圆的参数方程进行编程,采用逆铣铣削方式,在Z轴上进行多次进刀。O0002 程序号#1=30 定义椭圆长半轴#2=20 定义椭圆短半轴#3=10 定义键槽铣刀直径#4=0 dz初始值#5=2 dz每次递增量#16=0 角度设自变量,赋初始值为0#7=0.5 角度每次递增量#8=10 椭圆内腔深度G90 G94 G80 G40 G49 G21 G17 程序初始化G54 G00 X0 Y0 起刀点Z30 安全高度M03 S600 主轴正转,转速600r/min#9=0.8*#3 步距设为刀具直径的80%#10=#1*2-#3 刀具(中心)在内腔长轴方向上最大移动量#11=#2*2-#3 刀具(中心)在内腔短轴方向上最大移动量WHILE #4LE#8 如果#4#8,循环继续执行G01 Z-#4 F120 当前Z坐标IF#1GE#2 如果#1#2,执行#12#12=INT#11/#9 短轴方向上最大移动距离除以步距,并取整ELSE IF #1LT#2 如果#1#2,执行#12#12=INT#10/#9 短轴方向上最大移动距离除以步距,并取整ENDIF 结束条件语句#13=INT#12/2 #13是奇数还是偶数都取整,重置#13为初始值WHILE #13GE0 如果#130,循环继续#14=#10/2-#13*#9 每圈在长半轴移动的目标值(绝对值)#15=#11/2-#13*#9 每圈在短半轴移动的目标值(绝对值)#16=0 重置角度#16为初始值0WHILE #16LE360 如#16360,循环继续#17=#14*COS#16*PI/180 椭圆上目标点的X坐标#18=#15*SIN#16*PI/180 椭圆上目标点的Y坐标G01 X#17 Y#18 F100 以G01逼近走出椭圆#16=#16+#7 角度#16每次递增#7ENDW 循环结束#13=#13-1 #13依次递减至0ENDW 循环结束G01 X0 Y0 F100 移到中心点,准备下一层加工#4=#4+#5 dz每次递增#5ENDW 循环结束G00 Z50 抬刀M05M30 程序结束并返回程序头华中数控例例 如图所示,在长为75mm,宽为50mm的长方形上加工一个长为60mm,宽为40mm,深度为10mm四边形内腔。1工艺分析(1).材料选用45#钢,采用平口虎钳进行装夹工件。(2).采用适切对刀法进行对刀,G54设在X、Y对称中心上,加工深度为10mm,Z轴零点设在工件表上。起刀点设在(0,0)处,10的键槽铣刀进行直接加工或者预先钻中心孔,再用10的平底立铣刀进行加工。(3).主轴转速选择600r/min,进给速度选择80mm/min(读者可根据实际情况而定)。2编程思路或编程方法此题采用中心垂直下刀,首先判断长半轴还是短半轴作为步距移动量,计算出要走刀次数,计算每步的步距,再判断是否走在内轮廓的最外圈,如果走在最外圈,深度已达到就结束加工。 %0001 程序号 #1=60 矩形内腔X方向边长 #2=40 矩形内腔Y方向边长 #3=10 (键槽铣刀)刀具直径 #4=10 最终深度 #5=0 dz初始赋值 #17=2 dz每次递增量 #6=0.8*#3 步距设为刀具直径的80% #7=#1-#3 刀具在内腔中X方向最大移动量 #8=#2-#3 刀具在内腔中Y方向最大移动量 G90 G94 G80 G40 G49 G21 G17 G54 G00 X0 Y0 起刀点 Z30 安全高度 M03 S600 主轴正转,转速600r/min WHILE #5LT#4 如果#5内腔深度#4, Z-#5+3 至当前加工平面以上3处 G01 Z-#5+#17 F80 当前加工深度 IF #1GE#2 如果#1#2 #9=INT#8/#6 Y方向上移动步距,并取整 ELSE IF #1LT#2 或者如果#1#2 #9=INT#7/#6 X移动步距,并取整 ENDIF 条件结束 #10=INT#9/2 WHILE #10GE0 如果#100 #11=#7/2-#10*#6 每圈在X方向上移动的距离#12=#8/2-#10*#6 每圈在Y方向上移动的距离G01 Y#12 以G01移到Y轴正向 X-#11 以G01移到X轴负向 Y-#12 以G01移到Y轴负向 X#11 以G01移到X轴正向 Y#12 以G01移到Y轴正向 X0 以G01移到X0 #10=#10-1 #10依次递减至0 ENDW 循环结束 G00 Z30 抬刀 X0 Y0 移至中心点,准备下一层加工 #5=#5+#17 dz每次递增#17 ENDW 循环结束 M05 M30 程序结束并返回程序头例例如图所示,在长为75mm,宽为50mm的长方形上加工一个长为60mm,宽为40mm, 4R10的圆角,深度为10mm四边形内腔。 1工艺分析 (1).材料选用45#钢,采用平口虎钳进行装夹工件。 (2).采用适切对刀法进行对刀,G54设在X、Y对称中心上,加工深度为10mm,Z轴零点设在工件表上。起刀点设在(0,0)处,10的键槽铣刀进行直接加工或者预先钻中心孔,再用10的平底立铣刀进行加工。 (3).主轴转速选择600r/min,进给速度选择80mm/min(读者可根据实际情况而定)。 2编程思路或编程方法 此题采用中心垂直下刀,在循环语句中用IF判断语句判断长半轴还是短半轴作为步距移动量,计算出要走刀次数,在计算每步的步距,再判断是否走在内轮廓的最外圈,如果走在最外圈,如果走在最外圈就执行倒圆角加工,深度已达到就结束加工。 %0002 程序号 #1=60 定义四边形长轴 #2=40 定义四边形短轴 #3=10 定义刀具直径 #4=10 最终加工深度 #13=5 圆角半径 #5=0 dz初始值为0 #17=2 dz每次递增量 #6=0.8*#3 步距设为刀具直径的80% #7=#1-#3 刀具在内腔中X方向最大移动量 #8=#2-#3 刀具在内腔中Y方向最大移动量 G90 G94 G80 G21 G40 G49 G17 G54 G90 G00 X0 Y0 起刀点 Z30 安全高度 S600 M03 主轴正转,转速600r/min WHILE #5LT#4 如果#5内腔深度#4,循环继续 Z-#5+3 G00下降至当前加工平面以上3处 G01 Z-#5+#17 F80 Z以G01下降至当前加工深度 IF #1GE#2 如果#1#2 #9=INT#8/#6 Y方向上最大移动距离,并取整 ELSE #9=INT#7/#6 X方向上最大移动距离,并取整 ENDIF 条件结束 #10=INT#9/2 不管在X还是在Y方向上移动所走的刀数 WHILE #10GE0 如果#100 IF #10GT0 如果#100,执行下面的 #11=#7/2-#10*#6 每圈在X方向上移动的距离目标值 #12=#8/2-#10*#6 每圈在Y方向上移动的距离目标值 G01 Y#12 以G01移到Y轴正向 X-#11 以G01移到X轴负向 Y-#12 以G01移到Y轴负向 X#11 以G01移到X轴正向 Y#12 以G01移到Y轴正向 X0 以G01移到X0 #10=#10-1 #10依次递减至0 ENDIF 条件结束 IF #10EQ0 如果#10=0,执行下面的 #11=#7/2-#10*#6 在X方向上移动的距离目标值 #12=#8/2-#10*#6 在Y方向上移动的距离目标值 G01 Y#12 以G01向Y向移动#12 X-#11+#13 走向-X减去一个#13处 G03 X-#11 Y#12-#13 R#13 G03走R10 G01 Y-#12+#13 以G01移到-Y减去一个#13 G03 X-#11+#13 Y-#12 R#13 G03走R10 G01 X#11-#13 以G01移到X减去一个#13 G03 X#11 Y-#12+#13 R#13 G03走R10 G01 Y#12-#13 以G01移到Y减去一个#13 G03 X#11-#13 Y#12 R#13 G03走R10 G01 X0 移至中心点,准备下一层加工 Y0 移至Y0处 #10=#10-1 #10依次递减至0 ENDIF 条件结束 ENDW 循环结束 G00 Z30 抬刀 X0 Y0 移至中心点 #5=#5+#17 #5每次递增#17 ENDW 循环结束 G00 Z50 抬刀 M05 M30 程序结束并返回程序头
展开阅读全文