hexagon logo

Script Not Saving .CAD in a Working Format

Has anyone else had this issue? The script is working properly in regards to saving the .CAD file but I am getting a warning message when I attempt to open the program files generated that the format is bad on the CAD





Sub main()


'========= SETTINGS =================

'Root save directory For archive
Dim archivePath
archivePath = "S:\Dept\Quality\Inspection\CMM files\Parts in Buffer Programs"

'This is the Name of a PC-Dmis ASSIGNMENT - If it exists the value it holds will be used In the file Name
'of the archived program (i.e. can be a serial number, Or order number etc)

Dim myUID
myUID = "UID"

'NOTE! - File Name will be In the following format...
'SaveDirectory\Program Name\ProgramName_UniqueID_DateTime.prg

'i.e. C:\CMM Files\Part Program Run Instances Archive\123456-01\123456-01_abc123_20140824104232.prg

'Where...
'archivePath = "S:\Dept\Quality\Inspection\CMM files\Parts in Buffer Programs"
'Part program = 123456-01.prg
'Serial Number / Unique Id = abc123
'DateTime = 24/08/2014 10:42:32

Dim strCrntName As String
Dim strNewName As String
Dim bolPassFail As Boolean
Dim Part As Object
Set App = CreateObject ("PCDLRN.Application")
Set Part = App.ActivePartProgram
Set DmisApp = CreateObject ("PCDLRN.Application")
Set DmisPart = DmisApp.ActivePartProgram
strCrntName = Part.FullName
'===========End OF SETTINGS==========

'Create objects
Dim pcapp As Object
Set pcapp = createobject("pcdlrn.application")

Dim pcpart As Object
Set pcpart = pcapp.activepartprogram

'Save existing program
pcpart.save

'Get the current program path
Dim source_path
source_path = pcpart.fullname

'Get program Name (without file extension)
Dim progname
progname = left(pcpart.Name,len(pcpart.Name)-4)

'Create File System Object For file operations
Dim fso As Object
Set fso = createobject("scripting.filesystemobject")

'Check main archive directory And program specific directories exist
Dim ofolder As Object

If Not fso.folderexists(archivepath) Then
Set ofolder = fso.createfolder(archivepath)
End If

If Not fso.folderexists(archivepath & "" & progname) Then
Set ofolder = fso.createfolder(archivepath & "" & progname)
End If

'Get a UID If present
Dim uniqueid
uniqueid=""

Dim myvar As Object
Set myvar = pcpart.getvariablevalue("SER_NUM")

If Not myVar is Nothing Then
uniqueid= myvar.stringvalue
'MsgBox(uniqueid)
End If

'Genrate the destination (save) path
dest_path_prg= archivepath & "" & progname & "" & progname & "_" & myvar.StringValue & "_" & format(now(),"YYYYMMDDHHNN") & ".PRG"
dest_path_cad= archivepath & "" & progname & "" & progname & "_" & myvar.StringValue & "_" & format(now(),"YYYYMMDDHHNN") & ".CAD"



'MsgBox(dest_path)



'Save the file
fso.copyfile source_path, dest_path_prg
fso.copyfile source_path, dest_path_cad






'Tidy up
Set fso = Nothing
Set pcpart = Nothing
Set pcapp = Nothing


End Sub




Parents
  • Ok... Try adding a MsgBox after you have set "source_path":

    Dim source_path
    source_path = pcpart.fullname​
    MsgBox(source_path)
    


    What does that MsgBox show?

    I'm asking, because "source_path" stays the same throughout your script and "source_path" should be the path + programname.PRG.
    Possibly, the FileSystemObject copies the program (.PRG) twice, once named as .PRG and the second named as .CAD.

    For giggles, compare the file sizes between the two copied files, are they the same?
Reply
  • Ok... Try adding a MsgBox after you have set "source_path":

    Dim source_path
    source_path = pcpart.fullname​
    MsgBox(source_path)
    


    What does that MsgBox show?

    I'm asking, because "source_path" stays the same throughout your script and "source_path" should be the path + programname.PRG.
    Possibly, the FileSystemObject copies the program (.PRG) twice, once named as .PRG and the second named as .CAD.

    For giggles, compare the file sizes between the two copied files, are they the same?
Children
No Data