B类宏程序应用举例
如下图所示的圆环点阵孔群中各孔的加工,我们曾经用A类宏程序解决过这类问题,这里再试用B类宏程序方法来解决问题。
圆环点阵孔群的加工图 宏程序中将用到下列变量:
#1――第一个孔的起始角度A,在主程序中用对应的文字变量A赋值;
#3――孔加工固定循环中R平面值C,在主程序中用对应的文字变量C赋值;
#9――孔加工的进给量值F,在主程序中用对应的文字变量F赋值;
#11――要加工孔的孔数H,在主程序中用对应的文字变量H赋值;
#18――加工孔所处的圆环半径值R,在主程序中用对应的文字变量R赋值;
#26――孔深坐标值Z,在主程序中用对应的文字变量Z赋值;
#30――基准点,即圆环形中心的X坐标值XO;
#31――基准点,即圆环形中心的Y坐标值YO;
#32――当前加工孔的序号i;
#33――当前加工第i孔的角度;
#100――已加工孔的数量;
#101――当前加工孔的X坐标值,初值设置为圆环形中心的X坐标值XO;
#102――当前加工孔的Y坐标值,初值设置为圆环形中心的Y坐标值YO。 用户宏程序编写如下:
O8000
N8010 #30=#101 //基准点保存
N8020#31=#102 //基准点保存
N8030#32=1 //计数值置1
N8040WHILE[#32LEABS[#11]]DO1 //进入孔加工循环体
N8050#33=#1 360×[#32-1]/#11 //计算第i孔的角度
N8060 #101=#30+#18×COS[#33] //计算第i孔的X坐标值
N8070 #102=#31+#18×SIN[#33] //计算第i孔的Y坐标值
N8080 G90G81G98X#101Y#102Z#26R#3F#9 //钻削第i孔
N8090 #32=#32+1 //计数器对孔序号i计数累加
N8100 #100=#100+1 //计算已加工孔数
N8110END1 //孔加工循环体结束
N8120#101=#30 //返回X坐标初值XO
N8130#102=#31 //返回Y坐标初值YO
M99 //宏程序结束 在主程序中调用上述宏程序的调用格式为:
G65P8000A~C~F~H~R~Z~
上述程序段中各文字变量后的值均应按零件图样中给定值来赋值。