Skończyłem makro do przetwarzania wszystkich rysunków katalogu.
Makro otworzy okno dialogowe, w którym można wybrać plik do otwarcia.
Następnie pobiera lokalizację pliku i przetwarza wszystkie znajdujące się w nim rysunki.
Oto kod:
Dim swApp As Object
Dim swModel As SldWorks.ModelDoc2
Dim swModelExt As SldWorks.ModelDocExtension
Dim boolstatus As Boolean
Dim ExportData As Object
Ostrzeżenia o przyciemnieniu tak długo, błędy tak długo
Dim oFSO As Scripting.FileSystemObject
Dim oFld As Scripting.Folder
Dim oFile As Scripting.File
Przyciemnij ścieżkę jako ciąg
Przyciemnij filtr jako ciąg
Dim fileName As Ciąg
Dim fileConfig As String (Ciąg Plików)
Dim fileDispName jako ciąg
Przyciemnij fileOptions tak długo
Sub main()
Ustaw swApp = Application.SldWorks
Filtruj według rysunku
Filtr = "Rysunek (*.slddrw)|*.slddrw|"
Otwieranie okna dialogowego
fileName = swApp.GetOpenFileName("Wybierz plik", "", Filtr, fileOptions, fileConfig, fileDispName)
'Sprawdź wybrany plik
Jeśli fileName = "" Następnie wyjdź z sub
Odzyskiwanie ścieżki
path = Left(nazwa_pliku, InStrRev(nazwa_pliku, "\"))
"Oświadczenie FSO"
Set oFSO = New Scripting.FileSystemObject
Ustaw oFld = oFSO.GetFolder(ścieżka)
'zapętlanie plików w katalogu "path"
Dla każdego pliku oFile w oFld.Files
'Typ pliku testowego = rysunek
Jeśli oFile.Type = "Dokument rysunku SolidWorks", to
Otwarcie rysunku
Set swModel = swApp.OpenDoc6(oFile.Path, swDocDRAWING, 1, "", Błędy, Ostrzeżenia)
Ustaw swModelExt = swModel.Extension
'Załączona wersja kopii zapasowej
boolstatus = swModelExt.SaveAs(oFile.Path, 3, 1, ExportData, Błędy, Ostrzeżenia)
Zamykanie pliku
swApp.CloseDoc swModel.GetTitle
Zakończ jeżeli:
Następny oPlik
Koniec subwoofera