首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

宏程序是个好东西编程也不难,学会迈进一大步

大能手CHNdanengshou

国内最大的综合型职业技能平台,帮助职业技术人员成长,推动社会和企业的技能水平发展。

数控加工过程会遇到一些非圆曲线,如椭圆,双曲线,抛物线以及编写大批相似零件的情况,这时可以用宏程序编写:只需改几个数据,便可避免大量重复编程,可见宏程序的优势显而易见。

下面数控专家周维泉老师举例说明了宏程序的思路和方法,感谢周老师的分享。

———— / BEGIN / ————

如图1所示的零件上有圆弧剖面螺旋槽,槽半径10mm,螺距25mm,外径93.82mm,槽圆弧中心在直径100mm的圆上。用图示R1.2的刀做精车,起刀位置取在槽心离端面50mm处。精车决定分19刀。

图1,用图示刀分19刀精车一个零件上的圆弧剖面螺旋槽

用刀尖圆心对刀和编程。图2是起刀位置的放大图。各刀起刀点的刀尖圆心位置都在R8.8的圆弧上,分19刀时相邻两刀的夹角为扇形角的18等分,是8°。

图2,起刀位置放大图

图3是从图上标注出的19个起刀位置点的指令值(X向是坐标值的两倍)。

图3,从图上标出19个起刀位置点的指令值

O1是用发那科G32指令编出的精车此零件的普通程序(也叫NC程序),为省篇幅略去了中间60段。

O1;(分19刀发那科系统NC程序,共76+6=82个段程序段,为找规律加了注释)

G54 S1000 M03;

T0101;

G00 X150 Z100;

N01 G00 X140;

N02 Z58.369; (Z1=50+8.8*cos18°)

N03 X94.561; (X1=100-17.6*sin18°)

N04 G32 Z-113 F25;

N05 G00 X140;

N06 Z57.909; (Z2=50+8.8*cos26°)

N07 X92.285; (X2=100-17.6*sin26°)

N08 G32 Z-113 F25;

……(略去N09~68段)

N69 G00 X140;

N70 Z42.091;(Z18=50+8.8*cos154°)

N71 X92.285; (X18=100-17.6*sin154°)

N72 G32 Z-113 F25;

N73 G00 X140;

N74 Z41.631;(Z19=50+8.8*cos162°)

N75 X94.561; (X18=100-17.6*sin162°)

N76 G32 Z-113 F25;

G00 X140;

X150 Z100 M05;

M30;

程序中每一刀用4段,第二段是Z向到达起始位置;第三段是X向到达起始位置。这对指令数据是从图3中抄录的。车19刀用76段,加上头尾这个NC程序共82段,很长。

如果试车后觉得17刀就够了(这时相邻两刀间的夹角是9°),那么重新编程前图2要重画,图3要重标指令值。改一次分刀数,以上工作要做一遍,非常麻烦。下面来编内含变量、演算式和条件转向语句的宏程序。

图4是在图2的基础上加画了一个直角三角形。从01内的注释结合图4可以看到,这19组数据是有规律的。图中α是圆心与某点连线与X轴的夹角。直角三角形的斜边长等于槽半径减去刀尖半径。动点的Z指令值等于50与斜边长乘以α的余弦之和,X指令值等于100与斜边长乘以α的正弦后的两倍之差。

图4,各起刀位置点的指令值与其对应的α角度值的关系图

O2是用发那科G32指令编出的精车此件的宏程序,编这个宏程序只用了3个变量(其中2个变量需要赋值),下面做介绍。

O2;(发那科系统用3个变量的宏程序,共15个段程序段)

N01 #8=18; (#8代表刀尖圆心点所在的角度α,此赋初始值)

N02 #7=19; (#7代表精车分刀数N)

N03 #15=144/[#7-1]; (#15代表两刀间的角度间隔α)

N04 G54 S1000 M03;(设定坐标系指定转速指定主轴正转)

N05 T0101; (指令刀位号和刀补号)

N06 G00 X150 Z100; (到达总出发点)

N07 G00 X140; (X向到达车螺纹每刀出发点)

N08 Z[50+8.8*COS[#8]]; (动点的Z值)

N09 X[100-17.6*SIN[#8]]; (动点的X指令值)

N10 G32 Z-113 F25; (车一刀)

N11 #8=#8+#15; (计算下一刀的α值)

N12 IF [#8 LE 162] GOTO 07; (如果α未超过162°就继续车)

N13 G00 X150; (X向回到总退回点)

N14 Z100 M05; (Z向回到总退回点)

N15 M30;

用变量#8代表角度α(也可以用别的号码变量),N01段中给它赋初始值即第1刀的α值。用变量#7代表分刀数(也可以用其他的号码变量),决定分19刀就给它赋19值。变量#15代表两刀间的角度间隔Δα,它等于扇形角除以分刀数减1。#15是计算过程中用的过度变量,不用赋值。

N07~N10是车一刀的四段,其中中间两段内的Z和X指令的不是具体数据而是演算式。N11段是计算下一刀的α值。N12段是条件转向语句,其含义为:如果α(#8)小于等于(发那科不能直接用

这个宏程序才15段。欲改变分刀数(例如想改成分17刀车),只要改N02段中#7等式后的值(例如改成17)就可以了,使用非常方便。

编这个宏程序难吗?也不难。您觉得提高效率吗?是否可以为您带来一些操作灵感,欢迎大家留言讨论。

公众号:大能手

-END-

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180418A1GSQ500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券