AnsweredAssumed Answered

Open drawings from PDM partly working

Question asked by Robert Voogt on Jun 15, 2018
Latest reply on Jun 25, 2018 by Ulf Stockburger

Edit: I had to set the folder locally (get latest version). That works.


Hi all,


Option Explicit
Dim swApp        As SldWorks.SldWorks
Dim swModel      As SldWorks.ModelDoc
Dim sFileName    As String
Dim vFileName    As String
Dim Path         As String
Dim nPath        As String
Dim nErrors      As Long
Dim nWarnings    As Long
Dim boolstatus   As Boolean
Dim swDraw       As SldWorks.DrawingDoc
Dim swCustProp   As CustomPropertyManager
Dim swView       As SldWorks.View
Dim ConfigName   As String
Dim i            As Long
Dim t            As Integer
Dim valOut1      As String
Dim valOut2      As String
Dim resolvedValOut1 As String
Dim resolvedValOut2 As String
Dim PartNo      As String
Dim nFileName      As String
Dim swDocs As Variant
Dim PDFpath As String
Dim currpath As String
Dim PartNoDes As String
Sub main()
    Set swApp = Application.SldWorks
    Path = "C:\PDMWorks View\Sub samenstellingen\SA00120000-SA00129999\"

    sFileName = Dir(Path & "*.slddrw")

Dim doc         As SldWorks.ModelDoc2
Dim fileerror   As Long
Dim filewarning As Long

t = 0 'temporary

    Do Until sFileName = ""
    Set swApp = Application.SldWorks
    swApp.Visible = False
    Set doc = swApp.OpenDoc6(Path & sFileName, swDocDRAWING, 2, "", fileerror, filewarning)

    boolstatus = swApp.RunMacro2("D:\Spare Part Generator\Macro\MARS RDC.swp", "RDC", "main", swRunMacroDefault, False)
    sFileName = Dir
    t = t + 1 'temporary
    If t > 10 Then Exit Do 'temporary

End Sub


I use this code to find drawings in our pdm system. Because I'm testing this I limit the batch conversion with a max of 10 drawings (t).


It should only stop when filename becomes empty or when t > 0.


In another folder, C:\PDMWorks View\Sub samenstellingen\SA00000000-SA00009999 for example, it does convert 10 files. But when I use the folder in the code above, it only loops once (and yes, that location has more than 10 drawings). With debugging I find that after 1 loop in that folder sFileName equals "", so that explains why the macro stops.


Further, the one that is converted appears to be completely random picked from that folder. (not smallest file size, or latest addition, etc.)


How can I make the macro go through all drawings in a numerical order?