主程序:判断当前时间 N10 DEF INT CHRNO,TIME ;定义两个变量 N20 D1 ;调用刀补 N30 S1500 M03 ;主轴旋转 N40 TIME=$P_HOUR*100+$P_MIN ;将实时时间作为系统变量,经过计算赋值给自定义变量TIME N50 IF TIME<800 || TIME>2000 ;如果变量小于800或者大于2000执行变量1002,否则执行变量1001 N60 CHRNO=1002 ;变量赋值,凸面椭圆参数 N70 ELSE N80 CHRNO=1001 ;变量赋值,凹面椭圆参数 N90 ENDIF ;判断结束 N100 ZX_KK(CHRNO) ;调用子程序ZX_KK并传递参数 N110 G00 X100 Z100 ;退刀 N120 M30 参数子程序传递时间参数:ZX_KK.iso PROC ZX_KK(INT CHRNO) ;承接按值传递子程序参数 CASE CHRNO OF 1001 GOTOF N10 1002 GOTOF N20 ;根据CHRNO的值,调用CASE语句来执行下面的程序 N10 ;切削凹椭圆的主程序 G90 G95 T1D1 M03 S1500 G00 X50 Z3 CYCLE95 ("ao1", 1, 0.2, 0.3, 0, 0.2, 0.1, 0.1, 9, 0, 0, 0) ;调用凹椭圆子程序 RET N20 ;切削凸椭圆的主程序 G90 G95 T1D1 M03 S1500 G00 X50 Z3 CYCLE95 ("tu1", 1, 0.2, 0.3, 0, 0.2, 0.1, 0.1, 9, 0, 0, 0) ;调用凸椭圆子程序 RET 凹椭圆子程序 名称:ao1.iso N10 G01 X25 Z0.5 N20 X30 Z-2 N30 Z-15 N40 X40 N50 Z-26.095 N60 R1= 13.905 ;定义椭圆加工起始点13.095,表示起点相对于椭圆原点的增量数值 N70 WHILE R1>=-13.905 ;定义椭圆加工终点-13.095,表示终点相对于椭圆原点的增量数值 N80 R2=2*8*SQRT(1-R1*R1/15/15) ;根据椭圆方程计算X向数值,并乘以2表示直径方向上 N90 G01 X=46-R2 Z=R1-40 ;“X=46-R2”椭圆中心距减去X向值即可,“Z=R1-40”椭圆中心减去工件坐标系起点数值 N100 IF R1 == -13.905 GOTO 170 ;避免发生死循环 N110 R1=R1-0.5 ;步长0.5 N120 IF R1 < -13.905 N130 R1= -13.905 ;保证切削至尺寸 N140 GOTO 70 N150 ENDIF N160 ENDWHILE N170 G01 X40 N180 Z-65 N190 X50 凸椭圆子程序 名称:tu1.iso N10 G01 X25 Z0.5 N20 X30 Z-2 N30 Z-15 N40 X40 N50 Z-26.095 N60 R1= 13.905 N70 WHILE R1>=-13.905 N80 R2=2*8*SQRT(1-R1*R1/15/15) N90 G01 X=34+R2 Z=R1-40 ;“X=34+R2”椭圆中心距加上X向值即可,“Z=R1-40”椭圆中心减去工件坐标系起点数值 N100 IF R1 == -13.905 GOTO 170 ;避免发生死循环 N110 R1=R1-0.5 N120 IF R1 < -13.905 N130 R1= -13.905 ;保证切削至尺寸 N140 GOTO N70 N150 ENDIF N160 ENDWHILE N170 G01 X40 N180 Z-65 N190 X50