hexagon logo

Variables Dropping, Lighting flipping, and problems, Global Variables. suggestions?


All,

I've been working with a hexagon tech extensively building a program template to globally handle our structure for global editing as we are re-developing our quality systems and tracking capabilities.

Note: 2017 R2 (Service Pack 5) at both locations - Programming offline at desk - Exporting to server - Running at machine

Effectively a program looks like this. (Disclaimer: I'm very much a novice at programming.)
<Initilize>
<Callsub: FormSub; Initial Form> calls the initial form for the operator input
<Callsub: VarSub; Variables> calls the global variables for light, %tol and other misc settings
<Callsub: VarSub; Tracefields> generates tracefields and writes form data to a .txt file to later be read into the part program (Done for future-proofing; ie adding tracefields globally)
<generate header page for report>

<program specific information, file paths etc.>
<program features>
<append report with features>
<save into file structure, if no file structure - create file structure>
<datapage output>
<end>


This is mostly working great. But i have a feeling that my variables are being dropped.

PROBLEM #1:
I have one variable, for parallelism, checking the cut of the sample (aluminium extrusion). The lighting variable values are passing, as well as this one, but this one will not ... sorta. If i write this code in the program
Ex:

<From VarSub>
Assign/Light=80
Assign/Light2=60
Assign/Flat=.4

<From VarSub>

<comment(y/n): FLAT>

Dim(Parallelism) <Parallelism to stage check>

If/ Parallelism.meas>FLAT
<Comment: Re cut sample>
Goto/ENDPRG
End_IF/

Label=ENDPRG





At the end of the program if i hover over the variables all of the correct values are shown. However at my comment prompt, It will show a value of one. (Edit: Incorrectly stated it was returning a Zero value, bad memory, see additional posts.)


PROBLEM #2
(See Attachments, at bottom ) When I write at my desktop, the 'physical' position that PCDMIS writes the light settings --> gets imported differently at the machine.
Ex:
At Desktop reads:
<--,YES,-1,-1,-1,NO,Top Light=<OFF,0,OFF> ,Bottom Light=<OFF,LIGHT,ON>,Ring Light=<OFF,0,OFF>

At Machine reads:
<--,YES,-1,-1,-1,NO,Bottom Light=<OFF,0,OFF> ,Top Light=<OFF,LIGHT,ON>,Ring Light=<OFF,0,OFF>

Almost as if it's reading the string file in a different order. So every offline program requires an edit for this, or I'll have to get used to programming the wrong light settings.

PROBLEM #3
I have a variable for RPT_Path... I feel like maybe this one is something I can do more investigating into. Each program contains the original assignment for this report path. Then an executable file creates a folder for the Tool Copy Number, a sub folder for the year, then a subfolder for the month and saves the file in that location. Right now it is saving it in the original test templates location.






Any thoughts would be greatly appreciated!!!!!!!!!!

Thank you!



Attached Files
  • Problem #1: Use MessageBoxes in order to trace your value through the program, making calls to messagebox to display the value - for debugging purposes.

    Problem #2: The pictures are too small to really "see" the code. If you can, cut and paste the code in here between CODE tags.

    Problem #3: As #1, populate your code with messageboxes displaying the path at certain points in order to trace your path variable - for debugging purposes.
  • vpt.se - Thanks for your response! Was unfamiliar with how to post here. Thank you!

    I'll paste the code in a few responses.

    #1.) Sorry, I didn't mention that that is what I am trying to show in the example for number one, is the unsuccessful debugging. I've put a comment to trace the value and can tell it's dropping out or at least not being used. It should be returning a value of .4


    #2. )At my desk top the code for any feature will read:
    CIR3       =FEAT/VISION/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                THEO/<-3.2,-6,0>,<0,0,1>,4.12,0,0
                ACTL/<-3.2,-6,0>,<-0.0412971,-0.024986,0.9988344>,4.118,0,0
                TARG/<-3.2,-6,0>,<0,0,1>
                ANGLE VEC=<1,0,0>
                SHOW FEATURE PARAMETERS=NO
                SHOW_VISION_PARAMETERS=YES
                  TYPE=AUTOMATIC HIT TARGET
                  COVERAGE=100%
                  COVERAGE ACTIVE TARGETS=4
                  MAGNIFICATION=0.638
                  HIT TARGET COLOR=YELLOW (HMI),NOMINAL COLOR=GREEN (HMI)
                  HIT TARGET=EA1,0,1,HIGH,0.768
                  FILTER=NO,YES,0,1.8
                  EDGE=DOMINANT EDGE,[|]->[ ],-->,YES,-1,-1,-1,NO,Top Light=<OFF,0,OFF>,Bottom Light=<OFF,LIGHT,ON>,Ring Light=<OFF,0,OFF>
                  FOCUS=NO
    


    At the Optiv it reads:
    CIR3       =FEAT/VISION/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                THEO/<-3.2,-6,0>,<0,0,1>,4.12,0,0
                ACTL/<-3.2,-6,0>,<-0.0412971,-0.024986,0.9988344>,4.118,0,0
                TARG/<-3.2,-6,0>,<0,0,1>
                ANGLE VEC=<1,0,0>
                SHOW FEATURE PARAMETERS=NO
                SHOW_VISION_PARAMETERS=YES
                  TYPE=AUTOMATIC HIT TARGET
                  COVERAGE=100%
                  COVERAGE ACTIVE TARGETS=4
                  MAGNIFICATION=0.638
                  HIT TARGET COLOR=YELLOW (HMI),NOMINAL COLOR=GREEN (HMI)
                  HIT TARGET=EA1,0,1,HIGH,0.768
                  FILTER=NO,YES,0,1.8
                  EDGE=DOMINANT EDGE,[|]->[ ],-->,YES,-1,-1,-1,NO,Bottom Light=<OFF,0,OFF>,Top Light=<OFF,LIGHT,ON>,Ring Light=<OFF,0,OFF>
                  FOCUS=NO
    


    Note the top and bottom light have switched positions.

    #3) I have not applied this practice here yet, so I'll get to it. I was trying to prevent changing the 'core' code until I tried all else to understand it. I think it's probably time to save a backup-backup and get to it.


    Thanks again for your response!



  • Form Sub:

    STARTUP    =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
                ALIGNMENT/END
                LOADPROBE/ZOOM
                TIP/TIP1, SHANKIJK=0, 0, 1, ANGLE=0
                MODE/DCC
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~` 
    
                                                           FORM SUBROUTINE CALL
    
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~` 
                SUBROUTINE/FORMSUB,
                    MANUAL_ = 0 : ,
                    DATETIME = "" : ,
                    TRACEFIELD_PATH = "" : ,
                    PREFIX = "" : ,
                    DIE_ = "" : ,
                    RPT_PREFIX = "" : ,
                    PRG_NAME = "" : ,
                    CANCELLED = 0 : ,
                    RPT_PATH = "" : ,
                    PRESS_ = 0 : ,
                    SAMPLETYPE_ = 0 : ,
                     = 
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       CHECK IF FORM EXISTS, IF NOT ALERT OPERATOR
                            CREATE FORM AND BASIC SCRIPT PATHS
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       PATH CREATION
                       RPT PATH BELOW
                  PREFIX USED FOR TRACEFIELDS
                          ******
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                ASSIGN/PREFIX="C:\USERS\PUBLIC\DOCUMENTS\HEXAGON\DATAPAGE+\FORSTATSFILES"
                ASSIGN/TRACEFIELD_PATH=PREFIX+"\TRACES_"+DATETIME+".TXT"
                ASSIGN/FORM_PATH="C:\users\cmm\Desktop\EXTRUSION\Quality Content Files - KRWB\SUB-ROUTINES\KYLE_EXAMPLE_UACJ.FORM"
                ASSIGN/BAS_PATH="C:\Users\CMM\Desktop\EXTRUSION\QUALITY CONTENT FILES - KRWB\SUB-ROUTINES\CREATEDIRECTORY.BAS"
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~
                   CHECK FOR FORM
                ~~~~~~~~~~~~~~~~~~~~
    FORM_EXISTS=FILE/EXISTS,FORM_PATH
                IF/FORM_EXISTS==0
                  COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
                  OPERATOR INPUT WINDOW MISSING, CONTACT SUPERVISOR
                GOTO/ENDFORM
                END_IF/
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                             INITIATE VARIABLE AND RUN FORM
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    FORMD      =LABEL/
                ASSIGN/MANUAL_=0
                ASSIGN/DIECOPY_=""
                ASSIGN/SHIFT_=""
                ASSIGN/OPERATOR_=""
                ASSIGN/SAMPLETYPE_=""
                ASSIGN/WEB_=""
                ASSIGN/RUNTYPE_=""
                ASSIGN/SAMPLETYPENAME=""
                ASSIGN/PRESS_=""
                ASSIGN/PRESSNAME=""
                ASSIGN/BILLET_=""
                ASSIGN/CUT_=""
                ASSIGN/REFIRE_=""
                ASSIGN/ACK_=1
                ASSIGN/OPERATORNAME=""
                ASSIGN/OPERATOR_=""
                ASSIGN/FORM_COMPLETE=0
                ASSIGN/CANCELLED=0
                ASSIGN/FILLIN_NAME=""
                ASSIGN/GRR=""
                ASSIGN/GRRUN=""
                ASSIGN/HOLE=""
    CS2        =FORM/FILENAME= FORM_PATH
                PARAM/SHIFT.VALUE=SHIFT_
                PARAM/OPERATOR.VALUE=OPERATOR_
                PARAM/SAMPLETYPE.VALUE=SAMPLETYPE_
                PARAM/WEB.VALUE=WEB_
                PARAM/RUNTYPE.VALUE=RUNTYPE_
                PARAM/PRESS.VALUE=PRESS_
                PARAM/REFIRE.VALUE=REFIRE_
                PARAM/ACK.VALUE=ACK_
                PARAM/MANUAL.VALUE=MANUAL_
                PARAM/OPERATOR.TEXTVALUE=OPERATORNAME
                PARAM/SAMPLETYPE.TEXTVALUE=SAMPLETYPENAME
                PARAM/PRESS.TEXTVALUE=PRESSNAME
                PARAM/FORM_COMPLETE.VALUE=FORM_COMPLETE
                PARAM/CANCELLED.VALUE=CANCELLED
                PARAM/PERSONBOX.TEXT=FILLIN_NAME
                PARAM/BILLET.TEXT=BILLET_
                PARAM/DIECOPY.TEXT=DIECOPY_
                PARAM/DIE.TEXT=DIE_
                PARAM/CUT.TEXT=CUT_
                PARAM/GRR.TEXT=GRR
                PARAM/GRRUN.TEXT=GRRUN
                PARAM/HOLE.TEXT=HOLE
                PARAM/=
                ENDFORM/
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                           HANDLE ENDING CONDITIONS FROM FORM
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                IF/OPERATORNAME=="***Fill-in***"
                  ASSIGN/OPERATORNAME=FILLIN_NAME
                END_IF/
                IF/CANCELLED==1
                GOTO/ENDFORM
                END_IF/
                IF/FORM_COMPLETE==0
                  COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
                  FORM NOT COMPLETELY FILLED OUT
                GOTO/FORMD
                END_IF/
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    CREATE REPORT FILE STRUCTURE AND GENERATE REPORT PATH
                CHANGE PREFIX PATH TO WHERE REPORTS LOCATE PRIOR TO DIE NUMBER
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                ASSIGN/DATE=SYSTEMDATE("M/d/yyyy")
                ASSIGN/TIME=SYSTEMTIME("h:mm tt")
                ASSIGN/DATE_RPT=SYSTEMDATE("MM_dd_yy")
                ASSIGN/RUN_YEAR=SYSTEMDATE("yyyy")
                ASSIGN/RUN_MONTH=SYSTEMDATE("MMM")
                ASSIGN/FOLDER_STEP1=RPT_PREFIX+"\\"+DIE_+"_"+DIECOPY_
                ASSIGN/FOLDER_STEP2=FOLDER_STEP1+"\\"+RUN_YEAR
                ASSIGN/FOLDER_STEP3=FOLDER_STEP2+"\\"+RUN_MONTH
    CR_A       =SCRIPT/FILENAME= BAS_PATH
                FUNCTION/Main,SHOW=YES,ARG1=FOLDER_STEP1,,
                STARTSCRIPT/
    CR_B       =SCRIPT/FILENAME= BAS_PATH
                FUNCTION/Main,SHOW=YES,ARG1=FOLDER_STEP2,,
                STARTSCRIPT/
    CR_C       =SCRIPT/FILENAME= BAS_PATH
                FUNCTION/Main,SHOW=YES,ARG1=FOLDER_STEP3,,
                STARTSCRIPT/
                ASSIGN/SAMP_TRIM=LEFT(SAMPLETYPENAME,5)
                ASSIGN/RPT_PATH=FOLDER_STEP3+"\\"+DIE_+"_"+DIECOPY_+"   "+DATE_RPT+"_B"+BILLET_+"_C"+CUT_+"_"+SAMP_TRIM+".PDF"
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                 FORMAT REPORT COVER PAGE
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                COMMENT/REPT,
    
                COMMENT/REPT,
                "DATE: "+DATE+"   TIME: "+TIME+"   OPERATOR: "+OPERATOR_
                COMMENT/REPT,
    
                COMMENT/REPT,
                "DIE: "+DIE_+"-"+DIECOPY_+"   PROGRAM: "+PRG_NAME
                COMMENT/REPT,
    
                COMMENT/REPT,
                "BILLET: "+BILLET_+"   CUT: "+CUT_+"   WEBSTER: "+WEB_+"   SAMPLE TYPE: "+SAMPLETYPE_
                IF/REFIRE_==1
                  COMMENT/REPT,
    
                  COMMENT/REPT,
                  "PRESS: "+PRESS_+" REFIRE"
                END_IF/
                IF/REFIRE_==0
                  COMMENT/REPT,
    
                  COMMENT/REPT,
                  "PRESS: "+PRESS_
                END_IF/
                IF/MANUAL_==1
                  COMMENT/REPT,
    
                  COMMENT/REPT,
                  "MANUAL ALIGNMENT"
                END_IF/
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    
                                                       TRACEFIELD TEMPORARY .TXT OUTPUT
    
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    TRACES     =FILE/OPEN,TRACEFIELD_PATH,WRITE
                FILE/WRITELINE,TRACES,BILLET_
                FILE/WRITELINE,TRACES,OPERATORNAME
                FILE/WRITELINE,TRACES,REFIRE_
                FILE/WRITELINE,TRACES,SHIFT_
                FILE/WRITELINE,TRACES,WEB_
                FILE/WRITELINE,TRACES,DIECOPY_
                FILE/WRITELINE,TRACES,DIE_
                FILE/WRITELINE,TRACES,PRESSNAME
                FILE/WRITELINE,TRACES,SAMPLETYPENAME
                FILE/WRITELINE,TRACES,MANUAL_
                FILE/WRITELINE,TRACES,CUT_
                FILE/WRITELINE,TRACES,ACK_
                FILE/WRITELINE,TRACES,TIME
                FILE/WRITELINE,TRACES,DATE
                FILE/WRITELINE,TRACES,RUNTYPE_
                FILE/WRITELINE,TRACES,GRR
                FILE/WRITELINE,TRACES,GRRUN
                FILE/WRITELINE,TRACES,HOLE
                FILE/CLOSE,TRACES,KEEP
    $$ NO,
                PRINT OUT
    
                IF/SAMPLETYPE_<>7
                  PRINT/REPORT,EXEC MODE=END,$
                    TO_FILE=ON,OVERWRITE=RPT_PATH,AUTO OPEN REPORT=OFF,$
                    TO_PRINTER=OFF,COPIES=1,$
                    TO_DMIS_REPORT=OFF,FILE_OPTION=INDEX,FILENAME=,$
                    REPORT_THEORETICALS=NONE,REPORT_FEATURE_WITH_DIMENSIONS=NO,$
                    TO_EXCEL_OUTPUT=OFF,
                    PREVIOUS_RUNS=KEEP_INSTANCES
                END_IF/
    ENDFORM    =LABEL/
                ENDSUB/
    


  • VarSub/Andon Sub (controls signal for and-on light at workcenter)

    STARTUP    =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
                ALIGNMENT/END
                MODE/MANUAL
                FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;NOM,TOL,MEAS,DEV,OUTTOL, , 
                LOADPROBE/ZOOM
                TIP/TIP1, SHANKIJK=0, 0, 1, ANGLE=0
                SUBROUTINE/VARSUB,
                    LIGHT = 0 : ,
                    LIGHT2 = 0 : ,
                    LIGHT3 = 0 : ,
                    LIGHT4 = 0 : ,
                    LIGHT5 = 0 : ,
                    ZOOM = 0 : ,
                    ZOOM2 = 0 : ,
                    ZOOM3 = 0 : ,
                    ZOOM4 = 0 : ,
                    PRINTY = 0 : ,
                    SAVE = 0 : ,
                    FLAT = 0 : ,
                    CFTOLERANCEABOVE1 = 0 : ,
                    CFTOLERANCEABOVE2 = 0 : ,
                    CFTOLERANCEBELOW1 = 0 : ,
                    CFTOLERANCEBELOW2 = 0 : ,
                    TOLERANCEABOVE1 = 0 : ,
                    TOLERANCEABOVE2 = 0 : ,
                    TOLERANCEBELOW1 = 0 : ,
                    TOLERANCEBELOW2 = 0 : ,
                     = 
                ASSIGN/LIGHT=80.2
                ASSIGN/LIGHT2=60.6
                ASSIGN/LIGHT3=0
                ASSIGN/LIGHT4=0
                ASSIGN/LIGHT5=0
                ASSIGN/ZOOM=0
                ASSIGN/ZOOM2=0
                ASSIGN/ZOOM3=0
                ASSIGN/ZOOM4=0
                ASSIGN/PRINTY=1
                ASSIGN/SAVE=1
                ASSIGN/FLAT=.4
                ASSIGN/CFTOLERNACEABOVE1=5
                ASSIGN/CFTOLERANCEABOVE2=10
                ASSIGN/CFTOLERANCEBELOW1=5
                ASSIGN/CFTOLERANCEBELOW2=10
                ASSIGN/TOLERANCEABOVE1=5
                ASSIGN/TOLERANCEABOVE2=10
                ASSIGN/TOLERANCEBELOW1=5
                ASSIGN/TOLERANCEBELOW2=10
                ENDSUB/
                SUBROUTINE/ANDON,
                    CONDITION = "" : ,
                    PRESS_ = 0 : ,
                     = 
                ASSIGN/FILE_PATH="E:\EXTRUSION_ANDON\PRESS_"+PRESS_+".CSV"
    STATE      =FILE/OPEN,FILE_PATH,WRITE
                FILE/WRITELINE,STATE,CONDITION
                FILE/CLOSE,STATE,KEEP
                ENDSUB/
    


    Tracefield Sub:

    STARTUP    =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
                ALIGNMENT/END
                MODE/DCC
                LOADPROBE/ZOOM
                TIP/TIP1, SHANKIJK=0, 0, 1, ANGLE=0
                SUBROUTINE/ADD_TRACEFIELDS,
                    SUCCESS = 0 : ,
                    USING_DP = "" : ,
                    TRACEFIELD_PATH = "" : ,
                    PREFIX = "" : ,
                     = 
                ASSIGN/SUCCESS=0
                IF/USING_DP=="FALSE"
                  ASSIGN/SUCCESS=1
                GOTO/END
                END_IF/
                COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=YES,TIME DELAY=5,
                Please wait for DataPage+
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
                                                            OUTPUT SETUP
    
                               MAKE SURE TO CHANGE Settings for DataPageStats TO "PCDMISStats.XML"
    
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    $$ NO,
                XML_FIL, XML_CPY AND XML_TMP ARE DELETED AT END OF EXECUTION - LOCATION DICTATED BY SETTING FOR DATAPAGESTATS
                XML_FIN IS FILE READ IN TO DATAPAGE+ (LOCATED BELOW) - LOCATION CONTROLLED BY DATAIMPORTER
                *****
    
                ASSIGN/XML_FIL=PREFIX+"\PCDMISStats.XML.XML"
                ASSIGN/XML_CPY=PREFIX+"\PCDMISStats.XML.TXT"
                ASSIGN/XML_TMP=PREFIX+"\PCDMISStats_TMP.XML.TXT"
                ASSIGN/TRACE_PATH=TRACEFIELD_PATH
                ASSIGN/INCREMENT=0
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
                                                    READ IN AND GENERATE TRACEFIELDS
                                                                 *****
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    TRACE      =FILE/OPEN,TRACE_PATH,READ
    T1         =FILE/READLINE,TRACE,{TR1}
    T2         =FILE/READLINE,TRACE,{TR2}
    T3         =FILE/READLINE,TRACE,{TR3}
    T4         =FILE/READLINE,TRACE,{TR4}
    T5         =FILE/READLINE,TRACE,{TR5}
    T6         =FILE/READLINE,TRACE,{TR6}
    T7         =FILE/READLINE,TRACE,{TR7}
    T8         =FILE/READLINE,TRACE,{TR8}
    T9         =FILE/READLINE,TRACE,{TR9}
    T10        =FILE/READLINE,TRACE,{TR10}
    T11        =FILE/READLINE,TRACE,{TR11}
    T12        =FILE/READLINE,TRACE,{TR12}
    T13        =FILE/READLINE,TRACE,{TR13}
    T14        =FILE/READLINE,TRACE,{TR14}
    T15        =FILE/READLINE,TRACE,{TR15}
    T16        =FILE/READLINE,TRACE,{TR16}
    T17        =FILE/READLINE,TRACE,{TR17}
    T18        =FILE/READLINE,TRACE,{TR18}
                FILE/CLOSE,TRACE,KEEP
    $$ NO,
                AND NEW ASSIGN/TRACE_# FOR EACH ADDITIONAL TRACEFIELD REQUIRED
                *****
    
                ASSIGN/TRACE_1="<TraceFieldCmd Name=\"BILLET NUMBER\" Value=\""+TR1+"\" />"
                ASSIGN/TRACE_2="<TraceFieldCmd Name=\"OPERATOR NAME\" Value=\""+TR2+"\" />"
                ASSIGN/TRACE_3="<TraceFieldCmd Name=\"REFIRE\" Value=\""+TR3+"\" />"
                ASSIGN/TRACE_4="<TraceFieldCmd Name=\"SHIFT\" Value=\""+TR4+"\" />"
                ASSIGN/TRACE_5="<TraceFieldCmd Name=\"HARDNESS IN WEBSTER\" Value=\""+TR5+"\" />"
                ASSIGN/TRACE_6="<TraceFieldCmd Name=\"DIE COPY NUMBER\" Value=\""+TR6+"\" />"
                ASSIGN/TRACE_7="<TraceFieldCmd Name=\"DIE NUMBER\" Value=\""+TR7+"\" />"
                ASSIGN/TRACE_8="<TraceFieldCmd Name=\"PRESS NAME\" Value=\""+TR8+"\" />"
                ASSIGN/TRACE_9="<TraceFieldCmd Name=\"SAMPLE TYPE\" Value=\""+TR9+"\" />"
                ASSIGN/TRACE_10="<TraceFieldCmd Name=\"MANUAL ALIGNMENT\" Value=\""+TR10+"\" />"
                ASSIGN/TRACE_11="<TraceFieldCmd Name=\"CUT NUMBER\" Value=\""+TR11+"\" />"
                ASSIGN/TRACE_12="<TraceFieldCmd Name=\"WORK INSTRUCTIONS ACKNOWLEDGED\" VALUE=\""+TR12+"\" />"
                ASSIGN/TRACE_13="<TraceFieldCmd Name=\"TIME\" Value=\""+TR13+"\" />"
                ASSIGN/TRACE_14="<TraceFieldCmd Name=\"DATE\" Value=\""+TR14+"\" />"
                ASSIGN/TRACE_15="<TraceFieldCmd Name=\"RUN TYPE\" Value=\""+TR15+"\" />"
                ASSIGN/TRACE_16="<TraceFieldCmd Name=\"GageRR Sample Number\" Value=\""+TR16+"\" />"
                ASSIGN/TRACE_17="<TraceFieldCmd Name=\"GageRR Run Number\" Value=\""+TR17+"\" />"
                ASSIGN/TRACE_18="<TraceFieldCmd Name=\"Hole\" Value=\""+TR18+"\" />"
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
                                                            XML UPDATE
    
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    CHECK_AGAIN=LABEL/
    V1         =FILE/EXISTS,XML_FIL
                WHILE/V1==1
                  FILE/COPY,XML_FIL,XML_CPY,FAIL_IF_DEST_EXISTS
      $$ NO,
                  COPY LINES FROM XML UP TO BUT NOT INCLUDING CLOSING BRACKET
    
                  ASSIGN/FLAG=0
    DP_CPY       =FILE/OPEN,XML_CPY,READ
    DP_TMP       =FILE/OPEN,XML_TMP,WRITE
                  WHILE/FLAG==0
                    ASSIGN/TEST_TXT=""
    CHECK_LINE     =FILE/READLINE,DP_CPY,{TEST_TXT}
                    IF/TEST_TXT<>"</ExecutionTransaction>"
                      FILE/WRITELINE,DP_TMP,TEST_TXT
                    END_IF/
                    IF/TEST_TXT=="</ExecutionTransaction>"
                      ASSIGN/FLAG=1
                    END_IF/
                  END_WHILE/
      $$ NO,
                  WRITE IN NEW TRACEFIELDS, GENERATED ABOVE
                  *****
    
                  FILE/WRITELINE,DP_TMP,TRACE_1
                  FILE/WRITELINE,DP_TMP,TRACE_2
                  FILE/WRITELINE,DP_TMP,TRACE_3
                  FILE/WRITELINE,DP_TMP,TRACE_4
                  FILE/WRITELINE,DP_TMP,TRACE_5
                  FILE/WRITELINE,DP_TMP,TRACE_6
                  FILE/WRITELINE,DP_TMP,TRACE_7
                  FILE/WRITELINE,DP_TMP,TRACE_8
                  FILE/WRITELINE,DP_TMP,TRACE_9
                  FILE/WRITELINE,DP_TMP,TRACE_10
                  FILE/WRITELINE,DP_TMP,TRACE_11
                  FILE/WRITELINE,DP_TMP,TRACE_12
                  FILE/WRITELINE,DP_TMP,TRACE_13
                  FILE/WRITELINE,DP_TMP,TRACE_14
                  FILE/WRITELINE,DP_TMP,TRACE_15
                  FILE/WRITELINE,DP_TMP,TRACE_16
                  FILE/WRITELINE,DP_TMP,TRACE_17
                  FILE/WRITELINE,DP_TMP,TRACE_18
                  FILE/WRITELINE,DP_TMP,"</ExecutionTransaction>"
                  FILE/CLOSE,DP_CPY,KEEP
                  FILE/CLOSE,DP_TMP,KEEP
      $$ NO,
                  COPY TO FINAL XML AND CLEAN UP FILES
                  *****XML_FIN
    
                  COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=YES,TIME DELAY=1,
                  WAIT 1 SECOND
                  ASSIGN/CURR_TIME=SYSTEMTIME("hh_mm_ss")
                  ASSIGN/XML_FIN=PREFIX+"\PCDMISStats_"+CURR_TIME+".XML.XML"
                  FILE/COPY,XML_TMP,XML_FIN,FAIL_IF_DEST_EXISTS
                  FILE/DELETE,XML_FIL
                  FILE/DELETE,XML_CPY
                  FILE/DELETE,XML_TMP
      $$ NO,
                  CREATE NEW PATH TO SEE IF THERES MULTIPLE XMLs
    
                  ASSIGN/INCREMENT=INCREMENT+1
                  ASSIGN/XML_FIL=PREFIX+"\PCDMISStats.XML["+INCREMENT+"].XML"
    V1           =FILE/EXISTS,XML_FIL
                  ASSIGN/SUCCESS=1
                END_WHILE/
                IF/SUCCESS==1
                  FILE/DELETE,TRACE_PATH
                END_IF/
    END        =LABEL/
                ENDSUB/
    




  • Main Program/Template program: First Half:

    STARTUP    =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
                ALIGNMENT/END
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    
                                                          PROGRAM SETUP
    
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
                MODE/DCC
                MOVESPEED/ 100
                FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;NOM,TOL,MEAS,DEV,OUTTOL, , 
                LOADPROBE/ZOOM
                TIP/TIP1, SHANKIJK=0, 0, 1, ANGLE=0
    STAGE      =GENERIC/PLANE,DEPENDENT,CARTESIAN,$
                NOM/XYZ,<0,0,0>,$
                MEAS/XYZ,<0,0,0>,$
                NOM/IJK,<0,0,1>,$
                MEAS/IJK,<0,0,1>
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    
                                                            FORM CALL
    
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~
                    PLACE HOLDERS
                ~~~~~~~~~~~~~~~~~~~~
                ASSIGN/PRESS_=0
                ASSIGN/MANUAL_=0
                ASSIGN/PREFIX=""
                ASSIGN/CANCELLED=0
                ASSIGN/RPT_PATH=""
                ASSIGN/TRACEFIELD_PATH=""
                ASSIGN/SAMPLETYPE_=0
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~
                      GENERAL
                ~~~~~~~~~~~~~~~~~~~~
                ASSIGN/RUN_DATE=SYSTEMDATE("MM_dd_yyyy")
                ASSIGN/RUN_TIME=SYSTEMTIME("hh_mm_ss")
                ASSIGN/DATETIME=RUN_DATE+"_"+RUN_TIME
                ASSIGN/PRG_NAME=GETPROGRAMINFO("PARTNAME")
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~
                  PROGRAM SPECIFIC
                      ******
                ~~~~~~~~~~~~~~~~~~~~
                ASSIGN/DIE_="875"
                ASSIGN/RPT_PREFIX="E:\EXTRUSION\EXTRUSION DIES\875 TRW\Reports"
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~
                      SUB CALL
                ~~~~~~~~~~~~~~~~~~~~
    $$ NO,
                ~~~~~~~~~~~~~~~~~~ 
                      PASSING
                ~~~~~~~~~~~~~~~~~~
                "MANUAL_ : For running manual alignment or not"
                "DATETIME : For use in path names"
                "TRACEFIELD_PATH : For temporary file containing traces"
                "PREFIX : Generated in FORMSUB, For tracefield file generation"
                "DIE_ : Unique to program, sent to form"
                "RPT_PREFIX : Unique to program, first part of report path"
                "PRG_NAME : Grabs program name from header"
                "CANCELLED : Checks to see if CANCEL button pressed in form, jumps to end of program"
                "RPT_PATH : Generated in form sub, passed back to print report in main prg"
                "PRESS_ : Grabbed from form, used in ANDON light file name"
                "SAMPLETYPE_:Grabbed from form, used in print command lines"
                ~~~~~~~~~~~~~~~~~~
    CS3        =CALLSUB/FORMSUB,FORMSUB.PRG:MANUAL_,DATETIME,TRACEFIELD_PATH,PREFIX,DIE_,RPT_PREFIX,PRG_NAME,CANCELLED,RPT_PATH,PRESS_,$
                    SAMPLETYPE_,,
                IF/CANCELLED==1
                GOTO/ENDPRG
                END_IF/
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    
                                                          VARSUB CALL
    
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
                ASSIGN/LIGHT=0
                ASSIGN/LIGHT2=0
                ASSIGN/LIGHT3=0
                ASSIGN/LIGHT4=0
                ASSIGN/LIGHT5=0
                ASSIGN/ZOOM=0
                ASSIGN/ZOOM2=0
                ASSIGN/ZOOM3=0
                ASSIGN/ZOOM4=0
                ASSIGN/PRINTY=0
                ASSIGN/SAVE=0
                ASSIGN/FLAT=0
                ASSIGN/TOLERANCEABOVE1=0
                ASSIGN/TOLERANCEABOVE2=0
                ASSIGN/TOLERANCEBELOW1=0
                ASSIGN/TOLERANCEBELOW2=0
                ASSIGN/CFTOLERANCEABOVE1=0
                ASSIGN/CFTOLERANCEABOVE2=0
                ASSIGN/CFTOLERANCEBELOW1=0
                ASSIGN/CFTOLERANCEBELOW2=0
    CS1        =CALLSUB/VARSUB,VARIABLESUB.PRG:LIGHT,LIGHT2,LIGHT3,LIGHT4,ZOOM,ZOOM2,ZOOM3,ZOOM4,PRINTY,SAVE,$
                    FLAT,TOLERANCEABOVE1,TOLERANCEABOVE2,TOLERANCEBELOW1,TOLERANCEBELOW2,CFTOLERANCEABOVE1,CFTOLERANCEABOVE2,CFTOLERANCEBELOW1,CFTOLERANCEBELOW2,,
    DIM RA_MAX= KEYED IN DIMENSION  OUTPUT=BOTH
    AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
    M        0.000      1.000      0.000      1.200      1.200      0.200 -------->
    C1         =COMMENT/YESNO,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
                Inspect the part for Die Lines.
    
                Are there any Obvious Die Lines?
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    
                                                        MANUAL ALIGNMENT
                                              IF MANUAL_==1, RUN THE MANUAL ALIGNMENT
    
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
                IF/MANUAL_==1
                  MODE/MANUAL
                  COMMENT/OPER,NO,FULL SCREEN=YES,AUTO-CONTINUE=NO,
                  Take Manual Alignment Hits in order shown.
    CIR1         =FEAT/VISION/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
                  THEO/<-3.7,-0.5,0>,<0,0,1>,1,29.168,166.084
                  ACTL/<281.771,34.598,-59.429>,<0,0,1>,1.026,16.586,151.041
                  TARG/<-3.7,-0.5,0>,<0,0,1>
                  ANGLE VEC=<1,0,0>
                  SHOW FEATURE PARAMETERS=NO
                  SHOW_VISION_PARAMETERS=YES
                    TYPE=AUTOMATIC HIT TARGET
                    COVERAGE=100%
                    COVERAGE ACTIVE TARGETS=4
                    MAGNIFICATION=0.638
                    HIT TARGET COLOR=YELLOW (HMI),NOMINAL COLOR=GREEN (HMI)
                    HIT TARGET=EA1,0,1,NORMAL,0.32
                    FILTER=NO,YES,0,1.8
                    EDGE=DOMINANT EDGE,[|]->[ ],<--,YES,-1,-1,-1,NO,Top Light=<OFF,LIGHT,OFF>,Bottom Light=<OFF,LIGHT,ON>,Ring Light=<OFF,0,OFF>
                    FOCUS=YES,FULL,5,NO,3,NO
    A1           =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
                    ALIGNMENT/LEVEL,ZPLUS,CIR1
                    ALIGNMENT/TRANS,ZAXIS,CIR1
                  ALIGNMENT/END
    PNT1         =FEAT/VISION/EDGE POINT/DEFAULT,CARTESIAN
                  THEO/<0,-6.29,0>,<1,0,0>,<0,0,1>
                  ACTL/<284.055,28.57,0>,<1,0,0>,<0,0,1>
                  TARG/<0,-6.29,0>,<1,0,0>,<0,0,1>
                  SHOW FEATURE PARAMETERS=NO
                  SHOW_VISION_PARAMETERS=YES
                    TYPE=AUTOMATIC HIT TARGET
                    MAGNIFICATION=0.638
                    HIT TARGET COLOR=YELLOW (HMI),NOMINAL COLOR=GREEN (HMI)
                    HIT TARGET=EA1,0.547
                    FILTER=NO
                    EDGE=DOMINANT EDGE,[|]->[ ],-->,YES,-1,-1,-1,None,NO,Top Light=<OFF,LIGHT,OFF>,Bottom Light=<OFF,LIGHT,ON>,Ring Light=<OFF,0,OFF>
                    FOCUS=NO
    PNT2         =FEAT/VISION/EDGE POINT/DEFAULT,CARTESIAN
                  THEO/<0,-9.591,0>,<1,0,0>,<0,0,1>
                  ACTL/<282.716,23.448,0>,<1,0,0>,<0,0,1>
                  TARG/<0,-9.591,0>,<1,0,0>,<0,0,1>
                  SHOW FEATURE PARAMETERS=NO
                  SHOW_VISION_PARAMETERS=YES
                    TYPE=AUTOMATIC HIT TARGET
                    MAGNIFICATION=0.638
                    HIT TARGET COLOR=YELLOW (HMI),NOMINAL COLOR=GREEN (HMI)
                    HIT TARGET=EA1,0.547
                    FILTER=NO
                    EDGE=DOMINANT EDGE,[|]->[ ],-->,YES,-1,-1,-1,None,NO,Top Light=<OFF,LIGHT,OFF>,Bottom Light=<OFF,LIGHT,ON>,Ring Light=<OFF,0,OFF>
                    FOCUS=NO
    INITDATUMA   =FEAT/LINE,CARTESIAN,UNBOUNDED,NO
                  THEO/<0,-6.29,0>,<0,-1,0>
                  ACTL/<284.055,28.57,0>,<-0.2529579,-0.9674773,0>
                  CONSTR/LINE,BFRE,2D,PNT1,PNT2,,
                  OUTLIER_REMOVAL/OFF,3
                  FILTER/OFF,WAVELENGTH=0
                  ASSIGN/SY=MAXINDEX(CIR1.HIT[1..CIR1.NUMHITS].Y)
    INITDATUMB   =GENERIC/POINT,DEPENDENT,CARTESIAN,$
                  NOM/XYZ,<0,0,0>,$
                  MEAS/XYZ,<CIR1.HIT[SY].X,CIR1.HIT[SY].Y,CIR1.HIT[SY].Z>,$
                  NOM/IJK,<0,0,1>,$
                  MEAS/IJK,<0,0,1>
    MAN_ALIGN875  =ALIGNMENT/START,RECALL:A1,LIST=YES
                    ALIGNMENT/LEVEL,ZPLUS,CIR1
                    ALIGNMENT/TRANS,ZAXIS,CIR1
                    ALIGNMENT/ROTATE,YMINUS,TO,INITDATUMA,ABOUT,ZPLUS
                    ALIGNMENT/TRANS,XAXIS,INITDATUMA
                    ALIGNMENT/TRANS,YAXIS,INITDATUMB
                  ALIGNMENT/END
                END_IF/
                MODE/DCC
    PNT3       =FEAT/VISION/SURFACE POINT/DEFAULT,CARTESIAN
                THEO/<-0.447,-9.773,0>,<0,0,1>
                ACTL/<-0.447,-9.773,0.75>,<0,0,1>
                TARG/<-0.447,-9.773,0>,<0,0,1>
                SNAP=NO
                SHOW FEATURE PARAMETERS=NO
                SHOW_VISION_PARAMETERS=YES
                  TYPE=AUTOMATIC HIT TARGET
                  MAGNIFICATION=0.638
                  HIT TARGET COLOR=YELLOW (HMI),NOMINAL COLOR=GREEN (HMI)
                  HIT TARGET=SA1,YES,0.267,0.267
                  FOCUS=FULL,5,NO,4,-1,-1,-1,NO,Top Light=<OFF,0,OFF>,Bottom Light=<OFF,0,OFF>,Ring Light=<OFF,LIGHT2,ON>
    A2         =ALIGNMENT/START,RECALL:MAN_ALIGN875,LIST=YES
                  ALIGNMENT/LEVEL,ZPLUS,PNT3
                  ALIGNMENT/TRANS,ZAXIS,PNT3
                ALIGNMENT/END
    PNT4-7 similar to pt3 deleted for character issues.
    
    
    
    
  • Main template/program continued.

    PARTFACE   =FEAT/PLANE,CARTESIAN,TRIANGLE,NO
                THEO/<-3.991,-7.955,0>,<0,0,1>
                ACTL/<-3.991,-7.955,0.134>,<0.0412558,0.0250542,0.9988344>
                CONSTR/PLANE,BF,PNT3,PNT4,PNT5,PNT6,PNT7,,
                OUTLIER_REMOVAL/OFF,3
                FILTER/OFF,WAVELENGTH=0
                DATDEF/FEATURE=STAGE,S
                ASSIGN/FLAT=""
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    [COLOR=#FF0000] Flat assignment above was an attempted fix. Not sure if it's working yet as I haven't tested it amid other problems, sorry a little lost here.[/COLOR]
                                                        PROGRAM FEATURES
    
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    PARALLELISM =PARALLELISM : PARTFACE
                FEATCTRLFRAME/SHOWPARAMS=YES,SHOWEXPANDED=YES
                CADGRAPH=OFF,REPORTGRAPH=OFF,TEXT=OFF,MULT=10.00,ARROWDENSITY=100,OUTPUT=BOTH,UNITS=MM
                STANDARDTYPE=ASME_Y14_5
                  DIMENSION/PARALLELISM,0.5,<PZ>,<type>,<len>,S,<dat>,<dat>
                  NOTE/PARALLELISM
                FEATURES/PARTFACE,,
                IF/PARALLELISM.MEAS>FLAT
                  COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
                  Sample is not square to stage, please re-stage or re-cut if necessary.
                GOTO/ENDPRG
                END_IF/
    
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    
                                                             REPORT
    
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
                EXTERNALCOMMAND/NO_DISPLAY, NO_WAIT ; C:\PROGRAM FILES (X86)\HEXAGON\DATAPAGE+ 5.2\DATAPAGESTATS.EXE
                IF/SAMPLETYPE_<>7
                  PRINT/REPORT,EXEC MODE=END,$
                    TO_FILE=ON,APPEND=RPT_PATH,AUTO OPEN REPORT=OFF,$
                    TO_PRINTER=OFF,COPIES=1,$
                    TO_DMIS_REPORT=OFF,FILE_OPTION=INDEX,FILENAME=,$
                    REPORT_THEORETICALS=NONE,REPORT_FEATURE_WITH_DIMENSIONS=NO,$
                    TO_EXCEL_OUTPUT=OFF,
                    PREVIOUS_RUNS=DELETE_INSTANCES
                END_IF/
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    
                                                        ANDON CONDITION
    
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
                ASSIGN/CONDITION=0
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    
                                                           ANDON CALL
    
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    CS2        =CALLSUB/ANDON,VARIABLESUB.PRG:CONDITION,PRESS_,,
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    
                                                      TRACEFIELD XML UPDATE
    
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    START_TRACEFIELDS=LABEL/
                ASSIGN/SUCCESS=0
                ASSIGN/USING_DP="TRUE"
    CS1        =CALLSUB/ADD_TRACEFIELDS,TRACEFIELDS.PRG:SUCCESS,USING_DP,TRACEFIELD_PATH,PREFIX,,
                IF_GOTO/SUCCESS==0,GOTO = START_TRACEFIELDS
    $$ NO,
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    
                                                              FIN
    
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    ENDPRG     =LABEL/
  • I can try to attach the form as well if that would help.
  • New Discovery (Problem #2):
    • I wrote a dummy program with no subroutines and no variables and passed it from offline my laptop to the machine - No problems, the text position still changed, but the associated value moved with it.

    • I then took the same program and with out subroutines, created a variable for the light setting. This time the text position still changed, but the associated value did not move with it.
    Is this a bug?

    Attached Files
  • Maybe you could check if the dlls are the same between on line / off line in the pc-dmis folder.
    But if it's not a bug, it looks like to it !!!!!!!
  • What JEFMAN said, also make sure that the PC-DMIS versions are the same.

    I noticed that FLAT is assigned with .4 and then it gets assigned as a string value (FLAT=""). I don't know if that can mess it up. I am also thinking of a integer rounding error (0.4 becomes 1). Try assigning 1.4 to FLAT and see what the messagebox tells you what value that FLAT holds.