'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 & "<p>" & 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 & "<p>" & 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 & "<p>" & 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 & "<p>" & 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 & "<p>" & 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