// This Macro will open all the sh2 or sh3 Shape files in a given directory and convert them to pm4 Process Model files // version supported: 11.x // declare variables STRING:#FileName STRING:#ShapeDir STRING:#ListFile STRING:#FileExt STRING:#MclPath STRING:#TLCMT STRING:#JobNote STRING:#SubStr STRING:#S0 STRING:#S1 #MclPath=MCLFILE() #MclPath=GET_PATH(#MclPath) #ListFile = "FileList.txt" #ListFile = STRTMP("%MclPath%ListFile") //Asks the user for the folder and file type DIALOG[FN=STRTMP("%MclPath\Convert.pcb"), ID=1] // Set wild cards for file type IF(#FileType=0) #FileExt="*.sh2" ENDIF IF(#FileType=1) #FileExt="*.sh3" ENDIF IF(#FileType=2) #FileExt="*.sh?" ENDIF #ShapeDir = GET_PATH(#ShapeDir) #ShapeDir = STRTMP("%ShapeDir%FileExt") // Create list file SHELL[CMD_LN=STRTMP("dir /b/n %ShapeDir > %ListFile"), WA=0, DP=0] // Express mode IF(#OVER=1, OR #ERRORS=1) GRAPHICS_ON[] ELSE GRAPHICS_OFF[] ENDIF // Read list file F_OPEN [FN=#ListFile, TY=R] // Read the Shape file names and save them as Process models #Counter=0 #end = 0 WHILE (#end <> 1) F_READ [FN=#ListFile, FMT="%S ", VR="FileName"] #end = F_EOF(#ListFile) IF (#end = 1) GOTO(END) ENDIF //convert from sh2/sh3 to pm4 IF(#ERRORS=0) AUTO_ANSWER[AA=OK] ELSE AUTO_ANSWER[AA=OFF] ENDIF READ[FN=#FileName, FT=1] AUTO_ANSWER[AA=OFF] #FileName = STRIP_EXT(#FileName) // Allow/Forbid/Promp overwrite IF(#Over=0) AUTO_ANSWER[AA=NO] ENDIF IF(#Over=1) AUTO_ANSWER[AA=OFF] ENDIF IF(#Over=2) AUTO_ANSWER[AA=YES] ENDIF // // Job info // JOS_CONTEXT_OPEN[BASEITEM=16, USERNAME=""] // #JobNote=jos_str(job_note) // // #Counter=0 // #Start=0 // #Length=0 // WHILE(#Counter<=STRLEN(#JobNote)) // // #SubStr=STRSUB(#JobNote,#Counter,4) // // IF(STREQUAL(#SubStr,"#S0=")) // #Start=#Counter+4 // #Counter=#Counter+4 // ENDIF // // IF(#Start>0) // #SubStr=STRSUB(#JobNote,#Counter,2) // IF(TREQUAL(#SubStr,"\n")) // #Length=#Counter-#Start // GOTO(Done) // ENDIF // ENDIF // // #Counter=#Counter+1 // ENDW // @Done // // JOS_FIELD_EDIT[FLDNAME="prt_desc", EXPR="1234567 a job notes"] // // JOS_CHANGES_PROMOTE[] // JOS_CONTEXT_CLOSE[] // Loop through all Steps and modify as needed #OpNum=1 WHILE(#OpNum<=OPNLIST(0)) #StepNum=OPNLIST(#OpNum) // Copy the "Tool Comments" from the "Step notes" to "Description", "User Desc" & "Tool Notes" JOS_CONTEXT_OPEN[BASEITEM=1, USERNAME=#StepNum] #TLCMT=jos_str(st_notes) JOS_FIELD_EDIT[FLDNAME="st_desc", EXPR=#TLCMT] //JOS_FIELD_EDIT[FLDNAME="tm_notes", EXPR=#TLCMT] JOS_FIELD_EDIT[FLDNAME="tl_usrdesc", EXPR=#TLCMT] // Add scribing operation IF(jos(tm_type)=602) JOS_ITEM_NEW[BASEITEM=8, NEWSNCS=1030602] IF(jos(units)=0) JOS_FIELD_EDIT[FLDNAME="cut_feed", EXPR="150.0"] ELSE JOS_FIELD_EDIT[FLDNAME="cut_feed", EXPR="0.38"] ENDIF ENDIF JOS_CHANGES_PROMOTE[] JOS_CONTEXT_CLOSE[] #OpNum=#OpNum+1 ENDW SAVE[FN=STRTMP("%FileName.pm4"), FT=3, GS=0, WP="XY_PLANE"] #Counter=#Counter+1 ENDW @END GRAPHICS_ON[] AUTO_ANSWER[AA=OFF] F_CLOSE [FN=STRTMP("%MclPath%ListFile")] IF(#Counter>0) PAUSE[TX=STRTMP("Macro complete.\n Files processed: %Counter")] ENDIF