FrymasterVB/oldCMNDPROC.BAS

1886 lines
54 KiB
QBasic
Raw Normal View History

2024-12-18 13:56:36 -06:00
Attribute VB_Name = "Main"
DefInt A-Z
Global Place$(300), Lpt$(300), PrinterGroup$(300), Tray$(300), Limits$(300)
Global submask$(300, 2), submaskI%, plt$(40), lptI%, pltI%, sm, que, Replys$(100), replies%
Global replies2, replys2$(100), WDTServerTime!, Constipation%
Global mov$, Mesgline$, Mesgline2$, pgs%, source$, Stoppit%
Global Errors$, cmd$, logcmd$, func$, Destin$, USER01$, USER02$, msgt$
Global MessageFileName$, MessageLogName$, NetWPath$
Global COMPLETE$, COMPLETE2$, INCOME$, PrintCfg$, Reply$, ReplyComplete$, ReplyComplete2$
Global CADPRINT$, QUEHANDL$, CADPRNT2$, TFIL$, MAKEPS$
Global XEPS$, PLOTCFG$, PrinterCFG$, SUBSCFG$, BUFFER$
Global SendACAD%, SendingACAD, ACADComplete$, ACADReply$
Global ACADWait$, ACADIncome$, ACADCH$, FileTimer, Tog$
Global UserDrive$, EngrDrive$, IEDrive$, temppath$
Global SendPROE, SendingPROE, PROEComplete$, PROEWait$, PROEIncome$
Global PROECH$, PROEReply$, PROERPCM$
Global CQueSize%, PrintGroup%
' PROECH$ ' complete.hld semephore file name
' PROEReply$ ' reply.que semephore file name
Sub AddHeaders(infile$, TempFile$, Headr$, minolta$, NoPages%, Rc%)
On Error GoTo AH_Error
crlf$ = Chr$(13) + Chr$(10)
If minolta$ = "Yes" Then
Open temppath$ + "t2.fil" For Output As #1
Print #1, Chr$(27) + "%-12345X@PJL JOB"
Print #1, "@PJL USTATUS JOB=ON"
Print #1, "@PJL JOB NAME=XXXXXXXX"
' Print #1, "@PJL ECHO PPD @(#)mipwp251.ppd 1.9 14:05:09 8/31/98" + crlf$
Print #1, "@PJL SET RET=ON"
Print #1, "@PJL SET ECONOMODE=OFF"
Print #1, "@PJL ENTER LANGUAGE=POSTSCRIPT"
Close #1
Else
Open temppath$ + "t2.fil" For Output As #1
Close #1
End If
Open TFIL$ For Output As #1
Print #1, Headr$
Close #1
If NoPages = 1 Then
Open MAKEPS$ For Output As #1
Print #1, "PSMODE " + infile$ + " " + temppath$ + "t2.fil " + TFIL$ + " " + TempFile$ + " N"
Print #1, "copy c:\work\shelwait.hld c:\work\shelwait.go"
Close #1
Else
Open MAKEPS$ For Output As #1
Print #1, "PSMODE " + infile$ + " " + temppath$ + "t2.fil " + TFIL$ + " " + TempFile$ + " Y"
Print #1, "copy c:\work\shelwait.hld c:\work\shelwait.go"
Close #1
End If
wh = Shell(MAKEPS$, 2)
Call PrintLog("Single Page File...Shell Complete")
Do While IsItRunning(wh) '"C:\WINNT\SYSTEM32\CMD.EXE")
For idfef = 1 To 100
DoEvents
Next
Loop
Call WaitOnIt
AH_Exit:
Exit Sub
AH_Error:
frmMain.lstError.AddItem Date$ + " " + Time$ + "Add Header Error"
Resume AH_Exit
' If NoPages = 1 Then
' Call Fcopy(infile$, TFIL$, Rc%)
' Call PrintLog("Multiple Page File...Copy complete")
' If Rc% = 0 Then
' Call PrintLog("Multiple Page File...Creating temporary file and inserting header Filename:" + TempFile$)
' Open TFIL$ For Input As #1
' Open TempFile$ For Output As #2
' Print #2, Headr$
' While Not (EOF(1))
' a$ = Input(1, #1)
' Print #2, a$;
'' If (a$ = Chr$(10)) Or (a$ = Chr$(13)) Then DoEvents
' Wend
' Close #1, #2
' End If
'
' Call PrintLog("Single Page File...Creating T.Fil")
'' Call PrintLog("Single Page File...Creating T.Fil")
'' Open TFIL$ For Output As #1
'' Print #1, Headr$
'' Close #1
''
'' Call PrintLog("Single Page File...Creating makeps.bat")
'' Open MAKEPS$ For Output As #1
' Print #1, "copy " + TFIL$ + " + " + infile$ + " " + TempFile$
' Print #1, "copy c:\work\shelwait.hld c:\work\shelwait.go"
' Close #1
'
' Shell MAKEPS$
' Call PrintLog("Single Page File...Shell Complete")
' Call WaitOnIt
' Else
' Call PrintLog("Multiple Page File...Copying to t.fil")
' Call Fcopy(infile$, TFIL$, Rc%)
' Call PrintLog("Multiple Page File...Copy complete")
' If Rc% = 0 Then
' Call PrintLog("Multiple Page File...Creating temporary file and inserting header Filename:" + TempFile$)
' Open TFIL$ For Input As #1
' Open TempFile$ For Output As #2
' While Not (EOF(1))
' Line Input #1, a$
' b$ = Trim$(a$)
' If UCase$(Left$(b$, 6)) = "%%PAGE" Then
' Print #2, Headr$
' End If
' Print #2, a$
' DoEvents
' Wend
' Close #1, #2
' End If
' End If
End Sub
Sub PassItToACADServer(comnd$)
'
' this routine takes the information passed to it in
' the variable COMND$ and tacks it on the end of the
' WAIT.QUE file.
' If the WAIT.QUE file is in the process of being passed
' to the ACAD Server then it waits till it is done.
'
On Error GoTo PITAS_Error
SendACAD = False
While SendingACAD = True
DoEvents ' wait for copy to income.que
Wend
Open ACADWait$ For Append As #1
Print #1, comnd$
Close #1
SendACAD = True
PITAS_Exit:
Exit Sub
PITAS_Error:
frmMain.lstError.AddItem Date$ + " " + Time$ + "PassItTOACADServer Error"
Resume PITAS_Exit
End Sub
Sub LoadPlot()
On Error GoTo LP_Error
Open PLOTCFG$ For Input As #1
Do While Not EOF(1)
Line Input #1, a$
If left$(a$, 1) <> ";" Then
If Trim$(a$) <> "" Then
pltI% = pltI% + 1
plt$(pltI%) = a$
frmMain.cboPrinterList.AddItem a$
End If
End If
If pltI% = 40 Then Exit Do
Loop
Close #1
LP_Exit:
Exit Sub
LP_Error:
frmMain.lstError.AddItem Date$ + " " + Time$ + "LoadPlot Error"
Resume LP_Exit
End Sub
Sub LoadPrinters()
On Error GoTo LdPrnt_Error
Open PrinterCFG$ For Input As #1
Do While Not EOF(1)
Line Input #1, a$
a$ = UCase$(Trim$(a$))
frmMain.cboPrinterList.AddItem a$
If left$(a$, 1) <> ";" Then
If a$ <> "" Then
lptI% = lptI% + 1
Call PARSE(a$, lp$, " ", Rc%)
Place$(lptI%) = lp$
Call PARSE(a$, lp$, " ", Rc%)
Lpt$(lptI%) = lp$
Call PARSE(a$, ort$, " ", Rc%)
PrinterGroup$(lptI%) = ort$
Call PARSE(a$, lims$, " ", Rc%)
Limits$(lptI%) = lims$
Call PARSE(a$, Try$, " ", Rc%)
Tray$(lptI%) = Try$
End If
End If
If lptI% = 300 Then Exit Do
Loop
Close #1
LdPrnt_Exit:
Exit Sub
LdPrnt_Error:
frmMain.lstError.AddItem Date$ + " " + Time$ + "LoadPrinters Error"
Resume LdPrnt_Exit
End Sub
Sub LoadSubDirs()
On Error GoTo LdSD_Error
Open SUBSCFG$ For Input As #1
sm = 0
Do While Not EOF(1)
Line Input #1, a$
a$ = UCase$(Trim$(a$))
If left$(a$, 1) <> ";" Then
If a$ <> "" Then
sm = sm + 1
Call PARSE(a$, M$, " ", Rc%)
submask$(sm, 1) = Trim$(M$)
Call PARSE(a$, sb$, " ", Rc%)
submask$(sm, 2) = Trim$(sb$)
End If
End If
If sm >= 300 Then
Call PrintLog("E R R O R L O A D I N G S U B S . C F G !!!!!!!!!")
Call PrintLog("E R R O R L O A D I N G S U B S . C F G !!!!!!!!!")
Call PrintLog("E R R O R L O A D I N G S U B S . C F G !!!!!!!!!")
Call PrintLog("E R R O R L O A D I N G S U B S . C F G !!!!!!!!!")
Call PrintLog("E R R O R L O A D I N G S U B S . C F G !!!!!!!!!")
Call PrintLog("E R R O R L O A D I N G S U B S . C F G !!!!!!!!!")
Call PrintLog("E R R O R L O A D I N G S U B S . C F G !!!!!!!!!")
Call PrintLog("E R R O R L O A D I N G S U B S . C F G !!!!!!!!!")
Call PrintLog("E R R O R L O A D I N G S U B S . C F G !!!!!!!!!")
Call PrintLog("E R R O R L O A D I N G S U B S . C F G !!!!!!!!!")
Call PrintLog("E R R O R L O A D I N G S U B S . C F G !!!!!!!!!")
Call PrintLog("E R R O R L O A D I N G S U B S . C F G !!!!!!!!!")
Call PrintLog("E R R O R L O A D I N G S U B S . C F G !!!!!!!!!")
Exit Do
End If
Loop
submaskI% = sm
Close #1
LdSD_Exit:
Exit Sub
LdSD_Error:
frmMain.lstError.AddItem Date$ + " " + Time$ + "Load Sub Dir Error"
Resume LdSD_Exit
End Sub
Sub PrintPSFile(printQname$, Who$)
PrintLog "Print PS File...calling ADDHEADERS"
If Tog$ = ".1" Then Tog$ = ".2" Else Tog$ = ".1"
PrintBufferFileName$ = BUFFER$ + Tog$
crlf$ = Chr$(13) + Chr$(10)
'
'Special minolta code!!!!!!
'
If Tray$(que) = "PS3" Then
' If (Lpt$(que) = "SVCMINOLTA") Or (Lpt$(que) = "DOCKC") Then
HED$ = "%%BoundingBox: 0 0 792 1224" + crlf$
HED$ = HED$ + "%%BeginFeature: *PageSize Tabloid" + crlf$
HED$ = HED$ + " << /PageSize [792 1224]" + crlf$
HED$ = HED$ + " /ImagingBBox null" + crlf$
HED$ = HED$ + " >> setpagedevice" + crlf$
HED$ = HED$ + "%%EndFeature" + crlf$
minolta$ = "Yes"
Else
HED$ = ""
minolta$ = ""
End If
'
'
'
HED$ = HED$ + "/Helvetica findfont 10 scalefont setfont" + crlf$
HED$ = HED$ + "45 38 moveto" + crlf$
HED$ = HED$ + "(" + Mesgline$ + ") show"
HED$ = HED$ + crlf$ + "/Helvetica findfont 10 scalefont setfont" + crlf$
HED$ = HED$ + "45 48 moveto" + crlf$
HED$ = HED$ + "(" + Mesgline2$ + ") show"
Call AddHeaders(mov$, PrintBufferFileName$, HED$, minolta$, pgs%, Rc%)
nam1$ = Trim$(left$(source$ + " ", 8)) + "_" + Trim$(left$(USER01$ + " ", 3))
PrintLog "Print PS File...creating printcfg.bat"
On Error GoTo PrnPSF_Error
Open PrintCfg$ For Output As #1
Print #1, "NPRINT " + PrintBufferFileName$ + " /NAM=" + nam1$ + " /Q=Q-" + Lpt$(que) + " NT NB NFF NNOTI"
Print #1, "copy c:\work\shelwait.hld c:\work\shelwait.go"
Close #1
PrintLog "Print PS File...created file printcfg.bat"
PrintLog "Print PS File...shelling to printcfg.bat"
'
'
'
Select Case printQname$
Case "DISTILL"
frmPSSpooler.lstDistiller.AddItem Who$ + "|" + PrintBufferFileName$
PrintLog "Sending print to Distiller Waiting"
While frmPSSpooler.lstDistiller.ListCount > 0
For idfef = 1 To 100
DoEvents
Next
Wend
Case "DISTILLENG", "DISTILLSVC", "DISTILLBDV"
frmPSSpooler.lstDistiller.AddItem printQname$ + Who$ + "|" + PrintBufferFileName$
PrintLog "Sending print to Distiller Waiting"
While frmPSSpooler.lstDistiller.ListCount > 0
For idfef = 1 To 100
DoEvents
Next
Wend
Case Else
If frmMain.UseSpooler = 1 Then
frmPSSpooler.lstFiles.AddItem Lpt$(que) + "|" + PrintBufferFileName$
PrintLog "Sending print to PS Spooler and Waiting"
While frmPSSpooler.lstFiles.ListCount > 0
For idfef = 1 To 100
DoEvents
Next
Wend
PrintLog "PS Spooler Complete"
Else
wh = Shell(PrintCfg$, 2)
Call PrintLog("Single Page File...Shell Complete")
Do While IsItRunning(wh) '"C:\WINNT\SYSTEM32\CMD.EXE")
For idfef = 1 To 100
DoEvents
Next
Loop
PrintLog "Print PS File...shell complete printcfg.bat"
Call WaitOnIt
End If
End Select
'
'
'
PrnPSF_Exit:
Exit Sub
PrnPSF_Error:
frmMain.lstError.AddItem Date$ + " " + Time$ + "PrintPSFile Error"
Resume PrnPSF_Exit
End Sub
Function Replace$(strng$, sfnd$, Rplc$)
Dim i%, s$
s$ = ""
For i% = 1 To Len(strng$)
If Mid$(strng$, i%, Len(sfnd$)) = sfnd$ Then
s$ = s$ + Rplc$
Else
s$ = s$ + Mid$(strng$, i%, 1)
End If
Next
Replace$ = s$
End Function
'
' This subroutine searches the array submask$(300,2) for the subdirectory
' that this part is in . . . if the part has no agreed to mask then it is
' given no sub directory
'
Sub subsearch(part$, subd$)
subd$ = ""
If Len(part$) < 7 Then Exit Sub
sear$ = left$(part$ + " ", 7)
For ix = 1 To submaskI%
lx = InStr(submask$(ix, 1), "X") - 1
If lx = -1 Then lx = 7
If lx = 0 Then
subd$ = submask$(ix, 2) + "\"
Exit For
End If
If left$(part$, lx) = left$(submask$(ix, 1), lx) Then
subd$ = submask$(ix, 2) + "\"
Exit For
End If
Next
End Sub
Public Sub StartSystem()
'On Error GoTo allerrs
'
' P DANNY.DWG ENGR WO999999 JO88888
'
' ECO_IN FILE.NAM USER
'
' ECO_OUT FILE.NAM USER
'
'
' Process Income.Que File
'
StepNo$ = "call WDTserver1" 'Debug Var
Call WDTServer
StepNo$ = "?" 'Debug Var
frmMain.LstPrint.Enabled = True
If Exists(COMPLETE$) And Exists(INCOME$) Then
PrintLog "'Complete File' exists translating commands"
On Error GoTo StartError_Error
StepNo$ = "Open Income$" 'Debug Var
Open INCOME$ For Input As #4
StepNo$ = "?" 'Debug Var
While Not (EOF(4))
If replies <> 0 Then
GoSub GetCmd
Else
Line Input #4, cmd$
If Len(cmd$) > 6 Then
'
' is this the dreaded CheckIn command?
'
ccc$ = UCase$(Mid$(cmd$, 1, 1))
Select Case ccc$
Case "I"
frmMain.lstCheckIn.AddItem cmd$
DoEvents
cmd$ = ""
Case "Y"
frmMain.lstCheckIn.AddItem cmd$
DoEvents
cmd$ = ""
Case "P"
PrinterName$ = Trim$(UCase$(Mid$(cmd$, 10, 10)))
PartName$ = Trim$(UCase$(Mid$(cmd$, 2, 7)))
prtgrp = 0
For i = 1 To lptI%
If UCase$(Place$(i)) = PrinterName$ Then
prtgrp = Val(PrinterGroup$(i))
Exit For
End If
Next i
If prtgrp > frmMain.lstPGroup.Count - 1 Then prtgrp = 0
ChecinQ = False
xxxx = frmMain.lstCheckIn.ListCount
If xxxx > 0 Then
For ixx = 0 To xxxx - 1
cmx$ = frmMain.lstCheckIn.List(ixx)
cmxPN$ = Trim$(UCase$(Mid$(cmx$, 2, 7)))
If PartName$ = cmxPN$ Then
ChecinQ = True
Exit For
End If
Next
End If
If ChecinQ Then
frmMain.lstCheckIn.AddItem cmd$
Else
frmMain.lstPGroup(prtgrp).AddItem cmd$
End If
DoEvents
cmd$ = ""
Case Else
If cmd$ <> "" Then
frmMain.lstPGroup(0).AddItem cmd$
DoEvents
cmd$ = ""
End If
End Select
End If
End If
If cmd$ <> "" Then
StepNo$ = "GoSub ProcessCmd1" 'Debug Var
GoSub ProcessCmd
End If
' Call checkPROEServer
StepNo$ = "call WDTserver2" 'Debug Var
Call WDTServer
Wend
Close #4
PrintLog "reseting the semephore files and looping to top"
StepNo$ = "Kill Complete$" 'Debug Var
KillIt (COMPLETE$)
StepNo$ = "Kill INCOME$" 'Debug Var
KillIt (INCOME$)
StepNo$ = "Enter Kill Loop" 'Debug Var
ccnt = 0
Do While (Exists(COMPLETE$) Or Exists(INCOME$))
Beep& 800&, 500&
Beep& 700&, 500&
If ccnt = 0 Then
ccnt = 1
frmMain.lstError.AddItem "******* did not kill complete or income file" + Time + " " + Date
PrintLog "******* did not kill complete or income file"
End If
pause (10)
KillIt (COMPLETE$)
KillIt (INCOME$)
Loop
StepNo$ = "Exit Kill Loop" 'Debug Var
Else
If replies <> 0 Then
StepNo$ = "GoSub GetCmd" 'Debug Var
GoSub GetCmd
StepNo$ = "GoSub ProcessCmd2" 'Debug Var
GoSub ProcessCmd
Else
cmd$ = ""
For i = 1 To frmMain.lstPGroup.Count
PrintGroup = PrintGroup + 1
If PrintGroup > frmMain.lstPGroup.Count - 1 Then PrintGroup = 1
If frmMain.lstPGroup(PrintGroup).ListCount <> 0 Then
cmd$ = frmMain.lstPGroup(PrintGroup).List(0)
frmMain.lstPGroup(PrintGroup).RemoveItem (0)
Exit For
End If
Next
If cmd = "" Then
PrintGroup = 0
If frmMain.lstPGroup(PrintGroup).ListCount <> 0 Then
cmd$ = frmMain.lstPGroup(PrintGroup).List(0)
frmMain.lstPGroup(PrintGroup).RemoveItem (0)
End If
End If
If cmd$ <> "" Then
If UCase$(left$(cmd$, 5)) = "*CAD*" Then
cmd$ = Mid$(cmd$, 6)
End If
StepNo$ = "GoSub ProcessCmd3" 'Debug Var
GoSub ProcessCmd
Else
'
'handle checkin list
'
If frmMain.lstCheckIn.ListCount <> 0 Then
cmd$ = frmMain.lstCheckIn.List(0)
frmMain.lstCheckIn.RemoveItem (0)
If UCase$(left$(cmd$, 5)) = "*CAD*" Then
cmd$ = Mid$(cmd$, 6)
End If
StepNo$ = "GoSub ProcessCmd4" 'Debug Var
GoSub ProcessCmd
End If
End If
End If
StepNo$ = "Call FlushReplies" 'Debug Var
Call FlushReplies
StepNo$ = "Call WDTServer3" 'Debug Var
Call WDTServer
If (Exists(COMPLETE$) And (Not (Exists(INCOME$)))) Then
frmMain.lstError.AddItem "******* An odd condition exists complete$ exists and Income$ doesn't " + Time$ + " " + Date$
PrintLog "******* An odd condition exists complete$ exists and Income$ doesn't"
StepNo$ = "Odd condition" 'Debug Var
KillIt (COMPLETE$)
End If
End If
Exit Sub
GetCmd:
cmd$ = Replys$(1)
replies = replies - 1
For rpx = 1 To replies
Replys$(rpx) = Replys$(rpx + 1)
Next
frmMain.lstReply1.RemoveItem 0
If UCase$(left$(cmd$, 5)) = "*CAD*" Then
cmd$ = Mid$(cmd$, 6)
End If
Return
ProcessCmd:
'''''' 1 2 3 4 5 6
'''''' 123456789012345678901234567890123456789012345678901234567890
''''''print P Part Printer Banner1 Date Product Number mesg type
'''''' 1<---8--><---10---><---10---><-----14-----><------15----->XY
'''''' 123456781234567890123451234567890123456789012345678
''''''ck out O Part# Product # Directory New Name Date EXT
'''''' in 1<---8--><------15-----><---10---><--8---><-----14----->
''''''refer R<---8--><------15-----><---10---><--8---><-----14-----><3>
'''''' 1 2 3 4 5 6 7
'''''' 1234567890123456789012345678901234567890123456789012345678901234567890
''''''
'''''' back
''''''ie move
'''''' 1 2 3 4 5 6
'''''' 1234567890123456789012345678901234567890123456789012345678901234567890
'''''' PROE 1234567812345678901234512345678901234567890
'''''' in 1<---8--><------15-----><---10---><--8---><-----14----->X
''''''start S Part# Product # Directory IE Dir Date IGES Indicator
''''''end D Part# Product # Directory IE Dir Date
''''''IGES G Part# Product # Directory IE Dir Date
''''''ASM A Part# Product # Directory IE Dir Date
''''''Copy Y Part# Product # <- newpart 15-><-user 9-><- date 14 -->
''''''kill MU X part# Product # Directory Date
''''''CLS
Errors$ = " "
cmd$ = RPad$(UCase$(cmd$), 77)
FileExtCopied$ = ""
logcmd$ = cmd$
func$ = left$(cmd$, 1)
source$ = Mid$(cmd$, 2, 8)
Call subsearch(source$, subdirect$)
Destin$ = Mid$(cmd$, 10, 10)
USER01$ = Mid$(cmd$, 20, 10)
USER02$ = Mid$(cmd$, 30, 14)
msgt$ = Mid$(cmd$, 59, 1) ' message to print indicator
Rohs$ = UCase(Mid$(cmd$, 60, 1)) 'rohs message
Select Case Rohs$
Case " ", "Y"
Mesgline2$ = " MUST BE ROHS COMPLIANT AFTER MARCH 1, 2006 "
Case "N"
Mesgline2$ = " "
Case Else
Mesgline2$ = " MUST BE ROHS COMPLIANT AFTER MARCH 1, 2006 "
End Select
ProductRev$ = Mid$(cmd$, 9, 1)
Product$ = Trim(Mid$(cmd$, 10, 15))
NewProduct$ = Trim(Mid$(cmd$, 25, 15))
Directry$ = Mid$(cmd$, 25, 10)
NewName$ = Mid$(cmd$, 35, 8)
Newdate$ = Mid$(cmd$, 43, 14)
IEDir$ = Mid$(cmd$, 35, 10)
IEDate$ = Mid$(cmd$, 45, 14)
RefExt$ = Mid$(cmd$, 57, 3)
IGESPRoe$ = Mid$(cmd$, 57, 1)
PrintLog "command received >" + cmd$
pgs% = 0
Select Case func$
Case "P" ' plot
GoSub PrintDrawing
Case "W" ' wiring diagram
GoSub PrintWiring
Case "R" ' reference
GoSub MoveOUT
Case "O" ' checkout
GoSub MoveOUT
Case "B" ' checkout
GoSub MoveBACK
Case "I" ' checkin
GoSub MoveIN
cmd$ = RPad(cmd$, 58) + IGESIncluded$
Case "Y" ' Copy to New part
GoSub CopyPart
Case "E"
' move to IE
GoSub MoveIE
Case "X"
GoSub KillMarkUp
Case "A", "G", "S", "D"
GoSub Hand2Proe ' Proe Command
pgs% = -1
Case Else
Errors$ = "E99" ' invalid command
End Select
GoSub FormatReply
GM$ = RPad$("*CAD*S" + frmMain.MakePGroupPacket, CQueSize%)
frmMain.lblPkt.Caption = GM$
replies2 = replies2 + 1
replys2$(replies2) = GM$
frmMain.lstReply2.AddItem GM$
If pgs% >= 0 Then
' Print #5, ReplyMsg$
replies2 = replies2 + 1
PrintLog "REPLY>>>" + ReplyMsg$ + "<<<"
replys2$(replies2) = ReplyMsg$
frmMain.lstReply2.AddItem ReplyMsg$
End If
' While frmCheckAssembly.lstRepliesToProcess.ListCount > 0
' rplyfrmass$ = frmCheckAssembly.lstRepliesToProcess.List(0)
' frmCheckAssembly.lstRepliesToProcess.RemoveItem 0
' frmMain.lstReply2.AddItem rplyfrmass$
' replies2 = replies2 + 1
' replys2$(replies2) = rplyfrmass$
' Wend
If (replies > 2) Or (replies2 > 2) Then
Call FlushReplies
End If
Return
FormatReply:
If Errors$ = "" Then Errors$ = " "
CADFlag$ = right$(" " + CADFlag$, 1)
NOFiles$ = right$("000" + Trim$(Str$(NoOfFilesMoved)), 3)
ReplyMsg$ = RPad$("*CAD*" + cmd$, CQueSize% - 3) + Errors$
If (func$ <> "P") And (func$ <> "Y") Then
Mid$(ReplyMsg$, 62, 4) = right$(" " + CADFlag$ + NOFiles$, 4)
PrintLog "Main - Process Income.Que ... printing to reply.que"
Mid$(ReplyMsg$, 66, 9) = LPad$(Format$(FileSizes&, "0"), 9)
Mid$(ReplyMsg$, 75, 48) = RPad$(FileExtCopied$, 48)
End If
GoSub logline
Return
Hand2Proe:
If IGESPRoe$ <> "A" Then
Call PassItToPROEServer(cmd$)
Else
Call PassItToACADServer(cmd$)
End If
mov$ = ""
pgs% = -1
Return
PrintDrawing:
pgs% = 0
qname$ = Trim$(Destin$)
Namer$ = Trim$(USER01$)
Who$ = Namer$ + "-" + source$
TypPrint$ = " "
InvMesg$ = " "
For i = 1 To pltI%
If msgt$ = LTrim$(left$(plt$(i), 1)) Then
TypPrint$ = Trim$(Mid$(plt$(i), 2, 31))
InvMesg$ = Trim$(Mid$(plt$(i), 34))
Exit For
End If
Next
que = 0
For i = 1 To lptI%
If UCase$(Place$(i)) = qname$ Then
que = i
Exit For
End If
Next i
'
' Does PRO-E Exist?
'
mov$ = EngrDrive$ + subdirect$ + Trim$(source$)
movplt$ = mov$ + ".plt"
movps$ = mov$ + ".ps"
Movdwg$ = mov$ + ".dwg"
moveps$ = mov$ + ".eps"
If Not (Exists%(movplt$)) Then
'
' No, Does POST SCRIPT Exist?
'
If Not (Exists%(movps$)) Then
'
' No, Does ACAD Exist?
'
If Not (Exists%(Movdwg$)) Then
'
' No, Does Encapsulated PS Exist?
'
If Not (Exists%(moveps$)) Then
'
' No, Nothing exists --- ERROR !!!
'
mov$ = ""
Else ' .EPS Exists !!!!
'
' EPS Exists - One page to print
'
mov$ = moveps$
pgs% = 1
End If
Else ' .DWG Exists !!!!
'
' ACAD Exists - Create EPS FILE!!! then Print
'
Call PassItToACADServer(cmd$)
mov$ = ""
pgs% = -1
End If
Else ' .PS Exists !!!!
'
' PS Exists - One page to print
'
mov$ = movps$
pgs% = 1
End If
Else ' .PLT Exists !!!!
'
' Pro-E Exists - Two pages to print
'
mov$ = movplt$
pgs% = 2
End If
If pgs% <> -1 Then ' -1 means it was passed to another server
Errors$ = " " ' no error
PrintLog "Mov$=" + mov$
If Exists%(Trim$(mov$)) Then
If FileLen(Trim$(mov$)) = 0 Then
Errors$ = "P03"
Else
Mesgline$ = " " + TypPrint$ + " " + Time$ + " " + Date$ + " "
Mesgline$ = Mesgline$ + InvMesg$ + " " + mov$ + " printed at "
Mesgline$ = Mesgline$ + qname$ + " by " + USER01$
PrintLog "Message Line =" + Mesgline$
PSFileStr$ = Replace$(Mesgline$, "\", "\\")
Mesgline$ = PSFileStr$
Call PrintPSFile(qname$, Who$)
End If
Else
Errors$ = "P01"
End If
End If
Return
MoveOUT:
'
' Moves the Drawing from the Main CAD Directory to the User
'
If left$(source$, 2) = "PD" Then
RefExt$ = "TXT"
End If
If left$(source$, 2) = "SW" Then
Qfldr$ = EngrDrive$ + subdirect$ + Trim$(source$)
Ufldr$ = UserDrive$ + "\" + Trim$(Directry$) + "\" + Trim$(NewName$)
frmFolderCopy.pthSrc = Qfldr$
frmFolderCopy.pthDst = Ufldr$
Call frmFolderCopy.Command1
Else
FrommExt$ = UCase$(Trim$(RefExt$))
If func$ = "R" And (FrommExt$ <> "") Then
Fromm$ = EngrDrive$ + subdirect$ + Trim$(source$) + "." + FrommExt$
fromm1$ = Trim$(source$)
fromm1$ = EngrDrive$ + subdirect$ + left$(fromm1$, Len(fromm1$) - 1) + "." + FrommExt$
If (FrommExt$ <> "PLT") And (FrommExt$ <> "TXT") Then Fromm$ = fromm1$
Too$ = UserDrive$ + "\" + Trim$(Directry$) + "\" + Trim$(NewName$) + "." + FrommExt$
Too1$ = Trim$(NewName$)
Too1$ = UserDrive$ + "\" + Trim$(Directry$) + "\" + left$(Too1$, Len(Too1$) - 1) + "." + FrommExt$
If (FrommExt$ = "DRW") Or (FrommExt$ = "PRT") Or (FrommExt$ = "ASM") Or (FrommExt$ = "BOM") Then
Too$ = Too1$ + ".1"
End If
PrintLog "Main - CopyIt... copying file " + Fromm$ + " to " + Too$
GoSub CopyWithCount
If Rc% <> 0 Then
Errors$ = "C" + right$("00" + Trim$(Str$(Rc%)), 2)
NoOfFilesMoved = 0
Else
Errors$ = " "
NoOfFilesMoved = 1
End If
Else
If left$(source$, 2) = "PD" Then
Tailn$ = ""
Else
Tailn$ = ".1"
End If
Fromm$ = EngrDrive$ + subdirect$ + Trim$(source$)
Too$ = UserDrive$ + "\" + Trim$(Directry$) + "\" + Trim$(NewName$)
GoSub CopyIt
End If
Return
MoveIN:
'
' Moves the Drawing from the User to then Main CAD Directory
'
Errors$ = ""
Call subsearch(NewName$, subdirect$)
Fromm$ = UserDrive$ + "\" + Trim$(Directry$) + "\" + Trim$(NewName$)
Too$ = EngrDrive$ + subdirect$ + Trim$(NewName$)
TooIE$ = IEDrive$ + "\IGES\" + Trim$(NewName$)
FrommPE$ = Trim$(NewName$)
FrommPE$ = left$(FrommPE$, Len(FrommPE$) - 1)
FrommPE$ = UserDrive$ + "\" + Trim$(Directry$) + "\" + Trim$(FrommPE$)
If ThisIsProE(Fromm$) Then
jc% = 0
Call RenameProe(FrommPE$ + ".DRW", Rc%): jc% = jc% + Rc%
Call RenameProe(FrommPE$ + ".PRT", Rc%): jc% = jc% + Rc%
Call RenameProe(FrommPE$ + ".PTD", Rc%): jc% = jc% + Rc%
bomcnt% = 0
Call RenameProe(FrommPE$ + ".BOM", Rc%): jc% = jc% + Rc%: bomcnt = bomcnt + Rc%
Call RenameProe(FrommPE$ + ".IGS", Rc%) 'IGES Files don't count
If Rc% = 0 Then
IGESIncluded$ = "0"
Else
IGESIncluded$ = "1"
Call Fcopy(FrommPE$ + ".IGS", TooIE$ + ".IGS", Rc%)
PurgeIt (FrommPE$ + ".IGS")
End If
Call RenameProe(FrommPE$ + ".ASM", Rc%): jc% = jc% + Rc%
assm% = 0
If Rc% <> 0 Then 'do we have an assembly?
If frmCheckAssembly.chkNoCheck = 0 Then 'are we checking assemblies?
If frmCheckAssembly.Execute(FrommPE$ + ".asm") > 90 Then
assm% = 1
Errors$ = "I14"
End If
End If
If (assm% = 0) Then
If (bomcnt <> 0) Then
'
' if we have an assembly we might have a bom
'
frmBOM.txtGood.Text = "False"
frmBOM.txtAssembly = NewName$
frmBOM.txtBOM = FrommPE$ + ".BOM"
If (Errors$ = "") And (jc% <> 0) Then
Call frmBOM.cmdClearBOM_Click ' clear the old assembly
Call frmBOM.cmdReadBOM_Click ' read in the new assembly
End If
Select Case frmBOM.txtGood.Text
Case "0" ' good bom
Case "1" ' bad bom
assm% = 1
Errors$ = "I16"
Case "2" ' no bom
assm% = 1
Errors$ = "I15"
Case Else ' unknown bom
assm% = 1
Errors$ = "I16"
End Select
Else
Prefx$ = left(NewName$, 3)
Suffix$ = right(NewName$, 1)
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ", UCase(Suffix$)) <> 0 Then
If (Prefx$ <> "810") And (Prefx$ <> "807") Then
assm% = 1
Errors$ = "I15"
End If
End If
End If
End If
End If
If assm% = 0 Then
If jc% = 0 Then
Errors$ = "C06"
frmBOM.txtAssembly = NewName$
Call frmBOM.cmdClearBOM_Click
Else
Lev$ = UCase$(right$(Fromm$, 1))
plev$ = Trim$(UCase$(right$(source$, 1)))
If plev$ <> "" Then
Fromm$ = left$(Too$, Len(Too$) - 1)
Call SaveRev(Fromm$, plev$)
PurgeIt (Fromm$ + ".DRW")
PurgeIt (Fromm$ + ".PTD")
PurgeIt (Fromm$ + ".PRT")
PurgeIt (Fromm$ + ".BOM")
PurgeIt (Fromm$ + ".ASM")
Fromm$ = UserDrive$ + "\" + Trim$(Directry$) + "\" + Trim$(NewName$)
Too$ = EngrDrive$ + subdirect$ + Trim$(NewName$)
End If
End If
Else
'
' if the assembly is bad clear it out of the work file
'
frmBOM.txtAssembly = NewName$
Call frmBOM.cmdClearBOM_Click
End If
End If
If Errors$ = "" Then
Killr$ = Too$
Tailn$ = ""
GoSub CopyIt
GoSub DeleteIt
Killr$ = ""
End If
Return
MoveBACK:
'
' Moves the Drawing from the Main CAD Directory to the User
'
Call subsearch(NewName$, subdirect$)
Too$ = UserDrive$ + "\" + Trim$(Directry$) + "\" + Trim$(NewName$)
Fromm$ = EngrDrive$ + subdirect$ + Trim$(NewName$)
Killr$ = Too$
Tailn$ = ".1"
GoSub CopyIt
Fromm$ = EngrDrive$ + subdirect$ + Trim$(NewName$)
GoSub DeleteIt
'If ThisIsProE(fromm$) Then
Lev$ = UCase$(right$(Fromm$, 1))
If Lev$ > "A" Then
plev$ = Chr$(Asc(Lev$) - 1)
If plev$ = "I" Then plev$ = "H"
If plev$ = "O" Then plev$ = "N"
Call RestoreLev(Fromm$, plev$)
End If
'End If
Killr$ = ""
Return
CopyPart:
'
' Copies a Drawing from the Main CAD Directory to the Main CAD Directory with a new name
'
Call subsearch(Product$, subdirect$)
Fromm$ = EngrDrive$ + subdirect$ + Product$ + ProductRev$
Call subsearch(NewProduct$, subdirect$)
Too$ = EngrDrive$ + subdirect$ + NewProduct$ + ProductRev$
Tailn$ = ""
GoSub CopyIt
Killr$ = ""
Return
KillMarkUp:
'
' kills the markup drawing
'
kll$ = EngrDrive$ + "\Markup\" + Trim$(Directry$) + "\" + Trim$(source$)
If Exists(kll$ + ".zip") Then
On Error Resume Next
Kill kll$ + ".zip"
On Error GoTo 0
End If
If Exists(kll$ + ".mrk") Then
On Error Resume Next
Kill kll$ + ".mrk"
On Error GoTo 0
End If
Return
MoveIE:
'
' Moves the Drawing from the Main CAD Directory to the IE User
'
Fromm$ = EngrDrive$ + subdirect$ + Trim$(source$)
Too$ = IEDrive$ + "\" + Trim$(Directry$) + "\" + Trim$(NewName$)
Tailn$ = ""
GoSub CopyIt
Return
DeleteIt:
' If rc% = 0 Then
If CADFlag$ = "P" Then
fromm1$ = left$(Fromm$, Len(Fromm$) - 1)
PurgeIt (Fromm$ + ".PLT")
PurgeIt (fromm1$ + ".DRW")
PurgeIt (fromm1$ + ".PTD")
PurgeIt (fromm1$ + ".PRT")
PurgeIt (fromm1$ + ".BOM")
PurgeIt (fromm1$ + ".ASM")
ElseIf CADFlag$ = "E" Then
PurgeIt (Fromm$ + ".TXT")
Else
PurgeIt (Fromm$ + ".DWG")
End If
PrintLog "Main - DeleteIt... deleting file " + Fromm$
' End If
Return
CopyIt:
'
' copies all files related to a drawing
' from the FROMM$ to the TOO$
'
' FROMM$ and TOO$ are preserved
'
' FROMM$ and TOO$ must be in the format pppppppr (no extension)
' where ppppppp = part number and r = revision level
'
' Returns
' NoOfFilesMoved
' CADFlag = "A" or "P" or "E" or "S"
'
'
NoOfFilesMoved = 0
FileExtCopied$ = ""
CADFlag$ = ""
HFromm$ = Fromm$
HToo$ = Too$
If left(source$, 1) = "S" Then 'This is special copy (Folder)
If Exists%(Fromm$ + ".PLT") Then
CADFlag$ = "P" ' Proe
fromm1$ = Fromm$
Too1$ = Too$
Fromm$ = Fromm$ + ".PLT"
Too$ = Too$ + ".PLT"
If left$(source$, 2) = "PS" Then
CADFlag$ = "S" ' Palm checkin
End If
ElseIf left$(source$, 2) = "PD" Then
CADFlag$ = "E" ' Parameter Data File
Fromm$ = Fromm$ + ".TXT"
Too$ = Too$ + ".TXT"
Else
CADFlag$ = "A" ' Autocad Files
Fromm$ = Fromm$ + ".DWG"
Too$ = Too$ + ".DWG"
If Killr$ <> "" Then
Killr$ = Killr$ + ".PS"
If Exists%(Killr$) Then
Kill Killr$
End If
End If
End If
PrintLog "Main - CopyIt... copying file " + Fromm$ + " to " + Too$
GoSub CopyWithCount
If Rc% <> 0 Then
Errors$ = "C" + right$("00" + Trim$(Str$(Rc%)), 2)
NoOfFilesMoved = 0
FileExtCopied$ = ""
Else
Errors$ = " "
NoOfFilesMoved = 1
End If
FileSizes& = 0
If (NoOfFilesMoved = 1) Then
Select Case CADFlag$
Case "P"
'
' move the ProE files!!!!!!
'
fromm1$ = left$(fromm1$, Len(fromm1$) - 1) 'take off revision
Too1$ = left$(Too1$, Len(Too1$) - 1) 'take off revision
Fromm$ = fromm1$ + ".DRW"
Too$ = Too1$ + ".DRW" + Tailn$
GoSub CopyWithCount
If Rc% = 0 Then
FileSizes& = FileLen(Fromm$)
End If
Fromm$ = fromm1$ + ".PTD"
Too$ = Too1$ + ".PTD"
GoSub CopyWithCount
Fromm$ = fromm1$ + ".PRT"
Too$ = Too1$ + ".PRT" + Tailn$
GoSub CopyWithCount
Fromm$ = fromm1$ + ".BOM"
Too$ = Too1$ + ".BOM" + Tailn$
GoSub CopyWithCount
Fromm$ = fromm1$ + ".ASM"
Too$ = Too1$ + ".ASM" + Tailn$
GoSub CopyWithCount
Case "S"
'
' move the ProE files!!!!!!
'
fromm1$ = left$(fromm1$, Len(fromm1$) - 1) 'take off revision
Too1$ = left$(Too1$, Len(Too1$) - 1) 'take off revision
Fromm$ = fromm1$ + ".DRW"
Too$ = Too1$ + ".DRW" + Tailn$
GoSub CopyWithCount
If Rc% = 0 Then
FileSizes& = FileLen(Fromm$)
End If
Fromm$ = fromm1$ + ".PTD"
Too$ = Too1$ + ".PTD"
GoSub CopyWithCount
Fromm$ = fromm1$ + ".PRT"
Too$ = Too1$ + ".PRT" + Tailn$
GoSub CopyWithCount
Fromm$ = fromm1$ + ".BOM"
Too$ = Too1$ + ".BOM" + Tailn$
GoSub CopyWithCount
Fromm$ = fromm1$ + ".ASM"
Too$ = Too1$ + ".ASM" + Tailn$
GoSub CopyWithCount
'
' need to xfer the subdirectory here
'
Case Else
FileSizes& = FileLen(Fromm$)
End Select
End If
Fromm$ = HFromm$
Too$ = HToo$
Return
CopyWithCount:
Too$ = LCase$(Too$)
Call Fcopy(Fromm$, Too$, Rc%)
If (Rc% = 0) And (CADFlag$ = "P") Then
Call MyLowercaser(Too$)
End If
If Rc% = 0 Then
NoOfFilesMoved = NoOfFilesMoved + 1
extensd = InStr(Fromm$, ".")
If extensd <> 0 Then
Extens$ = LPad$(Mid$(Fromm$, extensd + 1, 3), 4)
FileExtCopied$ = FileExtCopied$ + Extens$
End If
End If
Return
logline:
If frmMain.ChkLogging.value = 1 Then
If func$ <> "P" Then
Logs$ = "Extensions=>" + FileExtCopied$
Else
Logs$ = ""
End If
Logs$ = Errors$ + logcmd$ + Logs$
Call Messages(Logs$)
End If
Return
allerrs:
On Error GoTo 0
Open MessageFileName$ For Output As #11
Print #11, " I HAVE BEEN TERMINATED"
Close #11
End
FileRETRY:
frmMain.ErrorCondition.Caption = "File Retry - StartSystem"
If Err.Number = 70 Then
frmMain.FileErrInd.value = True
FileTimer = 0
DoEvents
While FileTimer > 0
DoEvents
Wend
Resume
End If
On Error GoTo 0
Resume
PrintWiring:
pgs% = 0
qname$ = Trim$(Destin$)
Namer$ = Trim$(USER01$)
TypPrint$ = " "
InvMesg$ = " "
For i = 1 To pltI%
If msgt$ = LTrim$(left$(plt$(i), 1)) Then
TypPrint$ = Trim$(Mid$(plt$(i), 2, 31))
InvMesg$ = Trim$(Mid$(plt$(i), 34))
Exit For
End If
Next
que = 0
For i = 1 To lptI%
If UCase$(Place$(i)) = qname$ Then
que = i
Exit For
End If
Next i
'
' Does PRO-E Exist?
'
mov$ = EngrDrive$ + subdirect$ + Trim$(source$)
movplt$ = mov$ + ".wir"
If Not (Exists%(movplt$)) Then
mov$ = ""
Else ' .PLT Exists !!!!
'
' Pro-E Exists - Two pages to print
'
mov$ = movplt$
pgs% = 1
End If
Errors$ = " " ' no error
PrintLog "Mov$=" + mov$
If Exists%(Trim$(mov$)) Then
If FileLen(Trim$(mov$)) = 0 Then
Errors$ = "P03"
Else
Mesgline$ = " " + TypPrint$ + " " + Time$ + " " + Date$ + " "
Mesgline$ = Mesgline$ + InvMesg$ + " " + mov$ + " printed at "
Mesgline$ = Mesgline$ + qname$ + " by " + USER01$
PrintLog "Message Line =" + Mesgline$
PSFileStr$ = Replace$(Mesgline$, "\", "\\")
Mesgline$ = PSFileStr$
Call PrintPSFile(qname$, Who$)
End If
Else
Errors$ = "P01"
End If
Return
StartError_Exit:
Exit Sub
StartError_Error:
frmMain.lstError.AddItem Date$ + " " + Time$ + "Start System Error - " + StepNo$
Resume StartError_Exit
End Sub
Public Sub Messages(a$)
On Error GoTo Message_Error
Open MessageLogName$ For Append As #10
Print #10, UCase$(Format$(Now, "DD-MMM-YY HH:MM:SS == ")) + a$
Close #10
Call PrintLog(a$)
Message_Exit:
Exit Sub
Message_Error:
frmMain.lstError.AddItem Date$ + " " + Time$ + "Message Error"
Resume Message_Exit
End Sub
Public Sub WDTServer()
If Constipation% <> 0 Then
Tweet
frmMain.lstReply2.BackColor = QBColor(12)
Exit Sub
End If
frmMain.lstReply2.BackColor = QBColor(15)
WDTFile$ = NetWPath$ + "CMNDPROC.WDT"
If (WDTServerTime! < Timer) Or (Abs(Timer - WDTServerTime!) > 100) Then
WDTServerTime! = Timer + 60
On Error Resume Next
Open WDTFile$ For Output As #8
Close #8
Kill WDTFile$
Open WDTFile$ For Output As #8
Close #8
On Error GoTo 0
End If
End Sub
Public Sub InitVars()
frmMain.Caption = "Command Processor Version: " + AppRevision$
NetWPath$ = "\\fm1\eng\users\cadprint\"
MainPath$ = "C:\Work"
ChDir MainPath$
MainPath$ = MainPath$ + "\"
ACADPath$ = "\\fm1\eng\users\286\"
CQueSize% = 250
Constipation% = 0
UserDrive$ = "\\fm1\eng\users"
EngrDrive$ = "\\fm1\eng\eng\drawings"
IEDrive$ = "\\fm1\eng\depts\IE"
MainPath$ = ""
temppath$ = "C:\"
PROEPath$ = "\\fm1\eng\users\286\proe\"
MessageFileName$ = NetWPath$ + "CADPRINT.MSG"
MessageLogName$ = NetWPath$ + "CADPRINT.LOG"
COMPLETE$ = NetWPath$ + "COMPLETE.QUE"
COMPLETE2$ = NetWPath$ + "COMPLET2.QUE"
INCOME$ = NetWPath$ + "INCOME.QUE"
Reply$ = NetWPath$ + "REPLY.QUE"
ReplyComplete$ = NetWPath$ + "REPLYCMP.QUE"
ReplyComplete2$ = NetWPath$ + "REPLYCM2.QUE"
CADPRINT$ = NetWPath$ + "CADPRINT.LOG"
QUEHANDL = NetWPath$ + "QUEHANDL.MSG"
CADPRNT2 = NetWPath$ + "CADPRNT2.LOG"
PLOTCFG$ = NetWPath$ + "PLOT.CFG"
PrinterCFG$ = NetWPath$ + "PRINTER.CFG"
SUBSCFG$ = NetWPath$ + "SUBS.CFG"
PrintCfg$ = MainPath$ + "PRINTCFG.BAT"
MAKEPS$ = MainPath$ + "Makeps.BAT"
TFIL$ = temppath$ + "T.FIL"
BUFFER$ = temppath$ + "CMDPBUFF"
ACADComplete$ = ACADPath$ + "COMPLETE.QUE"
ACADWait$ = ACADPath$ + "WAIT.QUE"
ACADIncome$ = ACADPath$ + "INCOME.QUE"
ACADCH$ = ACADPath$ + "COMPLETE.SAV"
ACADReply$ = ACADPath$ + "REPLY.QUE"
'
PROEComplete$ = PROEPath$ + "COMPLETE.QUE"
PROEWait$ = PROEPath$ + "WAIT.QUE"
PROEIncome$ = PROEPath$ + "INCOME.QUE"
PROECH$ = PROEPath$ + "HOLD.QUE"
PROEReply$ = PROEPath$ + "REPLY.QUE"
PROERPCM$ = PROEPath$ + "RCM.Que"
'
Stoppit = False
'
SendACAD = False
SendingACAD = False
SendPROE = False
SendingPROE = False
'
' Program
'
On Error Resume Next
Open MessageFileName$ For Output As #1
Print #1, " I AM RUNNING"
Close #1
On Error GoTo 0
lptI% = 0
pltI% = 0
Lpt$(0) = "LPT1"
PrinterGroup$(0) = "0"
Tray$(0) = "UT"
Call LoadPrinters
Call LoadPlot
Call LoadSubDirs
End Sub
Public Sub FileDisplay(a$)
If Exists(a$) Then
Stoppit = False
frmMain.cmdStoppit.Visible = True
DoEvents
On Error GoTo FDError
Open a$ For Input As #4
While (Not EOF(4)) And (Not (Stoppit))
Line Input #4, ax$
Call PrintLog(ax$)
im = im + 1
If im > 10 Then
im = 0
DoEvents
End If
Wend
Close #4
frmMain.cmdStoppit.Visible = False
Else
PrintLog ("FILE >" + a$ + "< DOES NOT EXIST")
End If
FDExit:
Exit Sub
FDError:
frmMain.lstError.AddItem "FileDisplay Error"
Resume FDExit
End Sub
Public Sub PrintLog(a$)
frmMain.LstPrint.AddItem a$
If frmMain.LstPrint.ListCount > 1600 Then
frmMain.LstPrint.RemoveItem 0
End If
DoEvents
End Sub
Public Sub checkACADServer()
'
' SendACAD ' checked by timer
' SendingACAD ' set by timer
' ACADComplete$ ' complete.que semephore file name
' ACADWait$ ' wait.que semephore file name
' ACADIncome$ ' income.que semephore file name
' ACADCH$ ' complete.hld semephore file name
'
'
'
If frmMain.CheckACAD = False Then
Exit Sub
End If
If SendACAD Then 'is there info to be passed????
'Can we pass info to ACAD Handler???????
If (Not (Exists(ACADComplete$))) And (Not (Exists(ACADIncome$))) Then
'Dont let any more stuff get in the way
'while we pass it
SendingACAD = True
'Pass it
Call Fcopy(ACADWait$, ACADIncome$, Rc%)
Call Fcopy(ACADCH$, ACADComplete$, Rc%)
Kill ACADWait$
'Okay now more stuff can be stuffed !!!!
SendingACAD = False
'Okay I'm ready for another file!!!
SendACAD = False
End If
End If
If Exists(ACADReply$) Then
On Error GoTo ReplyExists
Open ACADReply$ For Input As #1
frmMain.FileErrInd.value = True
On Error GoTo 0
While Not EOF(1)
Line Input #1, rp$
If Mid$(rp$ + " ", 6, 1) = "G" Then
replies2 = replies2 + 1
replys2$(replies2) = rp$
frmMain.lstReply2.AddItem ReplyMsg$
Else
replies = replies + 1
Replys$(replies) = rp$
frmMain.lstReply1.AddItem rp$
End If
Wend
Close #1
Kill ACADReply$
End If
Exit Sub
Ender:
frmMain.FileErrInd.value = False
Exit Sub
ReplyExists:
frmMain.ErrorCondition.Caption = "Reply Exists - checkACADServer"
If Err.Number = 70 Then
frmMain.FileErrInd.value = True
FileTimer = 1
DoEvents
While FileTimer > 0
DoEvents
Wend
Resume Ender
End If
On Error GoTo 0
Resume
End Sub
Public Function ThisIsProE(x$)
tx% = Exists(x$ + ".PLT")
ThisIsProE = tx%
End Function
Public Function PurgeIt(a$)
On Error Resume Next
If Exists(a$) Then
Kill a$
End If
On Error GoTo 0
End Function
Public Sub SaveRev(fromm1$, Lev$)
'
' Fromm1$="u:\GRICE\9101234"
' Lev$="B"
' move drawings to new revision from users drive
'
'
Too1$ = fromm1$ + Lev$
Fromm$ = fromm1$ + ".DRW"
Too$ = Too1$ + ".DRW"
Call Fcopy(Fromm$, Too$, Rc%)
Call MyLowercaser(Too$)
Fromm$ = fromm1$ + ".PTD"
Too$ = Too1$ + ".PTD"
Call Fcopy(Fromm$, Too$, Rc%)
Call MyLowercaser(Too$)
Fromm$ = fromm1$ + ".PRT"
Too$ = Too1$ + ".PRT"
Call Fcopy(Fromm$, Too$, Rc%)
Call MyLowercaser(Too$)
Fromm$ = fromm1$ + ".BOM"
Too$ = Too1$ + ".BOM"
Call Fcopy(Fromm$, Too$, Rc%)
Call MyLowercaser(Too$)
Fromm$ = fromm1$ + ".ASM"
Too$ = Too1$ + ".ASM"
Call Fcopy(Fromm$, Too$, Rc%)
Call MyLowercaser(Too$)
End Sub
Public Sub RestoreLev(Too1$, Lev$)
Too1$ = left$(Too1$, Len(Too1$) - 1)
fromm1$ = Too1$ + Lev$
Fromm$ = fromm1$ + ".DRW"
Too$ = Too1$ + ".DRW"
Call Fcopy(Fromm$, Too$, Rc%)
Call MyLowercaser(Too$)
Call PurgeIt(Fromm$)
Fromm$ = fromm1$ + ".PTD"
Too$ = Too1$ + ".PTD"
Call Fcopy(Fromm$, Too$, Rc%)
Call MyLowercaser(Too$)
Call PurgeIt(Fromm$)
Fromm$ = fromm1$ + ".PRT"
Too$ = Too1$ + ".PRT"
Call Fcopy(Fromm$, Too$, Rc%)
Call MyLowercaser(Too$)
Call PurgeIt(Fromm$)
Fromm$ = fromm1$ + ".BOM"
Too$ = Too1$ + ".BOM"
Call Fcopy(Fromm$, Too$, Rc%)
Call MyLowercaser(Too$)
Call PurgeIt(Fromm$)
Fromm$ = fromm1$ + ".ASM"
Too$ = Too1$ + ".ASM"
Call Fcopy(Fromm$, Too$, Rc%)
Call MyLowercaser(Too$)
Call PurgeIt(Fromm$)
End Sub
Public Sub WaitOnIt()
While Not (Exists("c:\work\shelwait.go"))
DoEvents
Wend
On Error GoTo WaitErr
Kill "c:\work\shelwait.go"
frmMain.ErrorCondition.Caption = " "
Exit Sub
WaitErr:
frmMain.ErrorCondition.Caption = "WaitErr - Waitonit"
If Err.Number = 70 Then
frmMain.FileErrInd.value = True
FileTimer = 0
DoEvents
While FileTimer > 0
DoEvents
Wend
frmMain.FileErrInd.value = False
DoEvents
Resume
End If
On Error GoTo 0
Resume
End Sub
Public Sub FlushReplies()
frmMain.CheckACAD = False
On Error GoTo Flush_Err
If ((replies2 <> 0)) And (Not (Exists(ReplyComplete$))) Then
Open Reply$ For Output As #5
For rpx = 1 To replies2
Print #5, replys2$(rpx)
Next
Close #5
Call Fcopy(ReplyComplete2$, ReplyComplete$, Rc%)
replies2 = 0
frmMain.lstReply2.Clear
End If
Flush_End:
frmMain.CheckACAD = True
Exit Sub
Flush_Err:
frmMain.FileErrInd = True
frmMain.ErrorCondition.Caption = "Flush Fail"
Resume Flush_End
End Sub
Public Sub Send2Proe()
'
' this routine takes the information passed to it in
' the variable COMND$ and tacks it on the end of the
' WAIT.QUE file.
' If the WAIT.QUE file is in the process of being passed
' to the ACAD Server then it waits till it is done.
'
' SendPROE = False
' While SendingPROE = True
' DoEvents ' wait for copy to income.que
' Wend
' Open PROEWait$ For Append As #1
' Print #1, comnd$
' Close #1
' SendPROE = True
'
End Sub
Public Sub checkPROEServer()
'
' SendPROE ' checked by timer
' SendingPROE ' set by timer
' PROEComplete$ ' complete.que semephore file name
' PROEWait$ ' wait.que semephore file name
' PROEIncome$ ' income.que semephore file name
' PROECH$ ' complete.hld semephore file name
' PROEReply$ ' reply.que semephore file name
'
'
'
' If frmMain.CheckAcad = False Then
' Exit Sub
'End If
If SendPROE Then 'is there info to be passed????
'Can we pass info to ACAD Handler???????
If (Not (Exists(PROEComplete$))) And (Not (Exists(PROEIncome$))) Then
'Dont let any more stuff get in the way
'while we pass it
SendingPROE = True
'Pass it
Call Fcopy(PROEWait$, PROEIncome$, Rc%)
Call Fcopy(PROEWait$, PROEComplete$, Rc%)
Kill PROEWait$
'Okay now more stuff can be stuffed !!!!
SendingPROE = False
'Okay I'm ready for another file!!!
SendPROE = False
End If
End If
If Exists(PROEReply$) And Exists(PROERPCM$) Then
On Error GoTo ReplyExists
Open PROEReply$ For Input As #1
frmMain.FileErrInd.value = True
On Error GoTo 0
While Not EOF(1)
Line Input #1, rp$
replies2 = replies2 + 1
replys2$(replies2) = rp$
frmMain.lstReply2.AddItem rp$
Call Messages("PROE REPLY-" + rp$)
Wend
Close #1
Kill PROEReply$
Kill PROERPCM$
End If
Exit Sub
Ender:
frmMain.FileErrInd.value = False
Exit Sub
ReplyExists:
frmMain.ErrorCondition.Caption = "Reply Exists - checkACADServer"
If Err.Number = 70 Then
frmMain.FileErrInd.value = True
FileTimer = 1
DoEvents
While FileTimer > 0
DoEvents
Wend
Resume Ender
End If
On Error GoTo 0
Resume
End Sub
Public Sub PassItToPROEServer(comnd$)
'
' this routine takes the information passed to it in
' the variable COMND$ and tacks it on the end of the
' WAIT.QUE file.
' If the WAIT.QUE file is in the process of being passed
' to the PROE Server then it waits till it is done.
'
SendPROE = False
While SendingPROE = True
DoEvents ' wait for copy to income.que
Wend
On Error GoTo PITPS_Error
Open PROEWait$ For Append As #1
Print #1, comnd$
Close #1
Call Messages("PROE MESSG-" + comnd$)
SendPROE = True
PITPS_Exit:
Exit Sub
PITPS_Error:
frmMain.lstError.AddItem Date$ + " " + Time$ + "Pass It to proe server Error"
Resume PITPS_Exit
End Sub
Public Function IsItRunning%(tskid)
Well = True
On Error GoTo IsTskError
AppActivate tskid
On Error GoTo 0
IsItRunning% = Well
Exit Function
IsTskError:
Well = False
Resume Next
End Function
Public Sub MyLowercaser(direct$)
'
' This routine converts the files specified by
' direct$ to lowercase file names.
'
Dim FileNamesToChange$(900)
a% = LastStr(direct$, "\")
pth$ = left$(direct$, a%)
retrycnt = 200
d$ = Dir$(direct$)
fcnt = 0
While d$ <> ""
FileNamesToChange$(fcnt) = d$
fcnt = fcnt + 1
d$ = Dir$
Wend
zzx$ = "0 - activate ON ERROR"
On Error GoTo lchandle
For ixx = 0 To fcnt - 1
zzx$ = "1 - load d$": d$ = FileNamesToChange$(ixx)
zzx$ = "2 - prefix xxx": lc1$ = "xxxx" + LCase$(d$)
zzx$ = "3 - lowercase name": lc$ = LCase$(d$)
zzx$ = "4 - kill prev file": Kill pth$ + lc1$
zzx$ = "5 - rename file to wierd": Name pth$ + d$ As pth$ + lc1$
zzx$ = "6 - pause": pause (1)
zzx$ = "7 - rename file to lcName": Name pth$ + lc1$ As pth$ + lc$
Next
lchandleOut:
Exit Sub
lchandle:
If Err.Number <> 53 Then
ax$ = Str$(Err.Number)
b$ = (Err.Description)
retrycnt = retrycnt - 1
mb = 0
If retrycnt < 0 Then
mm1$ = Chr$(13) + " D$=" + pth$ + d$ + " lc1$=" + pth$ + lc1$
mm2$ = Chr$(13) + " lc$=" + pth$ + lc$
mm3$ = Chr$(13) + " Function Step =" + zzx$
mm3$ = mm3$ + Chr$(13) + " direct=" + direct$
mm4$ = Chr$(13) + " Resume = YES" + Chr$(13) + "Resume Next = NO" + Chr$(13) + "Abort lcRoutine = Cancel"
'
' handle the error to keep this from ever happening again
'
Call frmMain.lstReply2Cnt_DblClick
If zzx$ = "7 - do dir$ cmnd" Then
frmMain.lstError.AddItem Date$ + " " + Time$ + zzx$
d$ = ""
Resume lchandleOut
End If
'
'
'
mb = MsgBox("Lower case - error no:" + ax$ + Chr$(13) + "Errdesc-" + b$ + mm1$ + mm2$ + mm3$ + mm4$, vbYesNoCancel)
End If
Select Case mb
Case 0, vbYes
pause (1)
Resume
Case vbNo
Resume Next
Case vbCancel
d$ = ""
Resume lchandleOut
Case Else
Resume Next
End Select
End If
Resume Next
End Sub