cad vba编程从入门到精通_001.ABB机器人编程-从入门到精通 String-进阶骗

081d89f2c14d4632322fb3d0231dbb10.png

String进阶篇

目录

  1. String的用处
  2. Sting指令的理解

1.String的用处

a).解决Num计算超出限制的问题

【知识 点】:我们查看手册可以知道Num的取值范围是:-8388607 到+8388608

【造成困扰】:如果我们的取值范围或者计算过程中出现上限或者下限溢出的问题有时候系统会提示错误有时候并不会提示,最终导致计算的结果是错误的。

【测 试】:我们把 8388608 + 8388608 = 16777216 进行测试

    VAR stringdig strdig_1:="8388608";
    PERS string Num_res:="1.67772E+07";
    PERS stringdig StringDig_res:="16777216";

PROC StringDigTest()  
         StringDig_res := StrDigCalc(strdig_1, OpAdd, strdig_1);
         Num_res:=valtostr(8388608+8388608);       
ENDPROC

程序中得到的结果分别存储在StringDig_res和Num_res中,可以看到StringDig显示的结果是16777216,Num_res则丢失了后面的16。

程序中我采用了StringDig变量,这个变量会在数值超过Num范围的时候转成特定的字符串进行操作结果返回 String 这样就完美结果了数值范围超出造成的精确度丢失。

有人也许会提出为什么不用Num转成DNum进行计算,这个主要问题是Num和Dnum进行相互转换的时候会有精度丢失在数值的小数点后面会有很多小尾巴。在进行矩阵运算的中间过程产生的数据异常巨大数据丢失的精度也会很多,最终导致结果可能不够精确。当然一开始就使用Dum进行计算结果用DNum保存也就避免了问题。同样是用StringDig也是同样的效果。最后再通过 StiToval 进行转换到Num也是一种办法。

Dnum的取值范围是 -4503599627370496至(+)4503599627370496。

StingDig是Long Int 类型,对就是Int REPAID底层就是用其他语言实现的 我有一个猜测以后我有机会再分析。


2.String指令的理解

常用的字符串处理函数有:StrFind,StrLen,StrPart等等

利用StrLen获取字符串的长度,再利用StrFind获取关键Key字符串(需要查找的字符)的小标,最后利用StrPart进行函数的截取。下面是简单的函数使用测试:

    PROC FindString()
        VAR string Robot_String:="Robot-1200";
        VAR num len;
        VAR num index;
        VAR string part;
        !Steps:
        !获取字符的长度
        !获取Key字符串的下标
        !进行字符的截取
        !显示结果
        len:= StrLen(Robot_String);
        index:= StrFind(Robot_String,1,"1");
        part:=StrPart(Robot_String,index,len-index+1);
        TPWrite("part "+ part);
  ENDPROC

但是我个人喜欢下面的程序写法风格:

        TPWrite
            (
            StrPart(Robot_String,
            StrFind(Robot_String,1,"1"),
            StrLen(Robot_String)-StrFind(Robot_String,1,"1")+1)
           );

看每个人的写程序的风格,这样写会牺牲一点性能,当然这种情况也有其他的思路解决,这要归功于RAPID的灵活和函数的多样,ABB一直再更新这些函数。

另一种思路:我们发现 1200和前面的字符完全不同于其他是数字,我们便可以搜寻第一个数字然后停止检索。

    index:=StrFind(Robot_String,1,STR_DIGIT);

STR_DIGIT是一组数字集合所以一旦匹配到数字结合数字就停止匹配。这样可以让代码实用性更加的广泛。而不是一定要是1200也可以是6400当然这个只是一个例子并不是和贴切。

另一种思路:采用另一种指令模块匹配,采用StrMatch函数 代码示例如下:

    index:=StrMatch(Robot_String,1,"1200");

直接在被检索的对象中检索“1200”这样代码是针对性比较强的,如果匹配的字符类型比较多的话可以采用函数化的写法将“1200”参数化,这样代码编写也能起到不错的效果,省去了下次反复代码的烦恼。

其他我比较喜欢的几个String函数

StrMap(String Mapping)可以实现字符的转化,最经典的就是完成大小写的转化,下面我会给出示例代码:

    PROC StringMapping()
        VAR string str;
        str := StrMap("abb robot",STR_LOWER, STR_UPPER);
        TPWrite(str);
    ENDPROC
 

5696fce4bb51a4039e02b56b0de3ee76.png

最终在屏幕上输出的结果是:ABB ROBOT的大写情况。在需要切换大小的情况下省去了很多的麻烦,同时如果需要大写切换成小写也把StrMap的函数最后两个参数STR_LOWER和STR_UPPER进行位置调换,函数简单而且易于阅读。

StrToVal (String To Value)将String转换成一个任意的其他变量。这个在通讯过程中经常使用到代码示例如下:

    PROC StringToVal()
        VAR string str15 := "[100, 200, 300]";
        VAR bool ok;
        VAR pos posval;
        ok := StrToVal(str15,posval);
        TPWrite "Pos: "Pos:=posval ;
    ENDPROC

fb24f8076e27d2538312f70e0188a6e0.png

代码是直接将字符串转化成Pos类型,要换成不能类型只需要切换StrToVal的第二个参数就可以,它可以根据不同的类型输入转成不能的数据并赋值。

以上便是我感觉常用的几个关于String的几个函数。

后续我会给出我很久以前写的String相关的函数和大家分享参考。

最后大家中秋快乐。

--2019-9-24

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CADVBA编程是一种基于CAD软件自带的编程语言Visual Basic for Applications(VBA)进行二次开发的技术。这种编程方法可以帮助用户在CAD软件中实现更加高效、灵活的设计和操作。下面我将用300字详细介绍从入门到精通CADVBA编程的内容。 首先,在入门阶段,学习者需要了解VBA编程的基础知识,包括语法结构、数据类型、变量、运算符、控制语句等。此外,还需要熟悉CAD软件的基本功能和界面操作,对CAD软件的对象模型有一定的了解。 接着,学习者可以开始进行CADVBA编程的实践。通过实际案例的引导,学习者可以学习如何使用VBA语言编写各种CAD设计和操作的代码。这些代码可以用来自动完成常见的CAD设计操作,比如绘制图形、修改图形属性、创建动态参数、生成报表等。同时,学习者还可以学习如何通过编程来扩展CAD软件的功能,比如自定义命令、菜单和工具栏,实现个性化的工作流程。 进一步,学习者可以学习一些高级的CADVBA编程技巧。比如,如何通过VBA与其他编程语言(如C#、Python)进行交互,如何使用.NET接口开发CAD插件,如何使用VBA编写高效的算法等。这些技巧可以帮助学习者进一步提高编程效率和代码质量。 最后,对于成为一名精通CADVBA编程的专家来说,需要不断地进行实际项目的实践和学习更新的技术。在实践中,学习者可以遇到各种复杂的问题和挑战,通过解决这些问题来提高自己的编程能力。同时,及时关注CAD软件的新功能和更新,学习和掌握最新的编程技术和方法。 总之,CADVBA编程从入门到精通需要系统学习和大量实践。通过掌握VBA编程基础知识,深入理解CAD软件的对象模型,结合实际项目的实践,不断提升自己的编程能力,最终可以成为一名精通CADVBA编程的专家。 ### 回答2: 《CAVDBA编程从入门到精通PDF》是一本关于CAVDBA编程语言的学习教材,它可以帮助读者从入门到掌握该编程语言。 CAVDBA是一种用于数据库管理和编程的语言,它在企业级应用系统中广泛使用。《CAVDBA编程从入门到精通PDF》将为读者提供学习该语言的全面指导。 该书的内容分为几个部分。首先,它会介绍CAVDBA编程语言的基础知识,包括语法、数据类型和变量等。读者可以通过理解这些基础知识,建立起对CAVDBA编程的基本理解。 接下来,书中会详细介绍CAVDBA编程中常用的操作和技巧。例如,如何创建和管理数据库,如何查询和更新数据,如何编写函数和存储过程等等。这些内容将帮助读者逐步提升自己的编程能力。 此外,《CAVDBA编程从入门到精通PDF》还会介绍一些高级主题,如性能优化、安全性和故障排除等。这些内容将帮助读者更深入地了解CAVDBA编程,并解决实际应用中可能遇到的问题。 该书还会提供一些实际项目和练习,以帮助读者巩固所学内容。通过完成这些练习,读者可以实际运用所学的知识,提升自己的实践能力。 总的来说,《CAVDBA编程从入门到精通PDF》是一本全面而详细的教材,旨在帮助读者系统地学习CAVDBA编程语言。读者可以根据自己的学习进度和需求,逐步提升自己的编程技能,达到精通的水平。 ### 回答3: "Cadvba编程从入门到精通"是一本面向CAD软件中VBA编程学习的教材。该书逐步引导读者了解VBA的基础知识,从入门到掌握编程技巧。 首先,该书通过简单易懂的语言介绍了VBA编程的基本概念和原理。读者可以学习如何在CAD软件中运用VBA进行自定义脚本编写,从而实现更多的功能和操作。 其次,书中提供了大量实例,通过示范具体编程实践,读者可以深入了解VBA编程的应用场景和技巧。这些实例涵盖了常见的CAD软件操作,例如创建和编辑图形、批量处理图纸等。读者通过模仿实例编写自己的代码,不断实践,从而提高编程水平。 此外,该书还涵盖了VBA编程的高级主题,如面向对象编程错误处理和调试等。这些内容使读者能够更好地掌握编程技能,提高编程效率和程序的质量。 最后,在书的结尾部分,该书提供了一些进阶内容,如与其他编程语言的集成、自定义用户界面等。这些内容帮助读者拓展自己的技能,实现更为复杂的功能。 总之,"Cadvba编程从入门到精通"是一本循序渐进的VBA编程学习教材。通过阅读该书,读者可以从基础到精通逐步提升自己的VBA编程水平,并能够在CAD软件中更加灵活和高效地应用VBA编程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值