Polyworks脚本开发学习笔记(五)-变量使用基本语法
定义变量及赋值
定义各种类型的变量
定义变量时,只需要使用DECLARE 关键字即可定义,为了区别变量和脚本中的其它字符,建议都以小写v开头并取容易区别的名称。如定义变量 DECLARE vNum 1,使用$取变量值,可在查看变量时使用MACRO ECHO ( $vNum ) ,可看到结果为1。
DECLARE vNum 定义一个数字变量
DECLARE vNum 1 定义vNum为1
DECLARE vDoub 3.14 定义vDoub 为3.14
DECLARE vNumA 1
DECLARE vNumB $vNumA 定义vNumB 为vNumA的值
DECLARE vStr “Hello” 定义一个字符串变量为Hello
DECLARE vArr {1,2,3} 定义一个数字数组{1,2,3}
先声明后定义一个数组
DECLARE vArry
SET vArry {1,2,3}
MACRO ECHO ( $vArry ) 结果为 1 2 3
SET vArry[3] 100
MACRO ECHO ( $vArry ) 结果为 1 2 100
获取数组的长度 SIZE ( $vArry )
MACRO ECHO (SIZE(vArry)) 结果为3
字符串常规保留字符使用
Polyworks脚本中除了系统关键字以外,还有以下几个保留字符
可用以上保留字符组建字符串,例如:
DECLARE vPtInd 24DECLARE vPtName "点$vPtInd" 或者 DECLARE vPtName "点${vPtInd}"MACRO ECHO ($vPtName)
结果为 点24 ,这个方法适用于给特征命名
使用$可以在编辑器中唤出保留字符如换行符,TAB,引号等
DECLARE vStr "我是张三${_NEWLINE}我来自中国,打招呼:${_TAB}${_QUOTES}你好${_QUOTES}"MACRO ECHO ( $vStr )
结果如下:
我是张三
我来自中国,打招呼: “你好”
系统保留变量的使用
还有其它系统保留字符如下,可获取各种系统变量值,使用如:
DECLARE vTempStr "安装路径 $_INSTALL_PATH"MACRO ECHO ( $vTempStr )
结果:安装路径 C:\Program Files\InnovMetric\PolyWorks MS
DECLARE vTempStr "圆周率 ${_PI}"MACRO ECHO ( $vTempStr )
结果:圆周率 3.14159
DECLARE vTempStr "当前项目路径 ${_PWK_FILES_PATH}"MACRO ECHO ( $vTempStr )
结果:当前项目路径 C:\Users\Administrator\Documents\PolyWorks\工作区 1_Files
DECLARE vTempStr "临时路径 ${_TEMP_PATH}"MACRO ECHO ( $vTempStr )
结果:临时路径 C:\Users\Administrator\AppData\Local\Temp\imtmp
DECLARE vTempStr "用户设置路径 ${_USERCONFIG_PATH}"MACRO ECHO ( $vTempStr )
结果:用户设置路径 C:\Users\Administrator.innovmetric.19
字符串变量的组合使用方法
在字符串变量后接:L或:l 将英文字符串转为小写 (L/l代表lower)
在字符串变量后接:U或:u 将英文字符串转为小写 (U/u代表upper)
DECLARE vStr "China"MACRO ECHO ( "China中国的结果小写是:${vStr:L}" )MACRO ECHO ( "China中国的结果大写是:${vStr:U}" )
在文件名字符串变量后接:e 获取文件名扩展符如txt
DECLARE vFileName "c:\abc11.txt"MACRO ECHO ( "${vFileName}的文件名后缀是${vFileName:e}")
显示结果: c:\abc11.txt的文件名后缀是txt
在文件名字符串变量后接:h 获取文件夹路径
DECLARE vFileName "c:\temp\abc11.txt"MACRO ECHO ( "${vFileName}的文件夹路径是${vFileName:h}")
显示结果: c:\temp\abc11.txt的文件夹路径是c:\temp
在文件名字符串变量后接:r 获取除文件名后缀之外的全称
DECLARE vFileName "c:\temp\abc11.txt"MACRO ECHO ( "${vFileName}的除文件名后缀之外的全称是${vFileName:r}")
显示结果: c:\temp\abc11.txt的除文件名后缀之外的全称是c:\temp\abc11
在文件名字符串变量后接:t 获取文件名称加后缀
DECLARE vFileName "c:\temp\abc11.txt"MACRO ECHO ( "${vFileName}文件名称加后缀是${vFileName:t}")
显示结果: c:\temp\abc11.txt文件名称加后缀是abc11.txt
变量的计算
自增或自减DECLARE vNum 1++vNumMACRO ECHO ( $vNum )
结果vNum自增1,值变为2
DECLARE vNum 9--vNumMACRO ECHO ( $vNum )
结果vNum自减1,值变为8
2. 使用表达式,EXPR返回原始类型值,EXPR_I返回值会取整
DECLARE vRadius 9DECLARE vPerimeterDECLARE vArea#圆周长vPerimeter = 2 π r ,面积是vArea = π*r*rSET vPerimeter EXPR (2*$_PI*$vRadius)SET vArea EXPR ($_PI*$vRadius*$vRadius)MACRO ECHO ( "圆的半径是${vRadius}${_NEWLINE},周长是${vPerimeter},${_NEWLINE}面积是$vArea")
显示结果
圆的半径是9
周长是56.5487,
面积是254.469
3. 使用函数
例如,输入一个角度,利用函数求SIN值
#求sin45°值,但系统sin函数要求输入弧度,1弧度(rad)=1°*π/180
DECLARE vAngle 45DECLARE vRad EXPR($vAngle *$_PI /180) 将角度转换为弧度DECLARE vRes EXPR(sin ($vRad) ) 求SIN弧度值MACRO ECHO ( "SIN45°的结果是:${vRes}" ) 输出结果