The following code sample allows the operator to have a choice of changing the theoretical X, Y, and Z values of a feature after its measurement. Subsequent runs then use the updated theoretical values.
PNT1 =GENERIC/POINT,DEPENDENT,CARTESIAN,$
NOM/XYZ,<5,10,15>,$
MEAS/XYZ,<7,12,17>,$
NOM/IJK,<0,0,1>,$
MEAS/IJK,<0,0,1>
C1 =COMMENT/YESNO,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
Do you want to change the theoretical values for PNT1?
IF/C1.INPUT=="YES"
CS1 =CALLSUB/CHANGETHEO,:,
END_IF/
COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
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
ROUTINE/END
SUBROUTINE/CHANGETHEO,
POINT1={PNT1}:,
=
DIMINFO/PNT1;ICON,DIMID,FEATID,VERT,HORIZ,,$
HEADINGS,;MEAS,,,,,,,,
C2 =COMMENT/INPUT,NO,FULL SCREEN=NO,
Type the new X theo value for PNT1.
"Its current value is "+PNT1.TX
ASSIGN/PNT1.TX=C2.INPUT
C3 =COMMENT/INPUT,NO,FULL SCREEN=NO,
Type the new Y theo value for PNT1.
"Its current value is "+PNT1.TY
ASSIGN/PNT1.TY=C3.INPUT
C4 =COMMENT/INPUT,NO,FULL SCREEN=NO,
Type the new Z theo value for PNT1.
"Its current value is "+PNT1.TZ
ASSIGN/PNT1.TZ=C4.INPUT
ENDSUB/
Explanation of Sample Code
C1=COMMENT/YESNO
This line takes and stores the YES or NO response from the user.
IF/C1.INPUT=="YES"
This line is the expression. It tests to see if the input of comment 1
is a YES. If it's a YES then the IF statement is TRUE and continues executing
the statements after the IF statement, in this case it measures the PNT1 feature. If NO it moves to the END_IF
statement.
CS1=CALLSUB/CHANGETHEO,:,
This line calls the subroutine named CHANGETHEO. The flow of the measurement
routine now jumps to the SUBROUTINE/CHANGETHEO
line.
SUBROUTINE/CHANGETHEO
This line initializes the CHANGETHEO subroutine. Measurement routine flow
continues with the execution of code between this line and the ENDSUB/
line.
POINT1={PNT1}:,
This is the only argument of the subroutine. It allows the subroutine to
access information from the PNT1 feature.
C2=COMMENT/INPUT,C3=COMMENT/INPUT,C4=COMMENT/INPUT
These input comments all take the new theoretical X, Y, and Z values from
the user and store them in C2.INPUT,
C3.INPUT, and
C4.INPUT respectively.
ASSIGN/PNT1.TX=C2.INPUT
This line takes the theoretical X value from C2.INPUT and assigns it to
the PNT1.TX
variable. PNT1.TX
is a PC-DMIS variable that holds the theoretical X value (denoted by TX)
for the point with the ID label of PNT1.
ASSIGN/PNT1.TY=C3.INPUT
This line takes the theoretical Y value from C3.INPUT and assigns it to
the PNT1.TY
variable. PNT1.TY
is a PC-DMIS variable that holds the theoretical Y value (denoted by TY)
for the point with the ID label of PNT1.
ASSIGN/PNT1.TZ=C4.INPUT
This line takes the theoretical Z value from C4.INPUT and assigns it to
the PNT1.TZ
variable. PNT1.TZ is a PC-DMIS variable that
holds the theoretical Z value (denoted by TZ)
for the point with the ID label of PNT1.
ENDSUB/
This line ends the subroutine, and measurement routine flow returns to
the line immediately following the subroutine call. In this case the END_IF/ statement. The measurement routine
flow then continues with the next operator comment which displays the
theoretical and actual X,
Y, and Z
values, and then the measurement routine ends with the ROUTINE/END
command.
Command Mode Commands after Comments
After you insert a PC-DMIS comment, to type additional PC-DMIS commands in Command Mode, you must first press Enter twice after the COMMENT command. This tells PC-DMIS that you no longer want to add text to the comment but are ready to add a new command.