Exportieren Sie umbenannte PDFs in den entsprechenden Ordner

Hallo ihr alle

Ich habe keine ähnlichen Beiträge im Forum gefunden, daher erlaube ich mir, sie zu veröffentlichen.

Da ich keine Kenntnisse in VBA habe, habe ich im Internet ein PDF-Exportmakro gefunden, das ich ändern möchte.

Derzeit wird die MEP automatisch als PDF in dem Ordner gespeichert, in dem sich die Datei befindet. Unsere MEP-Dateien befinden sich in einer Bibliothek in einem Netzwerk und heißen "902xxxx"

Ich bräuchte 2 zusätzliche Funktionen:

  • Erhöhen Sie die neue PDF-Datei "Zimmerplan" am Anfang des Namens.
    = "Raumplan 902xxxx"

  • Speichern Sie die PDF-Datei an einem anderen Ort als dem in der MEP: Die PDFs werden in einem anderen Verzeichnis und in Unterordnern mit dem Namen "902xx" gespeichert, befinden sich jedoch im selben Netzwerk.

Beispiel:

Ich habe einen "9021325"-Plan in U: Studium

Ich möchte es mit dem Makro im PDF speichern, so dass sie im U-Ordner landen: Dosfab / 90213, indem sie sich in "Raumplan 9021325" umbenennen

Unten sehen Sie das Makro:

Dimmen swApp als Objekt

Teil als Objekt dimmen

Dim boolstatus als boolescher Wert

Dim longstatus As Long, longwarnings As Long

Feature-Daten als Objekt dimmen

Dimmen von Feature als Objekt

Komponente als Objekt dimmen

Sub main()

Legen Sie swApp = Application.SldWorks fest

Set Part = swApp.ActiveDoc

Pfad = Teil.GetPfadName

Part.SaveAs2 Links(Pfad, (Len(Pfad) - 6)) & " PDF ", 0, Wahr, Falsch

Set Part = Nichts

swApp.CloseDoc-Pfad

Ende Sub

Ziel ist es, den Zeitaufwand für das Überschreiben von PDF-Dateien und das Auffinden in den Unterordnern, die mit ihrem Namen verknüpft sind, zu reduzieren.

Ich weiß nicht, ob es leicht machbar ist.

Hallo @Tom_VITRE und herzlich willkommen.

Die Suche in diesem Forum ist nicht ideal... und doch, indem wir einfach " PDF " schreiben, stoßen wir auf einige interessante Ergebnisse.
deren Diskussion:

oder noch besser:

interessant für seine didaktische Seite.
@sbadenis bietet ein gut kommentiertes Makro, das Sie ohne allzu große Schwierigkeiten ändern können sollten: (Hier ist die Kopie des Codes).

' On définit les variables nécessaires
Dim swApp As Object
Dim swModel As SldWorks.ModelDoc2
Dim Path As String
Dim PathDesktop As String
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swExportPDFData As SldWorks.ExportPdfData
Dim nFileName As String
Dim nFileName2 As String
Dim FileName As String
Dim boolstatus As Boolean
Dim lErrors As Long
Dim lWarnings As Long

'Dim lgFichier As Integer

Sub main()
' On se raccroche à Solidworks
Set swApp = Application.SldWorks

' On récupère le document actif dans Solidworks
Set swModel = swApp.ActiveDoc

' On vérifie qu'un document est bien ouvert dans Solidworks
If swModel Is Nothing Then
    MsgBox "Un document doit être actif dans Solidworks.", vbCritical
    End
End If

' On vérifie que le document ouvert dans Solidworks est un plan
If swModel.GetType <> swDocDRAWING Then
    MsgBox "Le document actif dans Solidworks doit être un plan.", vbCritical
    End
End If

' On vérifie que le plan ouvert dans Solidworks est bien enregistré
If swModel.GetPathName = "" Then
    swModel.Save
End If

' On récupère le chemin du dossier d'enregistrement du plan
Path = swModel.GetPathName

    
'on récupère le chemin complet sans le nom de fichier
FilePath = Left(Path, InStrRev(Path, "\"))
'Debug.Print "Filepath:" + Filepath
    
        
'on récupère le nom du fichier sans l'extension
FileName = Mid(Path, Len(FilePath) + 1, Len(Path) - (7 + Len(FilePath)))
' on affiche la variable dans la fenêtre Exécution
Debug.Print "FileName=" & FileName

' on affiche la variable dans la fenêtre Exécution
Debug.Print "Path=" & Path
lgFichier = InStrRev(Path, "\", -1, vbTextCompare) - 1
If lgFichier > 0 Then
    Path = Left(Path, lgFichier)
End If

' On récupère le chemin du bureau Windows
PathDesktop = Environ("USERPROFILE") & "\Desktop"
' on affiche la variable dans la fenêtre Exécution
Debug.Print "PathDesktop=" & PathDesktop

' On définit les paramètres d'export en PDF
Set swModelDocExt = swModel.Extension
Set swExportPDFData = swApp.GetExportFileData(1)
swExportPDFData.ViewPdfAfterSaving = False

' On définit le chemin et le nom du premier fichier pdf à créer
'nFileName = Left(Path, Len(Path) - 6) & "PDF" 'Retrait de l'extension SW en gardant le point et ajout PDF
nFileName = FilePath & FileName & ".pdf"

' on affiche la variable dans la fenêtre Exécution
Debug.Print "nFileName=" & nFileName
' On sauvegarde le premier fichier pdf
boolstatus = swModelDocExt.SaveAs(nFileName, 0, 0, swExportPDFData, lErrors, lWarnings)

' On définit le chemin et le nom du deuxième fichier pdf à créer
'nFileName2 = PathDesktop & Left(nFileName2, Len(nFileName2) - 6) & "PDF"
nFileName2 = PathDesktop & "\" & FileName & ".pdf"
' on affiche la variable dans la fenêtre Exécution
Debug.Print "nFileName2=" & nFileName2
' On sauvegarde le deuxième fichier pdf
boolstatus = swModelDocExt.SaveAs(nFileName2, 0, 0, swExportPDFData, lErrors, lWarnings)

End Sub

Herzliche Grüße.

4 „Gefällt mir“

Vielen Dank für Ihre Antwort, ich werde mir die Zeit nehmen, es mir anzusehen und mit meinen Einstellungen anzupassen

1 „Gefällt mir“