| # 约束条件编辑器 约束条件表达式的语法 约束条件表达式语法是 LN 工具语法的子集。可以使用下面的基本说明来写约束条件表达式。 算术运算符： *（乘） /（除） +（加） -（减） \（相除后的余数） &（链接字母数字数组） 逻辑运算符： OR AND 否 关系运算符： =（等于） >（大于） >=（大于或等于） <>（不等于） <（小于） <=（小于或等于） 域表达式 A 是 {a1,a2,a3-a4,..} 表示：（A=a1 或 A=a2 或 a3 >= A <= a4 等等）。 域表达式语法是一定范围内变量的逻辑表达式的简单符号表示。 表达式的优先级 算术运算符比关系运算符具有更高的优先级。 关系运算符比逻辑运算符具有更高的优先级。 字母数字运算符的优先级顺序： * / \ + - 逻辑运算符的优先级顺序：NOT、AND、OR 可以使用圆括号（“()”）来更改字母数字和逻辑运算符的优先级顺序。 示例 3 + 4 * 5 = 23 (3 + 4) * 5 = 35 布尔表达式 布尔表达式具有值真或假 (1 或 0)。这种表达式可以用于约束条件，尤其是条件表达式。 示例 If not e then ' 表示： If e = false then' 或 If e = 0 then' If-then-else 结构 可以在约束条件中使用扩展的 if-then-else 结构。允许嵌套声明。 示例 If expression1 then expression2 else expression3 endif If-then-else 结构通常以 endif 语句结束。使用 else 语句不是必备的。If、else 和 endif 语句通常用于开始一个新行。（条件）表达式可以分成几行。验证约束条件可以不使用 if-then-else 语句定义；但这个约束条件必须用 c: 开始。 可以使用 | 符号为约束条件提供注释。配置过程中，可以使用变量消息（最多 80x25 行文本）生成消息。 约束条件变量 全局变量和局部变量都可以在约束条件表达式中使用。全局变量是声明为全局的产品特性和自定义的约束条件变量。由产品配置器预定义的变量，如输入、显示、长度、宽度等都是局部变量。全局变量在整个配置过程中保留自己的值，除非它们的值被更改。 约束条件变量可以具有下列类型的声明： 字符串型（字母数字）（例如：string machine global） 长整型（整数）（例如：long i） 双精度型（小数）（例如：double j） 自定义的约束条件变量必须在约束条件的开始声明。在执行约束条件前将初始化所有局部变量：清除字母数字变量，数字变量值归零。用值真来初始化全局变量输入和验证。 约束条件变量用法 产品特性在约束条件表达式中必须有开始和结束方括号 ([......])。其它变量可以在表达式中直接使用。字母数字变量（字符串数组）可以根据下列符号进行索引：(startposition[;length])。 示例 [颜色] = "red" 验证 = 真 变量的值可以是字母数字或数字。字母数字值必须写在引号中 ("....")。数字值可以直接输入。小数符号是一个点（“.”）。 示例 machine(1;2) = "A5" volume = 28.673 常量真/假可用于布尔表达式。 算术函数 round(X,Y,Z)：得出 X 的舍入值；Y 表示小数位数，Z 是舍入方法（0 = 下舍入，1 = 四舍五入，2 = 上舍入） val(A)：得出字符串 A 的数字值 (val("8.7") = 8.7） abs(X)：计算 X 的绝对值 (abs(-10.3) = 10.3) int(X)：得出 X 的整数值 (int(11.6) = 11) pow(X,Y)：X 的 Y 次幂 (pow(10,2) = 100) sqrt(X)：得出 X 的平方根 (sqrt(16) = 4) min(X,Y)：得出 X 和 Y 的最小值 (min(6,10) = 6) max(X,Y)：得出 X 和 Y 的最大值 (max(6,10) = 10) pi：常数值 PI (3.1415926...) 测角函数 sin(X)、cos(X)、tan(X)：得出 X （射线）的正弦、余弦或正切 asin(X)、acos(X)、atan(X)：得出 X 的反正弦、反余弦或反正切 hsin(X)、hcos(X)、htan(X)：得出 X 的双曲正弦、双曲余弦或双曲正切 对数函数 exp(X)：X 的 e 次幂 log(X)：得出 e 为底的 X 的自然对数 log10(X)：得出以 10 为底的 X 的对数值 字符串函数 edit(X,Y)：以格式 Y 格式化数字值 X (edit(10.3,"ZZZ9V.99") = " 10.30") str(X)：将数字值转为字符串 (str(10.3) = "10.3") len(X)：得出字符串 X 的长度 (len("abc") = 3) strip(X)：删除最后字符后的空格 (strip("A ") "A") pos(X,Y)：在字符串 X 中从左边得出字符串 Y 的位置 rpos(X,Y)：在字符串 X 中从右边得出字符串 Y 的位置 日期函数 date()：得出从第 0 天到当前日期的天数 date(y,m,d)：得出从第 0 天到输入日期的天数 示例 date(1995,06,01) = 728445 |