Macro commands that manipulate the user interface, such as CLOSEWINDOW, WINL(), and GETT() are not effective.
Is there a workaround to extract values from analysis window? For example, I was going to extract values from 19th row of an opened Geometric Image Analysis cross section window.
When using ZPLM to create a user defined operand, the merit function is always evaluated using a temporary copy of the lens.
GETT() extracts a numerical value from any opened text window.This is reflected in the user interface.
However, any updates taken effect on the copy of the current system will not have effect on the currently opened analysis window. That's why GETT() is not effective for ZPLM macros. In the situation, the keyword GETTEXTFILE can still be used to extract values.
For example, save setting for Geometric image analysis first(or use keyword MODIFYSETTINGS) and then try with the following code:
A$ = $TEMPFILENAME()
GETTEXTFILE A$, Ima
OPEN A$
line_num=1
LABEL 1
READSTRING B$
IF (line_num>=30) THEN GOTO 2
# PRINT B$
line_num=line_num+1
GOTO 1
LABEL 2
READ X1,Y1
READ X2,Y2
READ X3,Y3
DELETEFILE A$
CLOSE
#PRINT X1," ",Y1
#PRINT X2," ",Y2
#PRINT X3," ",Y3
OPTRETURN 1, Y1
OPTRETURN 2, Y2
OPTRETURN 3, Y3
Is the same think possible for 'Spt'?
I would like to extract the RMS spot radii as numeric value (not strings), see below:
A$ = $TEMPFILENAME()
GETTEXTFILE A$, 'Spt' # alternative to GETT
OPEN A$
READSTRING B$
For i,1,18,1
READ
NEXT
READSKIP 23
READSTRING spotx$
READSTRING spoty$
READSTRING spotmax$
PRINT spoty$
DELETEFILE A$
CLOSE
Hi Jonas,
Yes, you can also use GETTEXTFILE to extract data from the Spot Diagram using Spt as type (you need to remove the apostrophe in the second line of your macro). To convert String to numbers you may use SVAL(A$).
Something like this will report the RMS Spot Radius, RMS X Size, RMS Y Size and the Max Spot Radius from the Spot Diagram:
A$ = $TEMPFILENAME()
GETTEXTFILE A$, Spt
OPEN A$
For i,1,17,1
READSTRING B$
NEXT
READSTRING spotr$
val$ = $RIGHTSTRING(spotr$, 20)
Sr = SVAL(val$)
print 'RMS Spot Radius :', Sr
READSTRING spotx$
val$ = $RIGHTSTRING(spotx$, 20)
Sx = SVAL(val$)
print 'RMS Spot X Size :', Sx
READSTRING spoty$
val$ = $RIGHTSTRING(spoty$, 20)
Sy = SVAL(val$)
print 'RMS Spot Y Size :', Sy
READSTRING spotmax$
val$ = $RIGHTSTRING(spotmax$, 20)
Sm = SVAL(val$)
print 'Max Spot Radius :', Sm
DELETEFILE A$
CLOSE
Reply
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.