返回首页 hi, 欢迎来到机器人在线 请登录/ 免费注册 订阅邮件
有疑问,咨询在线客服

【ABB】情人节来了,ABB机器人写了一首情诗送给你

时间:2020-02-14 来源:上海ABB工程有限公司 阅读:3104

只需要打字输入内容,自动转化为各种好看的手写体,ABB机器人就会替你写~~


今天又是特殊的日子,大家有没有带起送花送情诗呢?

比如下面这束花,大概是价值千金吧~

在这个特殊的日子,机器人也写了首情诗,送给大家(情诗作者:徐志摩),习惯了有你,如果没有你,生活还有什么意义呢?一切都加油!!!

可以通过很多现成软件,将文字转化为G代码(很多软件也可以模仿你的手写体),机器人读取G代码,撰写好看的情书,送给心上人。

以下为一段G代码举例

G21

G90

S1000

F3000

G0Z0

M5

G4 P0.2

G0 X33.229999542Y-30.100006104//快速移动到起点

M3S1000 //主轴转动,对应写字机器人的下压

G4 P0.2//等待0.2s

G1 X33.867343903Y-29.832427979 //直线移动到该点

G1 X34.590003967Y-29.309997559 //直线移动到该点

M5 //主轴停止,写字机器人抬笔

G4 P0.2

G0 X34.290000916Y-28.149993896

M3S1000

G4 P0.2

G1 X34.320003510Y-28.661743164

G1 X34.265762329Y-29.248168945

G1 X33.940002441Y-30.809997559

M5

G4 P0.2

G0 X31.800001144Y-31.890014648

M3S1000

G4 P0.2


对应上述G代码,可以编写如下机器人读取代码进行转化,将xy位置记录入数组。

 FOR i FROM 1 TO 7 DO

            stmp:=ReadStr(iodev1);

        ENDFOR

        !linenum : total line numbers

        !ppline{}: point numbers in each line

        !

        count:=1;

        linenum:=0;

        WHILE stmp<>EOF DO

            stmp:=ReadStr(iodev1);

            s_gode:=StrPart(stmp,1,2);

            TEST s_gode

            CASE "G0":

                linenum:=linenum+1;

                IF StrPart(stmp,1,5)<>"G0 X0" then

                 ppline{linenum}:=ppline{linenum}+1;

                s_x:=StrPart(stmp,5,5);

                s_y:=StrPart(stmp,StrFind(stmp,1,"Y")+1,5);

                flag1:=StrToVal(s_x,pointx{count});

                flag1:=StrToVal(s_y,pointy{count});

                count:=count+1;

                ENDIF

            CASE "G1":

                ppline{linenum}:=ppline{linenum}+1;

                s_x:=StrPart(stmp,5,5);

                s_y:=StrPart(stmp,StrFind(stmp,1,"Y")+1,5);

                flag1:=StrToVal(s_x,pointx{count});

                flag1:=StrToVal(s_y,pointy{count});

                count:=count+1;

            ENDTEST

        ENDWHILE

        linenum:=linenum-1;

       Close iodev1;

机器人执行如下代码,进行写字

    SingArea\Wrist;

        ConfL\Off;

        FOR i FROM 1 TO linenum DO

        ! linenum为线条总数量

            p30.trans.x:=pointx{count}*ratio;

            p30.trans.y:=pointy{count}*ratio;

            p30.trans.z:=10;

            MoveL p30,v500,fine,tool20\WObj:=wobj20;

             p30.trans.z:=0;

            MoveL p30,v500,fine,tool20\WObj:=wobj20;

            set do0;

            FOR j FROM count TO ppline{i}+count-1 DO

            !每一条线内点的个数

                reg1:=j;

                p30.trans.x:=pointx{j}*ratio;

                p30.trans.y:=pointy{j}*ratio;

                p30.trans.z:=0;

                MoveL p30,v500,z10,tool20\WObj:=wobj20;

            ENDFOR

            MoveL p30,v500,fine,tool20\WObj:=wobj20;

            reset do0;

            p30.trans.z:=10;

            MoveL p30,v500,z10,tool20\WObj:=wobj20;

            count:=count+ppline{i};

        ENDFOR

        p30.trans.z:=50;

        MoveL p30,v500,fine,tool20\WObj:=wobj20;

好的文章,需要您的鼓励

8

  • 最新文章
  • 精品案例
  • 现货产品
延伸阅读 热门要闻