中华DIY论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3403|回复: 0
打印 上一主题 下一主题

用数学方程式编写数控宏程序

[复制链接]
  • TA的每日心情
    开心
    2023-4-10 12:47
  • 签到天数: 1528 天

    [LV.Master]伴坛终老

    637

    主题

    2503

    帖子

    3万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    36144
    跳转到指定楼层
    楼主
    发表于 2019-1-21 12:51:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    用数学方程式编写数控宏程序
    前段时间,有一师傅接了一批零件,其中有一处需要在数车上加工类似曲线的轮廓外形,这师傅在数控这行也干了快10多年了, 眼看没招,不知道程序如何编写程序,因为他不会宏程序,遇到这种曲线类的零件就傻眼了。

    零件简图如下:


    老师傅的您觉得如何编写此零件的程序?欢迎留言交流。

    X=0.03*Z²+8为此零件曲线方程式。

    你若站在行业高度来看,这类产品种类非常多:
    比如抛物线;
    比如椭圆;
    比如波浪线;
    比如双曲线;
    比如卡门曲线;
    比如正玄曲线;
    等等曲线程序如何编程?
    你可能会想,这类零件编程“太复杂”了吧,而且工作中遇到的大多都是些规则零件,想想就难,还是不学了吧。
    一个人,总站在自己角度去考虑,路会越走越窄!

    一个人,总能站在更多角度考虑,就会越来牛逼!
    今天军哥给你传授一招:利用数学方程式的套路编写数控宏程序,让你瞬间NB起来。

    这一招只需两步骤:
    第一步:设定变量带入方程式

    第二步:利用方程式算坐标点
    如何来应用这两步呢?直接看例子!

    比如下图的曲线X=0.03*Z²+8



    你还可能会想,我数学不好,数学公式还不知道什么意思,甚至有些还没听说过。
    军哥再次强调:
    知道某个方程式不NB,能应用方程式才NB,你若能利用军哥传授的利用数学方程式的套路来编写数控程序那就更NB。

    仔细看上面零件图很容易知道:
    1,这个曲线方程式中Z的取值范围是从0到16

    2,在这个范围(0~16)之间,给Z一个数值,就会有对应的X值。X,Z之间的数值满足此方程式X=0.03*Z²+8

    好,上面两点,很容易理解。

    第一步:设定变量带入方程式
    非常的简单,比如法拉克机床的变量是由“#”和“数字”组成,如#1,#2,#3等等。

    随便指定两个变量带入方程式:X=0.03*Z²+8

    如:

    #1代表Z。

    #2代表X。

    那么上面方程式就是下面这个方程式了:

    #2=0.03*#1*#1+8

    第二步:利用方程式算坐标点

    #2=0.03*#1*#1+8是X=0.03*Z²+8的方程式。

    #1代表(曲线)Z轴的数值。

    #2代表(曲线)X轴的数值。

    其中:

    1,方程式中#1的取值范围是从0到16。

    2,在这个范围(0~16)之间,给#1一个数值,就会有对应的#2值。#1,#2之间的数值满足此方程式#2=0.03*#1*#1+8。

    比如:#1=0,那么对应的#2值就等于:8

    因为把#1的数值代入方程式即可计算出#2的数值。

    同理,若:

    #1=1,那么#2=8.03

    #1=2,那么#2=8.12

    #1=3,那么#2=8.27

    ….

    #1=16,那么#2=15.68

    假如,#2取的数值越多,点位就越多,然后这些点位之间用小线段连接起来,就构成了此方程式的曲线。若这些点位非常的密集,那么用G01X#1Z#2  插补走出来曲线就越光滑。

    那么具体如何利用方程式计算坐标点?

    答:变量的自增运算。

    法拉克的机床变量自增运算格式如下:

    #1=0

    N1#2=0.03*#1*#1+8

    ……..加工程序

    #1=#1+0.1

    IF [#1LT16]GOTO1

    程序由上往下依次运行,当运行到IF语句

    是的,如果[#1LT16]就跳转至指定的N1程序段,又从N1程序段开始往依次往下运行程序,即:

    读取N1#2=0.03*#1*#1+8这个数学方程式。


    读取:…….数控程序。


    读取变量#1=#1+0.1自增运算。


    读取IF [#2LT16]GOTO1语句。

    就这样通过变量的自增运算,计算出#1,#2的数值。



    说明:

    变量的自增#1=#1+0.1,后面+0.1代表每次运算#1的值增加0.1,

    当然后面数值还可以给小点,比如0.01。数值越小,计算出的数据越多,意味这点位越密集,插补走出来曲线就越光滑。

    有了#1和#2,那么:

    在IF和N1之间合适位置添加一个程序段:G01X#2Z-#1,这就加工出曲线了。


    添加到什么位置?

    如下(红色字体位置):

    ……

    #1=2

    N1#2=0.03*#1*#1+8

    G1X[2*#2]Z-#1F0.1 (转化为直径编程,所以2*#2)

    #1=#1+0.1

    IF [#1LT16]GOTO1

    ….

    先读取#1,#2的数据,然后在运行G1X[2*#2]Z#1。


    好了,上面程序整理如下:



    很快,就完成了曲线类零件的编程。





    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1 支持支持 反对反对
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    中华DIY论坛QQ官群:205778249

    Archiver|手机版|小黑屋|中华DIY论坛  

    GMT+8, 2024-4-27 09:51 , Processed in 0.304791 second(s), 40 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表