Danke für Ihre Hilfe
Mein Programm funktioniert jetzt! Es wird geöffnet, speichert die DXF-Datei und schließt alle Teile im ausgewählten Ordner.
Ich teile
'-------------------------------------------------------------------------------------------------------------
Option Explizit
Private Const BIF_RETURNONLYFSDIRS so lang = &h1
Private Const BIF_DONTGOBELOWDOMAIN so lang = &h2
Private Const BIF_RETURNFSANCESTORS so lang = &h8
Private Const BIF_BROWSEFORCOMPUTER Solange = &H1000
Private Const BIF_BROWSEFORPRINTER Solange = &H2000
Private Const BIF_BROWSEINCLUDEFILES Solange = &H4000
Private Const MAX_PATH Solange = 260
Funktion BrowseFolder(Optional Caption As String, Optional InitialFolder As String) Als String
Dim SH As Shell32.Shell
Dim F As Shell32.Folder
Set SH = Neue Shell32.Shell
Setze F = SH. BrowseforFolder(0&, Caption, BIF_RETURNONLYFSDIRS, InitialFolder)
Wenn nicht, ist F nichts, dann
Wenn F = "Desktop" dann
BrowseFolder = Über("BENUTZERPROFIL") & "\Desktop"
Oder
BrowseFolder = F.Items.Item.Path
Ende, wenn
Ende, wenn
Ende-Funktion
Sub main()
Dim swApp als SldWorks.SldWorks
Dim swmodel As SldWorks.ModelDoc
Dim sFileName als Zeichenfolge
Pfad als Zeichenfolge dimmen
Dim nErrors so lange
Dimmen nWarnungen so lange
Dim swPart als SldWorks.PartDoc
Dim PartNoDes As String
Dim stPath As String
Dim lgFile so lange
Dim blretval As Boolean
Legen Sie swApp = Application.SldWorks fest
' Set swExportPDFData = swApp.GetExportFileData(1)
Path = BrowseFolder("Pfad/Ordner auswählen")
Wenn Pfad = "" dann
MsgBox "Bitte wählen Sie den Pfad aus und versuchen Sie es erneut"
Ende
Oder
Pfad = Pfad + "\"
Ende, wenn
sFileName = Verzeichnis(Pfad & "*.sldprt")
Ausführen, bis sFileName = ""
Set swmodel = swApp.OpenDoc6(Pfad + sFileName, swDocPART, swOpenDocOptions_Silent, "", nErrors, nWarnings)
Legen Sie swmodel = swApp.ActiveDoc fest.
Legen Sie swPart = swApp.ActiveDoc fest
Wenn swmodel. GetPathName = "" dann
MsgBox "Bitte speichern Sie Ihr Dokument, bevor Sie das Makro starten", vbInformation
Ende
Oder
"Wir erhalten den Speicherort der Datei
stPath = swmodel. GetPathName (Englisch)
"Wir bringen die Anzahl der Zeichen auf . der Erweiterung
lgFile = InStrRev(stPath, ".", -1, vbTextCompare) - 1
"Wir gewinnen den Weg ohne die Verlängerung zurück
Wenn lgFile > 0 ist, dann
stPath = Links(stPath, lgFile)
Ende, wenn
Ende, wenn
"Handelt es sich bei dem Dokument um ein Dokument
Wenn swmodel. GetType = swDocPART Dann
"Wir erschaffen das Entfaltete
blretval = swmodel. ExportFlatPatternView(stPath & ". DXF", 1)
Das DXF wurde erstellt
blretval = swmodel. SaveAs3(stPath & ". DXF", 0, 0)
Ende, wenn
swApp.QuitDoc swPart.GetPathName
Set swPart = Nichts
Set swmodel = Nichts
sFileName = Verzeichnis
Schleife
MsgBox "Alles erledigt"
Ende Sub
'-------------------------------------------------------------------------------------------------------------