При заданном условии, что V1 - тип point.
V1.X то же, что и V1.I V1.Y то же, что и V1.J V1.Z то же, что и V1.K
V1.XYZ то же, что и V1.IJK и V1 без расширения.
Если переменная типа string имеет рядовое значение, равное имени id фигуры, размера или настройки, эта переменная может быть использована в качестве объекта референции.
Пример: ASSIGN/ V1 = “CIRCLE1”
Следующие операнды являются действительными и возможными при условии того, что существует фигура с именем CIRCLE1 .
V1.X – Измеренное значение X CIRCLE1 V1.TX – Теоретическое значение X CIRCLE1 V1.Diameter – Измеренный диаметр CIRCLE1 V1.Radius – Измеренный радиус CIRCLE1
Этот тип обратного направления (indirection) для переменных типа string доступен только для одного уровня обратного движения. Следующее не будет работать:.
ASSIGN/ V1 = “CIRCLE1” ASSIGN/ V2 = “V1” V2.X – Это выражение будет вычислено как ноль, вместо текущего измеренного значения CIRCLE1.X.
Примечание: ссылка V2.X не будет отмечена как ошибка красным текстом, даже хотя выражение над ней устанавливает тип string. Причина, по которой ссылка не будет отмечена как ошибочная, состоит в том, что течение выполнения программы не известно до самого конца.
Однако, если вы используете фигурные скобки, следующее не будет работать:
ASSIGN/ V1 = {CIRCLE1} ASSIGN/ V2 = {V1} V2.X – Это даст вам значение CIRCLE1.X.[CA2]
Рассмотрим следующий пример:
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 в момент ASSIGN для V3 - это ряд “V1”. Это задача программы убедиться в том, что выражения будут работать, как предполагается в подобных случаях.
Дополнительное примечание по записи Assign: Почти все ссылки на фигуры могут быть использованы в левой части записи по присвоению, чтобы поместить значение к измеренным или теоретическим элементам данных по фигуре. Единственным исключением являются одиночные компоненты векторов I, J, K. Чтобы присвоить векторам, целый вектор должен быть присвоен сразу же с помощью выражения, которое вычисляется до точки. Данные вектора нормализуются, когда он вводится в элементы данных по векторам фигуры.
Пример:
ASSIGN/ CIRCLE1.I = 2 - illegal ASSIGN/ CIRCLE1.IJK = MPOINT(2, 0, 0)-legal (vector is normalized to 1, 0, 0)
С помощью версии 3.5 и более поздних версий вы можете использовать новый тип переменной, названный конструкциями. С помощью структур можно поместите выражение на переменную, чтобы определить субэлемент этой переменной. Рассмотрим пример:
Пример:
ASSIGN/V1.HEIGHT = 6 ASSIGN/V1.WIDTH = 4.3 ASSIGN/V1.MODE = "CIRCULAR" ASSIGN/V1.POINT = MPOINT(100.3, 37.5, 63.1)
В данном примере,
· V1 - конструкция.
· HEIGHT, WIDTH, MODE, и POINT - субэлементы этой конструкции[JLH3] .
· Как и переменные, конструкции не объявляются окончательными единицами.
· Субэлементы конструкции могут быть различного вида переменными:
q Целое число
q Двойное количество
q Точка
q Фигурный указатель
q Функция
q Множество
q Конструкции
Например, возможно говорить об элементах конструкции, которые являются множествами, и множественных элементах, которые представляют собой конструкции. В данном случае мы можем рассматривать следующие примеры выражений действительными:
Пример
ASSIGN/CAR.LEFTSIDE.DOOR[2].QUADRANT[3].JOINT[5].HIT[4] = MPOINT(558.89, 910.12, 42.45) COMMENT/OPER,"Current Z Position: " + CAR.LEFTSIDE.DOOR[2].QUADRANT[3].JOINT[5].HIT[4].Z ASSIGN/CURRENTJOINT = LEFTSIDE.DOOR[2].QUADRANT[3].JOINT[5] COMMENT/OPER,"Next Hit: " + CURRENTJOINT.HIT[4]
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.