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

Поле Name в окне Call Subroutine

Поле Name (имя) содержит имя выбранной вами подпрограммы после использования кнопки SelectSubroutine.

Поле File в окне Call Subroutine

Поле File (файл) содержит путь к папке, содержащей файл вызываемой вами подпрограммы.

Кнопка Select Subroutine

Кнопка Select Subroutine (выбор подпрограммы) открывает диалоговое окно Select Subroutine.

Диалоговое окно Select Subroutine

Диалоговое окно SelectSubroutine позволяет вам вызывать предварительно созданные подпрограммы путем поиска в пользовательской или текущей папке.

Пример кода подпрограммы

Следующий пример кода позволяет оператору выбрать изменение теоретических значений X, Y, и Z геометрического элемента после его измерения. Последующие запуски в этом случае будут использовать обновленные теоретические значения.

PNT1=FEAT/POINT,RECT

ENDMEAS/

C1=COMMENT/YESNO,Do you want to change the theoretical values for PNT1?

IF/C1.INPUT=="YES"

CS1=CALLSUB/CHANGETHEO,:,

END_IF/

COMMENT/OPER,The XYZ theoretical and actual values for PNT1 are:

,"Theo X= " + PNT1.TX

,"Theo Y= " + PNT1.TY

,"Theo Z= " + PNT1.TZ

,- - - - - - - - - - ,"Actl X= " + PNT1.X

,"Actl Y= " + PNT1.Y

,"Actl Z= " + PNT1.Z

PROGRAM/END

SUBROUTINE/CHANGETHEO,

POINT1 = {PNT1} : ,

=

DIMINFO/;DIMID,FEATID;HEADINGS,GRAPH AXIS;MEAS,NOM,TOL,DEV,MAXMIN,OUTTOL, , ,

C2=COMMENT/INPUT,Type the new X theo value for PNT 1.

,"It's current value is: " + PNT1.TX

ASSIGN/PNT1.TX = C2.INPUT

C3=COMMENT/INPUT,Type the new Y theo value for PNT 1.

,"It's current value is: " + PNT1.TY

ASSIGN/PNT1.TY = C3.INPUT

C4=COMMENT/INPUT,Type the new Z theo value for PNT 1.

,"It's current value is: " + PNT1.TZ

ASSIGN/PNT1.TZ = C4.INPUT

ENDSUB/

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

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

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

CS1=CALLSUB/CHANGETHEO,:, Эта строка вызывает подпрограмму под названием CHANGETHEO. Ход программы переходит на строку SUBROUTINE/CHANGETHEO.

SUBROUTINE/CHANGETHEO Эта строка инициализирует подпрограмму CHANGETHEO. Ход программы продолжается выполнением кода между этой строкой и строкой ENDSUB/.

POINT1 = {PNT1} : , Это единственный аргумент подпрограммы. Он позволяет подпрограмме осуществлять досуп к информации из геометрического элемента PNT1.

C2=COMMENT/INPUT, C3=COMMENT/INPUT, C4=COMMENT/INPUT Эти входные комментарии воспринимают новые теоретические значения X, Y, и Z от пользователя и сохраняют их в C2.INPUT, C3.INPUT, и C4.INPUT соответственно.

ASSIGN/PNT1.TX = C2.INPUT Эта строка воспринимает теоретическое значение X от C2.INPUT и присваивает его переменной PNT1.TX. PNT1.TX является переменной PC-DMIS, которая содержит теоретическое значение X (обозначенное TX) для точки с меткой ID PNT1.

ASSIGN/PNT1.TY = C3.INPUT Эта строка воспринимает теоретическое значение Y от C3.INPUT и присваивает его переменной PNT1.TY. PNT1.TY является переменной PC-DMIS, которая содержит теоретическое значение Y (обозначенное TY) для точки с меткой ID PNT1.

ASSIGN/PNT1.TZ = C4.INPUT Эта строка воспринимает теоретическое значение Z от C4.INPUT и присваивает его переменной PNT1.TZ. PNT1.TZ является переменной PC-DMIS, которая содержит теоретическое значение Z (обозначенное TZ) для точки с меткой ID PNT1.

ENDSUB/ Эта строка завершает подпрограмму, и ход выполнения программы возвращается к строке, непосредственно следующей за вызовом подпрограммы. В этом случае это оператор END_IF/.

Затем ход выполнения программы продолжается следующим оператором – комментарием, отображающим теоретические и текущие значения X, Y, и Z, а затем программа завершается командой PROGRAM/END.


 [JLH1]V3.5. New per report 211533.