变量

变量可以有七个操作数类型:整数、实数、字符串、点、特征指针、数组或函数。变量通过 ASSIGN 语句存在和接收到它们的值和类型。变量 ID 可以是任何不以数字开头的数字字母字符串。变量 ID 中还可以使用下划线,只要下划线不是第一个字符。

变量值在执行之间保存。这意味着如果例程停止后重新启动,执行停止时的变量值与重新开始执行时的变量值相同。

注:如果“编辑”窗口为活动窗口,当光标位于字段中时,PC-DMIS 将指出变量的当前值。在执行过程中,变量值将依据执行的程序流而更改。将鼠标指针放在所需变量上,查看其当前值。

ASSIGN/ V1 = 2.2+2
变量 V1 为一个值为 4.2 的实数。

ASSIGN/ VAR1 = CIRCLE1.X
变量 VAR1 为一个实数,其值等于赋值时 CIRCLE1.X 的测量值。

ASSIGN/ MYVAR = LINE1.XYZ
变量 MYVAR 为一个点,其值等于赋值时 LINE1 的测量质心。

ASSIGN/ SVAR = "Hello World"
变量 SVAR 为字符串,值为 "Hello World"

在这些例子中,变量已经赋值。一旦为变量赋值,变量可以作为任何表达式字段的操作数使用。

这里,V1 用在数字字段中。它被用作 prehit 命令的 prehit 值:

ASSIGN/V1=1/3PREHIT/V1

由于表达式可以在大多数可编辑字段中使用,因此以下表达式也是有效的,并且具有相同的作用:PREHIT / 1/3。

点类型的变量的分量可以分别使用用于引用的点扩展名表示法进行引用。

ASSIGN/ V1 = MPOINT(3, 4, 5)
V1 是值为 3, 4, 5 的点型

ASSIGN/ XVAR = V1.X
XVAR 是值为 3 的双精度型

ASSIGN/YVAR=V1.Y
YVAR 是值为 4 的双精度型

ASSIGN/IVAR=V1.I
IVAR 是值为 3 的双精度型

ASSIGN/REDUNVAR=V1.XYZ
REDUNVAR 是值为 3, 4, 5 的点型

以下扩展名是等价的。提供两种扩展名是为了解释测量例程中表达式的含义。

如果 V1 属于点类型。

V1.X 与 V1.I
相同 V1.Y 与 V1.J
相同 V1.Z 与 V1.K 相同

V1.XYZ 与 V1.IJK 和没有扩展名的 V1 相同。

如果字符串类型的变量的字符串值等于特征 ID 的名称,该变量可以作为引用对象使用:


ASSIGN/V1="CIRCLE1"

如果存在名为 CIRCLE1 的特征,以下操作数可以是有效的。

V1.X - CIRCLE1 的 X 测量值
V1.TX - CIRCLE1 的 X 理论值
V1.Diameter - CIRCLE1 的测量直径
V1.Radius - CIRCLE1 的测量半径

字符串变量可以使用的间接引用仅限于同一级别的间接引用。以下引用无效。

ASSIGN/V1="CIRCLE1"
ASSIGN/V2="V1"

V2.X - 求值结果为 0 而非 CIRCLE1.X 的当前测量值。

引用 V2.X 不会使用红色文本标记为错误,即使上面的表达式将其类型设置为字符串。不标记为错误的原因就是,执行前测量例程的执行流未知。

不过,如果使用大括号,以下代码有效:

ASSIGN/V1={CIRCLE1}
ASSIGN/V2={V1}

V2.X - 将获得 CIRCLE1.X 的值。

参见下例:

ASSIGN/ V1 = "CIRCLE1"
ASSIGN/ V2 = "V1"
IF / CIRCLE1.X > CIRCLE1.TX, GOTO, L2
L1 = LABEL /
ASSIGN/ V3 = V2.X
GOTO / LABEL, L3
L2 = LABEL /
ASSIGN/ V2 = MPOINT( 2, 5, 7)
GOTO / LABEL, L1
L3 = LABEL /

如果例程执行过程中,CIRCLE1.X 值大于 CIRCLE1.TX 值,则表达式 V2.X 将有效且等于 2。否则,表达式 V2.X 等于 0,因为 V2 值在赋值给 V3 时为字符串 "V1"。在这些情况下,应由零件程序员来确保表达式将按预期操作。

几乎所有特征引用均可以在赋值语句左侧使用,在特征的测量或理论数据成员中置入一个值。但矢量的 I、J、K 分量除外。要为矢量赋值,必须采用结果为点的表达式,为整个矢量赋值。矢量数据在输入特征的矢量数据成员时执行规范化。

ASSIGN/ CIRCLE1.I = 2 - 无效
ASSIGN/ CIRCLE1.IJK = MPOINT(2, 0, 0)-有效(矢量规范化为 1, 0, 0)

有关在尺寸中使用变量的信息,请参见“使用传统尺寸”一章中的“尺寸变量”主题。