[原创]表达式高级技巧---自己动手做标准模架。
其实我们利用ug的表达式也可以进行一些简单的标准件开发工作,当然早已有了标准库,在这里我也只想跟大家讨论一下表达式的应用。
就以模架为例吧!我看到很多的帖子,也都是用表达式来实现更改模架的大小,但他们的都有一个缺点,就是每次输入型号后,还要输入导柱的直径,中心距等,那每次用不同的模架的时候都要查书了,导柱的直径,中心距等都是在确定了模架的型号后已经很明确了,我们提前开发就要做到这一点。
如何实现,我们一个一个数据来讨论。
首先是模架的长和宽,这里我用l来表示长,w来表示宽,number表示型号,这两个容易实现,我们把模架(这里以lkm为例)的型号分成两种情况,1、四位数、2、五位数(只有),那么很明显,第2种情况都是大于9999的数字!于是我们就可以写出如下表达式:
number=3035
w=if(number<9999)(w_1)else(w_2)
w_1=trnc(number/100)*10
w_2=trnc(number/1000)*10
l=if(number<9999)(l_1)else(l_2)
l_1=(number-trnc(number/100)*100)*10
l_2=(number-trnc(number/1000)*1000)*10
用了这些表达式,系统就可以自动判断出l等于350、w等于300,改变number后l、w作相就的改变。
接下来,我们来看看导柱的直径,用gp表示,导柱的直径有9种情况,不要被吓到,更难的在后面。由于ug的函数不可以嵌套,那我们要建立一些中间变量,比如:gp_1、gp_2等等,这样我们就可以写出如下表达式:
gp=if(number>=1515&&number<1820)(16)else(gp_1)
gp_1=if(number>=1820&&number<2525)(20)else(gp_2)
gp_2=if(number>=2525&&number<3030)(25)else(gp_3)
gp_3=if(number>=3030&&number<3550)(30)else(gp_4)
gp_4=if(number>=3550&&number<4545)(35)else(gp_5)
gp_5=if(number>=4545&&number<5555)(40)else(gp_6)
gp_6=if(number>=5555&&number<7070||number==65100)(50)else(gp_7)
gp_7=if(number>=7070&&number<8080||number==75100)(60)else(gp_8)
gp_8=if(number>=8080&&number!=65100&&number!=70100&&number!=75100)(70)else(1)
如果你直接在ug的表达式管理器中输入,要从最后一条开如输入,这个叫顺序判断法,数据多的时候有缺点,那就是层次太深,你看如果你的模架型号为75100,那么系统就要计算所有的表达式。
常用正则表达式
2.d 非负整数 正整数 0 3.0 9 1 9 0 9 正整数。4.d 0 非正整数 负整数 0 5.0 9 1 9 0 9 负整数6.d 整数。7.d d 非负浮点数 正浮点数 0 8.0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮点数。9.d d ...
常用正则表达式
表达式 0 9 功能 匹配1 20位数字。类型 数字。长度 1 20位。扩展 0 9 a za z0 9 功能 匹配5 20位以字母开头 可带数字 的字串。类型 以字母开头 可带数字 的字串。长度 5 20位。表达式 a za z 功能 匹配1 30位由大小写字母组成的串。类型 由大小写字母组成的串...
常用正则表达式
正则表达式用于字符串处理 表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。用户名 a z0 9 密码 a z0 9 十六进制值 a f0 9 a f0 9 电子邮箱 a z0 9da za z url httpsda za z w ip 地址 25 0 5 2 0 4 0 9 ...