'Language="VBSCRIPT" Sub CATMain() CATIA.DisplayFileAlerts = False s1="This CATScript will convert CATDrawings from a choseen folder to another folder in PDF format " s2="Pay attention to have the drawing INSIDE the border defined by the paper size !!" MsgBox s1 & vbCrLf & s2 & vbCrLf set ShellApp=CreateObject("Shell.Application") 'generate a new "Shell Application" object set FolBrowser=ShellApp.BrowseForFolder(0,"Source directory is C:\Temp. Press 'OK' if its corect, or choose another folder where CATDrawings are stored",16,17) folderinput = "C:\Temp" If not FolBrowser is Nothing then folderinput=FolBrowser.Self.Path 'save the path & folder in the variable "folderinput" End If badfolder = instr(folderinput, "{") 'MsgBox "badfolder:" & badfolder If badfolder > 0 then folderinput = "C:\Temp" End if MsgBox "The input folder is: " & folderinput set FolBrowser=ShellApp.BrowseForFolder(0,"Choose a destination folder for your PDF files: ",16,17) folderoutput = "NO" If not FolBrowser is Nothing then folderoutput=FolBrowser.Self.Path 'save the path & folder in the variable "folderoutput" End If badfolder = instr(folderoutput, "{") 'MsgBox "badfolder:" & badfolder If badfolder > 0 then folderoutput = "NO" End if Dim fs, fso, fld, sfld, ssfld, sssfld, ssssfld, f, f1, fc, s, sfiles, scount, filename, t, strWriteString Dim SheetCollection As DrawingSheets Set fs = CreateObject("Scripting.FileSystemObject") Set fso = CreateObject("Scripting.FileSystemObject") Set fld = fso.GetFolder(folderinput) If folderoutput <> "NO" then Set fldo = fso.GetFolder(folderoutput) MsgBox "The output folder is: " & folderoutput End If Set fc = fld.Files s = "Input; Output" s = s & vbCrLf sfiles = "" scount = 0 '--------------- For Each fil In fc t = fil.Type If (t = "CATIA Drawing" or t = "CATIA Zeichnung") then filename = fil.Name Pos1 = instr(1, s, filename) If Pos1 = 0 Then Set documents1 = CATIA.Documents INPUTPATH = fld & "\" & fil.name scount = scount + 1 sfiles = scount & ". " & filename & "

" & sfiles '--------------- Set document1 = documents1.Open(INPUTPATH) CATIA.ActiveWindow.WindowState = 0 Set drawingDocument1 = CATIA.ActiveDocument If t = "CATIA Drawing" then fileoutname = replace(fil.name,".CATDrawing","") End If If t = "CATIA Zeichnung" then fileoutname = replace(fil.name,".CATDrawing","") End If If folderoutput = "NO" then OUTPUTPATH = fld & "\" & fileoutname & ".pdf" Else OUTPUTPATH = fldo & "\" & fileoutname & ".pdf" End If On Error Resume Next drawingDocument1.ExportData OUTPUTPATH, "pdf" drawingDocument1.Close If Err <> 0 Then s = s & INPUTPATH & "; " & "Fehler!" Else s = s & INPUTPATH & "; " & OUTPUTPATH End If s = s & vbCrLf End if End if Next For Each sfld In fld.SubFolders Set fc = sfld.Files For Each fil In fc t = fil.Type If (t = "CATIA Drawing" or t = "CATIA Zeichnung") then filename = fil.Name Pos1 = instr(1, s, filename) If Pos1 = 0 Then Set documents1 = CATIA.Documents INPUTPATH = sfld & "\" & fil.name scount = scount + 1 sfiles = scount & ". " & filename & "

" & sfiles '--------------- Set document1 = documents1.Open(INPUTPATH) CATIA.ActiveWindow.WindowState = 0 Set drawingDocument1 = CATIA.ActiveDocument If t = "CATIA Drawing" then fileoutname = replace(fil.name,".CATDrawing","") End If If t = "CATIA Zeichnung" then fileoutname = replace(fil.name,".CATDrawing","") End If If folderoutput = "NO" then OUTPUTPATH = sfld & "\" & fileoutname & ".pdf" Else OUTPUTPATH = fldo & "\" & fileoutname & ".pdf" End If On Error Resume Next drawingDocument1.ExportData OUTPUTPATH, "pdf" drawingDocument1.Close If Err <> 0 Then s = s & INPUTPATH & "; " & "Fehler!" Else s = s & INPUTPATH & "; " & OUTPUTPATH End If s = s & vbCrLf End if End if Next For Each ssfld In sfld.SubFolders Set fc = ssfld.Files For Each fil In fc t = fil.Type If (t = "CATIA Drawing" or t = "CATIA Zeichnung") then filename = fil.Name Pos1 = instr(1, s, filename) If Pos1 = 0 Then Set documents1 = CATIA.Documents INPUTPATH = ssfld & "\" & fil.name scount = scount + 1 sfiles = scount & ". " & filename & "

" & sfiles '--------------- Set document1 = documents1.Open(INPUTPATH) CATIA.ActiveWindow.WindowState = 0 Set drawingDocument1 = CATIA.ActiveDocument If t = "CATIA Drawing" then fileoutname = replace(fil.name,".CATDrawing","") End If If t = "CATIA Zeichnung" then fileoutname = replace(fil.name,".CATDrawing","") End If If folderoutput = "NO" then OUTPUTPATH = ssfld & "\" & fileoutname & ".pdf" Else OUTPUTPATH = fldo & "\" & fileoutname & ".pdf" End If On Error Resume Next drawingDocument1.ExportData OUTPUTPATH, "pdf" drawingDocument1.Close If Err <> 0 Then s = s & INPUTPATH & "; " & "Fehler!" Else s = s & INPUTPATH & "; " & OUTPUTPATH End If s = s & vbCrLf End if End if Next For Each sssfld In ssfld.SubFolders Set fc = sssfld.Files For Each fil In fc t = fil.Type If (t = "CATIA Drawing" or t = "CATIA Zeichnung") then filename = fil.Name Pos1 = instr(1, s, filename) If Pos1 = 0 Then Set documents1 = CATIA.Documents INPUTPATH = sssfld & "\" & fil.name scount = scount + 1 sfiles = scount & ". " & filename & "

" & sfiles '--------------- Set document1 = documents1.Open(INPUTPATH) CATIA.ActiveWindow.WindowState = 0 Set drawingDocument1 = CATIA.ActiveDocument If t = "CATIA Drawing" then fileoutname = replace(fil.name,".CATDrawing","") End If If t = "CATIA Zeichnung" then fileoutname = replace(fil.name,".CATDrawing","") End If If folderoutput = "NO" then OUTPUTPATH = sssfld & "\" & fileoutname & ".pdf" Else OUTPUTPATH = fldo & "\" & fileoutname & ".pdf" End If On Error Resume Next drawingDocument1.ExportData OUTPUTPATH, "pdf" drawingDocument1.Close If Err <> 0 Then s = s & INPUTPATH & "; " & "Fehler!" Else s = s & INPUTPATH & "; " & OUTPUTPATH End If s = s & vbCrLf End if End if Next For Each ssssfld In sssfld.SubFolders Set fc = ssssfld.Files For Each fil In fc t = fil.Type If (t = "CATIA Drawing" or t = "CATIA Zeichnung") then filename = fil.Name Pos1 = instr(1, s, filename) If Pos1 = 0 Then Set documents1 = CATIA.Documents INPUTPATH = ssssfld & "\" & fil.name scount = scount + 1 sfiles = scount & ". " & filename & "

" & sfiles '--------------- Set document1 = documents1.Open(INPUTPATH) CATIA.ActiveWindow.WindowState = 0 Set drawingDocument1 = CATIA.ActiveDocument If t = "CATIA Drawing" then fileoutname = replace(fil.name,".CATDrawing","") End If If t = "CATIA Zeichnung" then fileoutname = replace(fil.name,".CATDrawing","") End If If folderoutput = "NO" then OUTPUTPATH = ssssfld & "\" & fileoutname & ".pdf" Else OUTPUTPATH = fldo & "\" & fileoutname & ".pdf" End If On Error Resume Next drawingDocument1.ExportData OUTPUTPATH, "pdf" drawingDocument1.Close If Err <> 0 Then s = s & INPUTPATH & "; " & "Fehler!" Else s = s & INPUTPATH & "; " & OUTPUTPATH End If s = s & vbCrLf End if End if Next Next Next Next Next ' FileSystemObject objFs oeffnen Set objFs= CreateObject("Scripting.FileSystemObject") If folderoutput = "NO" then strDateinameTXT = folderinput + "\" + "Drawing2PDF-Report.txt" Else strDateinameTXT = folderoutput + "\" + "Drawing2PDF-Report.txt" End If Set objTextStream = objFs.CreateTextFile(strDateinameTXT, True) strWriteString = s objTextStream.Write strWriteString objTextStream.Close Set objTextStream = Nothing Set objFs = Nothing ' FileSystemObject objFs oeffnen Set objFs= CreateObject("Scripting.FileSystemObject") If folderoutput = "NO" then strDateiname = folderinput + "\" + "Drawing2PDF-Report.csv" Else strDateiname = folderoutput + "\" + "Drawing2PDF-Report.csv" End If Set objTextStream = objFs.CreateTextFile(strDateiname, True) strWriteString = s objTextStream.Write strWriteString objTextStream.Close Set objTextStream = Nothing Set objFs = Nothing '--------------- MsgBox "A log file is saved here: " & strDateiname End Sub