I have a project where I am entering a few numbers into a dialog box which changes the lengths on three components, which then update 2 sub assemblies in a master assembly. I then open a master drawing up from the master assembly.
I would like then to copy this drawing to a new folder, with a new file name, and all its referanced parts and sub assemblies being renamed and moved into the new folder.
The reason is to have a master drawing which can be quickly changed and saved to a new project folder for that particular job. This allows me to create a drawing for a job in a couple of mins.
The code works OK upto copying the new drawing and referanced parts to the new folder. The drawing is created in a new folder, but only three of the referanced parts are copied.
Can any body see where I am going wrong:
Thank you in advance Richard Morgan MorgDesign San Francisco
Code follows:
Sub OPENDWG()
Dim bRet As Boolean
Set Part = swApp.ActiveDoc swApp.LoadFile2 "F:\MORGAN W20 SETUP\FRAMES\ARCH WINDOW.slddrw", ""
Set Part = swApp.ActiveDoc Set Part = swApp.OpenDoc6("F:\MORGAN W20 SETUP\FRAMES\ARCH WINDOW.SLDDRW", 3, 16, "", longstatus, longwarnings) swApp.ActiveDoc.ActiveView.FrameLeft = 0 swApp.ActiveDoc.ActiveView.FrameTop = 0 swApp.ActiveDoc.ActiveView.FrameState = 1 swApp.ActiveDoc.ActiveView.FrameState = 1
Set Part = swApp.ActivateDoc("ARCH WINDOW - Sheet1") Part.Rebuild (swForceRebuildAll) DWGTITLE = Part.GetTitle NEWFILE = "F:\MORGAN W20 SETUP\" + PRO_NAME + "\" + WIN_LOC + "\"
- WIN_LOC + "_" + ".SLDDRW" Part.Save2 True 'COPY DRAWING DWGCOPY 'OPEN NEW DRAWING swApp.LoadFile2 NEWFILE, ""
Set Part = swApp.ActiveDoc Set Part = swApp.OpenDoc6(NEWFILE, 3, 16, "", longstatus, longwarnings) swApp.ActiveDoc.ActiveView.FrameLeft = 0 swApp.ActiveDoc.ActiveView.FrameTop = 0 swApp.ActiveDoc.ActiveView.FrameState = 1 swApp.ActiveDoc.ActiveView.FrameState = 1
Set Part = swApp.ActivateDoc("NEWFILE - Sheet1") ' Part.Rebuild (swForceRebuildAll) 'DWGTITLE = Part.GetTitle 'Part.ClearSelection2 True 'Part.Save2 True
End Sub
Sub FILEREFS() 'ORIGINAL FILE NAMES INTO AN ARRY ORGFILENAME = Array("F:\MORGAN W20 SETUP\FRAMES\ARCH WINDOW.SLDASM", _ "F:\MORGAN W20 SETUP\FRAMES\FRAME 1 - WX8.SLDASM", _ "F:\MORGAN W20 SETUP\FRAMES\WX8 - BOTTOM.SLDPRT", _ "F:\MORGAN W20 SETUP\FRAMES\WX8 -LEFT SIDE.SLDPRT", _ "F:\MORGAN W20 SETUP\FRAMES\WX8 -RIGHT SIDE.SLDPRT", _ "F:\MORGAN W20 SETUP\FRAMES\WX8 - CURVE TOP.SLDPRT", _ "F:\MORGAN W20 SETUP\FRAMES\FRAME 2 - WH6.SLDASM", _ "F:\MORGAN W20 SETUP\FRAMES\WH6 - BOTTOM.SLDPRT", _ "F:\MORGAN W20 SETUP\FRAMES\WH6 - LEFT SIDE.SLDPRT", _ "F:\MORGAN W20 SETUP\FRAMES\WH6 - RIGHT SIDE.SLDPRT", _ "F:\MORGAN W20 SETUP\FRAMES\WH6 - CURVE.SLDPRT", _ "F:\MORGAN W20 SETUP\FRAMES\GLASS.SLDPRT", _ "F:\MORGAN W20 SETUP\FRAMES\WINDOW - ARCH.SLDPRT") NEWFILENAME = Array(NEWARCHWINASM, _ NEW_F1, _ NEW_WX8_BTM, _ NEW_WX8_LFT, _ NEW_WX8_RGT, _ NEW_WX8_CUR, _ NEW_F2, _ NEW_WH6_BTM, _ NEW_WH6_LFT, _ NEW_WH6_RGT, _ NEW_WH6_CUR, _ NEW_GLASS, _ NEW_ARCHWIN) 'NEW_F1 = "F:\MORGAN W20 SETUP\" + PRO_NAME + "\" + WIN_LOC + "\" + WIN_LOC + "_FRAME 1 - WX8.SLDASM"
End Sub
Sub DWGCOPY()
FILEREFS
Dim retVal As Long
swApp.CloseDoc ASSYTITLE swApp.CloseDoc DWGTITLE
Set swApp = Application.SldWorks
retVal = swApp.CopyDocument("F:\MORGAN W20 SETUP\FRAMES\ARCH WINDOW.SLDDRW", NEWFILE, ORGFILENAME, NEWFILENAME, swMoveCopyOptionsCreateNewFolder)
End Sub