Интерактивное графическое программное обеспечение PC-DMIS (Глава 22: Ветвление с использованием управления потоком), страница 2

COMMENT/OPER,"The measured X value of PNT2: " + PNT2.X + " is out of tolerance."

END_IF/

ELSE_IF/PNT2.Y<3.3 OR PNT2.Y>3.5

COMMENT/OPER,"The measured Y value for PNT2: " + PNT2.Y + " is out of tolerance."

END_ELSEIF/

ELSE_IF/PNT2.Z<.9 OR PNT2.Z>1.1

COMMENT/OPER,"The measured Z value for PNT2: " + PNT2.Z + " is out of tolerance."

END_ELSEIF/

Пояснение к примеру кода

Код проверяет значение X точки. Если условие определяется как ложное, то код проверяет значение Y. Если условие для Y определяется как ложное, то тестируется значение Z.

Если любое из этих условий определяется как истинное , PC-DMIS отображает комментарий, ассоциированный с ним, и пропускает оставшиеся условные операторы.

IF/PNT2.X<6.9 ORPNT2.X>7.1 Эта строка является выражением. Она проверяет, чтобы измеренное значение X не было меньше 6.9 или больше 7.1. Если значение выходит за эти пределы, выполняется первый комментарий.

END_IF Эта строка завершает выполнение команд внутри блока кода IF / END IF. Любая команда, следующая за этой строкой – это та команда, к которой PC-DMIS перейдет, если условие IF THEN окажется ложным.

ELSE_IF/PNT2.Y<3.3 orPNT 2.Y>3.5 Эта строка – выражение для первой команды ELSE_IF. Она выполняется только если блок IF / END IF выше нее возвратит значение "ложь". Она проверяет, не является ли измеренное значение Y меньше 3.3 или больше 3.5. Если значение выходит за эти пределы, выполняется второй комментарий.

END_ELSEIF/ Эта строка завершает выполнение коман внутри первого блока кода ELSE IF / END ELSE IF.

ELSE_IF/PNT2.Z<.9 ORPNT2.Z>1.1 Эта строка является выражением для второй команды ELSE IF. Она выполняется только в том случае, если блок ELSE IF / END ELSE IF выше нее возвратит значение "ложь". Она проверяет, чтобы измеренное значение Z не было меньше.9 или больше 1.1. Если значение выходит за эти пределы, выполняется второй комментарий

END_ELSEIF/ Эта строка завершает выполнение команд внутри второго блока кода ELSE IF / END ELSE IF.

Else / End Else (Иначе)

Пункт меню Else / EndElse позволяет вам добавлять условный блок в программу детали. Пункты между командами ELSE и END ELSE будут выполнены, только если все прочие блоки if / end if и else if / end else if выше не будут выполнены (все возвратят значение "ноль"). Блоки ELSE / END ELSE следует располагать в конце группы блоков IF / END IF или ELSE IF / END ELSE IF  .

Командная строка окна Edit для оператора ELSE / END ELSE: ELSE/ END_ELSE/

Для вставки команд Else / End Else:

1.  Установите курсор в нужное положение в окне Edit. Заметьте, что блоки ELSE / END ELSE должны располагаться после блоков IF / END IF или ELSE IF / END ELSE IF.

2.  Выберите Else / EndElseиз панели меню. Оператор ELSE / End ELSE появится в окне Edit.

Пример кода Else / End Else

Рассмотрите следующий пример, который спрашивает пользователя, желает ли он измерить элемент "точка".

C1= COMMENT/YESNO,Would you like to measure the point feature, PNT1? Clicking No measures the next feature.

IF/C1.INPUT=="YES"

PNT1=FEAT/POINT,RECT

ENDMEAS/

END_IF/

ELSE

PNT2=FEAT/POINT,RECT

ENDMEAS/

ENDELSE

Пояснение к примеру кода

C1=COMMENT/YESNO Эта строка воспринимает и сохраняет ответ YES или NO от пользователя.

IF/C1.INPUT=="YES" Эта строка является выражением. Она проверяет, является ли введенный ответ на комментарий 1 YES/ДА. Если это YES/ДА, то оператор IF является истинным (TRUE) и продолжается выполнение операторов после оператора IF, в этом случае – измерения элемента PNT1. При ответе NO/НЕТ выполняется переход к оператору END_IF.

END_IF Эта строка завершает выполнение команд внутри блока кода IF / END IF. Любая команда, следующая за этой строкой – это та команда, к которой PC-DMIS перейдет, если пользователь щелкнет на кнопке Noв комментарии.

ELSE Если расположенный выше блок IF / END IF возвращает значение "ложь", то будут выполнены строки команд после этой строки и до строки ENDELSE. В этом случае будет выполнено PNT2.

ENDELSE Эта строка завершает выполнение команд внутри блока кода ELSE / ENDELSE.