Dziękuję za pomoc,
Mój program teraz działa! Otwiera się, zapisuje plik dxf i zamyka wszystkie części w wybranym folderze.
Dzielę się
'-------------------------------------------------------------------------------------------------------------
Opcja jawna
Prywatny Const BIF_RETURNONLYFSDIRS Tak długi = &H1
Prywatny Const BIF_DONTGOBELOWDOMAIN Tak długo = &H2
Prywatny Const BIF_RETURNFSANCESTORS Tak długo = &H8
Prywatny Const BIF_BROWSEFORCOMPUTER As Long = &H1000
Prywatny Const BIF_BROWSEFORPRINTER Tak długi = &H2000
Prywatny Const BIF_BROWSEINCLUDEFILES Tak długi = &H4000
Prywatny Const MAX_PATH Tak długo = 260
Funkcja BrowseFolder(opcjonalny podpis jako ciąg, opcjonalny folder początkowy jako ciąg) jako ciąg
Dim SH As Shell32.Shell
Dim F As Shell32.Folder
Ustaw SH = New Shell32.Shell
Ustaw F = SH. BrowseforFolder(0&; Podpis, BIF_RETURNONLYFSDIRS, Folder_początkowy)
Jeśli nie, F jest niczym, to
Jeśli F = "Pulpit", to
BrowseFolder = Informacje("PROFIL UŻYTKOWNIKA") & "\Pulpit"
Inaczej
BrowseFolder = F.Items.Item.Path
Zakończ jeżeli:
Zakończ jeżeli:
Zakończ funkcję
Sub main()
Dim swApp jako SldWorks.SldWorks
Przyciemnij swmodel jako SldWorks.ModelDoc
Dim sFileName As Ciąg
Przyciemnij ścieżkę jako ciąg
Dim nErrors tak długo, jak długo
Dim nWarnings tak długo, jak długo
Przyciemnij swPart jako SldWorks.PartDoc
Dim PartNoDes As String
Dim stPath As String
Dim lgFile tak długo
Dim blretval As Boolean
Ustaw swApp = Application.SldWorks
' Ustaw swExportPDFData = swApp.GetExportFileData(1)
Path = BrowseFolder("Wybierz ścieżkę/folder")
Jeśli ścieżka = "" to
MsgBox "Proszę wybrać ścieżkę i spróbować ponownie"
Koniec
Inaczej
Ścieżka = Ścieżka + "\"
Zakończ jeżeli:
sFileName = Dir(Ścieżka & "*.sldprt")
Rób, aż sFileName = ""
Set swmodel = swApp.OpenDoc6(Path + sFileName, swDocPART, swOpenDocOptions_Silent, "", nErrors, nWarnings)
Ustaw swmodel = swApp.ActiveDoc
Ustaw swPart = swApp.ActiveDoc
Jeśli swmodel. GetPathName = "" Następnie
MsgBox "Proszę zapisać dokument przed uruchomieniem makra", vbInformation
Koniec
Inaczej
"Otrzymujemy lokalizację pliku
stPath = swmodel. GetPathName (Nazwa_ścieżki)
"Zwiększamy liczbę znaków do . rozszerzenia
lgFile = InStrRev(stPath, ".", -1, vbTextCompare) - 1
"Odzyskujemy ścieżkę bez przedłużenia
Jeśli lgFile > 0, to
stPath = Lewo(stPath, lgFile)
Zakończ jeżeli:
Zakończ jeżeli:
"Jeżeli dokument jest dokumentem
Jeśli swmodel. GetType = swDocPART Następnie
"Tworzymy to, co rozłożone
blretval = swmodel. ExportFlatPatternView(stPath & ". DXF", 1)
Powstał plik DXF
blretval = swmodel. SaveAs3(stPath & ". DXF", 0, 0)
Zakończ jeżeli:
swApp.QuitDoc swPart.GetPathName
Ustaw swPart = Nic
Set swmodel = Nic
sFileName = Katalog
Pętla
MsgBox "Wszystko gotowe"
Koniec subwoofera
'-------------------------------------------------------------------------------------------------------------