首页 理论教育 梯形螺纹通用宏程序

梯形螺纹通用宏程序

时间:2023-06-28 理论教育 版权反馈
【摘要】:本节学习要点1.完全掌握如何自动选择梯形螺纹牙顶间隙2.熟悉梯形螺纹参数3.吸收例题程序前一节讲了矩形螺纹通用宏程序编制。本节将介绍梯形螺纹的通用宏程序编制。由于在第5章详细地讲解过梯形螺纹,所以现在就直接编制通用程序了。记得第5章讲解梯形螺纹时,左右借刀是用了两个循环程序段,一个向左,一个向右。所以在通用宏程序例子中我把这两个功能结合到一起。

梯形螺纹通用宏程序

本节学习要点

1.完全掌握如何自动选择梯形螺纹牙顶间隙

2.熟悉梯形螺纹参数

3.吸收例题程序

前一节讲了矩形螺纹通用宏程序编制。相信有部分读者还卡在“层优先”上,但是在多线螺纹加工时,我还是首推层优先加工,好处就不说了。

本节将介绍梯形螺纹的通用宏程序编制。整体上和矩形螺纹没什么区别,直接看图吧。

例7-9(图7-16)

978-7-111-50222-7-Chapter07-30.jpg

图 7-16

对层优先的程序结构本节就不介绍了,分析下有哪些数据量会变化。

1.螺纹大径

2.螺距

3.线数

4.螺纹Z向起点

5.螺纹Z向终点

6.背吃刀量

7.Z向借刀量

8.刀宽

上面八个数据基本上已经囊括了梯形螺纹参数。但有一个参数没写到:牙顶间隙!

关于牙顶间隙是有一张表的,直接用文字描述就好。

当螺距在1.5~5mm时,牙顶间隙为0.25mm;当螺距在6~12mm时,牙顶间隙为0.5mm;当螺距在14~44mm时,牙顶间隙为1mm。上面这段话用程序表达是非常简单的,会在下面的程序中体现。

由于在第5章详细地讲解过梯形螺纹,所以现在就直接编制通用程序了。(www.xing528.com)

例7-10

主程序

978-7-111-50222-7-Chapter07-31.jpg

978-7-111-50222-7-Chapter07-32.jpg

978-7-111-50222-7-Chapter07-33.jpg

978-7-111-50222-7-Chapter07-34.jpg

程序虽然结束,但有必要把加粗的程序段(WHILE…DO3)解释下。

分析之前,要明白这段程序是干吗的。它的目的是在一个程序段内同时实现单向向左,然后单向向右借刀。记得第5章讲解梯形螺纹时,左右借刀是用了两个循环程序段,一个向左,一个向右。但这样程序会比较长,结构不紧凑。所以在通用宏程序例子中我把这两个功能结合到一起。明白作用后,开始分析程序执行过程。

首先,程序逐渐执行到第二层循环体内,发现有#14、#15两个变量。然后执行WHILE…DO3循环体。可以看到第三层循环体内有这两个语句“G0 X[#1−#11∗2]Z[#4−#14]”“G0 X[#1−#11∗2]Z[#4+#14]”。很明显,这两句的Z动作是分别向左、向右借刀。但这两个借刀动作不是同时完成,而是先彻底完成一个,再完成另一个。也就是说这两个程序段,单次只能执行一个。那如何做到这一点?我们看到在这两句前面有段“IF[#15 EQ 1]GOTO1”语句,它的意思是,如果#15这个变量的值与1相等,就跳到N1段;反之不相等的话,就不跳转。我们再看N1段后面是“G0 X[#1−#11∗2]Z[#4−#14]”。这是向左借刀。也就是说如果条件不成立,就永远不会向左借刀。因此程序是先执行向右边借刀,即执行“G0 X[#1−#11∗2]Z[#4+#14]”这个语句。执行完后,下一行是无条件跳转语句“GOTO2”,直接跳到N2段。而N2段下行就是车螺纹动作了,继续看下面的程序。螺纹动作结束了,有“IF[#14 EQ#13]THEN #15=#15+1”语句,它的意思说如果#14与#13的值相等,就把#15的值加1。我们知道#13是当前深度下,槽口总宽的一半。而#14一开始是0。所以不会这么快就与#13相等。因此这段语句不成立,#15依然是0。然后继续往下执行,来到“IF[#14 EQ#13]THEN#14=0 IF[#15 EQ 2]GOTO3”这两个语句。暂时不管它们。分析到这,我们可以肯定的是,#14的值越加越大,终究会和#13相等。假设现在#14和#13相等了,说明右侧借刀结束。那么该往左借刀了。

这时有意思的事情发生了。因为#14一旦和#13相等,就会执行“IF[#14EQ#13]THEN#15=#15+1”语句,而这个语句执行完毕,#15的值就为1,不再是0!同时下面一行语句“IF[#14 EQ#13]THEN#14=0”也会成立,把#14重新赋值0!因为要开始向左借刀,必须初始化#14的值。这时候#15是1,#14是0,下面的程序段我们暂时不看。此时会进入判断语句“WHILE[#14 LE#13]DO3”,条件不成立!因为#14又被重新赋值为0了。但是下一行语句“IF[#15 EQ 1]GOTO1”就成立了!因为此时#15已经是1。成立后,就跳到N1段,而我们发现N1段不就是向左借刀吗。它跳过了向右借刀这一步。所以,只要#15与1相等,就永远不会执行向右借刀动作!此时不但向左借刀,而且#14也重新开始计算。

最后,#14再次等于#13,而这次相等会导致“IF[#14 EQ#13]THEN#15=#15+1”再次执行,执行过后#15的值就不是1,变成了2!一旦#15的值为2,那么“IF[#15 EQ 2]GOTO3”就会成立并执行,跳到了N3段,也就是彻底退出了借刀动作。至此,两边单向借刀都完毕!

上面一堆分析需要慢慢消化,总的来讲第三个循环体逻辑上大大超过了前两节。新手可以按照之前的写法,左、右借刀各一个循环。

现在该看看程序加工的效果图(见图7-17)了。

978-7-111-50222-7-Chapter07-35.jpg

图 7-17

把螺距改为20mm,线数改为2,再看看效果图(见图7-18)。

978-7-111-50222-7-Chapter07-36.jpg

图 7-18

综合来说本节的程序结构比前面要复杂,但仔细阅读例题的分析后,其实也并没有想象的那么绕人。

本节到这就结束了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈