Makro für PDF-, DWG- & SAT-Teile/MEP einer Baugruppe

Hallo ihr alle

Ich ändere gerade ein Makro (pdf_des_comosants_de_lassemblage.swp), das ich im Forum gefunden habe, so, dass es die DWG des MEP und die SAT der Teile, aus denen die Baugruppe besteht, generieren kann. (Ich weiß nicht, ob das möglich ist, aber ist es möglich, dass das Makro für alle Baugruppen, aus denen die Kopfbaugruppe besteht, dasselbe tut?)
Ich möchte auch, dass diese Dokumente in den Ordnern " PDF", " DWG " und " SAT " gespeichert werden, die sich in einem " CAD " -Ordner befinden, der sich wiederum im selben Pfad wie die Baugruppe befindet.

Ich bin leider nicht super gut mit VBA, also wende ich mich an Sie in der Hoffnung, dass Sie mir dabei helfen können!

Vielen Dank im Voraus!

pdf_des_composants_de_lassemblage.swp (54 KB)

Hallo;

Könnten Sie Ihr Makro hier bearbeiten (kopieren), anstatt es als Download bereitzustellen?
(mit den Tagsimage...) Ich bin kein großer Fan von Makros, die direkt heruntergeladen werden können.

Zweitens fehlt uns der Kontext, um Ihnen zu helfen:
Haben Ihre Zeichnungen den gleichen Namen wie Ihre 3D-Dateien und befinden sie sich im selben Verzeichnis?
Ist es notwendig, den Namen der PDF- und/oder DWG-Dateien mit dem Indexbegriff zu versehen?
Wenn Sie über Ihre Baugruppen sprechen, gehören sie auch zum gleichen Repertoire wie die an der Spitze?
Ein Beispiel für Ihre Verzeichnishierarchie wäre schön.

Herzliche Grüße.

1 „Gefällt mir“

Hallo

Vielen Dank für Ihre schnelle Antwort!

Unten ist das Makro zum Speichern von PDFs in meinem "C:":

Sub ShowAllOpenFiles()
Dim swDoc As SldWorks.ModelDoc2
Dim swAllDocs As EnumDocuments2
Dim FirstDoc As SldWorks.ModelDoc2
Dim dummy As Boolean
Dim NumDocsReturned As Long
Dim DocCount As Long
Dim i As Long
Dim sMsg As String
Dim swApp As SldWorks.SldWorks
Dim bDocWasVisible As Boolean
Dim OpenWarnings As Long
Dim OpenErrors As Long
Dim DwgPath As String
Dim myDwgDoc As SldWorks.ModelDoc2
Dim drwPathName As String
Dim pdfPathName As String
Dim pdfFolderName As String
Dim swExportPDFData As SldWorks.ExportPdfData
Dim lErrors As Long
Dim lWarnings As Long
Dim boolstatus As Boolean

Set swApp = Application.SldWorks
Set swAllDocs = swApp.EnumDocuments2
Set FirstDoc = swApp.ActiveDoc
   
DocCount = 0
swAllDocs.Reset
swAllDocs.Next 1, swDoc, NumDocsReturned
While NumDocsReturned <> 0
    bDocWasVisible = swDoc.Visible
    'swApp.ActivateDoc swDoc.GetPathName'
    DwgPath = swDoc.GetPathName
    If (LCase(Right(DwgPath, 3)) <> "drw") And (DwgPath <> "") Then
        DwgPath = Left(DwgPath, Len(DwgPath) - 3) & "drw"
        Set myDwgDoc = swApp.OpenDoc6(DwgPath, swDocDRAWING, swOpenDocOptions_Silent, "", OpenErrors, OpenWarnings)
        If Not myDwgDoc Is Nothing Then
            swApp.ActivateDoc myDwgDoc.GetPathName
 
pdfFolderName = "C:\pdf files\"

 
Dim fso As Scripting.FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
 
If (Not fso.FolderExists(pdfFolderName)) Then
MkDir pdfFolderName
'MsgBox (pdfFolderName + " does not exist")
'Exit Sub
End If
 
Dim Part As ModelDoc2
Set Part = swApp.ActiveDoc()
 
'You have a drawing active
drwPathName = Part.GetPathName()
 
If ("" = drwPathName) Then
' GetPathName() was empty
MsgBox ("This drawing has not been saved yet")
Exit Sub
End If
 
pdfPathName = fso.BuildPath(pdfFolderName, fso.GetBaseName(drwPathName) + ".pdf")
Debug.Print pdfPathName
Set swExportPDFData = swApp.GetExportFileData(1)
swExportPDFData.ViewPdfAfterSaving = False
Part.Extension.SaveAs pdfPathName, 0, 0, swExportPDFData, lErrors, lWarnings

'MsgBox ("PDF file was created")
    swApp.QuitDoc (Part.GetTitle)
            Set myDwgDoc = Nothing
        End If
    End If
    swAllDocs.Next 1, swDoc, NumDocsReturned
    DocCount = DocCount + 1
Wend
 
swApp.ActivateDoc FirstDoc.GetPathName
 
End Sub

Alle Abgeordneten haben den gleichen Namen wie das Teil/die Baugruppe.
Es gibt einen Hinweis in den Eigenschaften, die ich gerne nach dem Namen des Teils für das PDF, DWG und SAT erscheinen lassen möchte.

Struktur der SOLIDWORKS Dateinamen:

Name-Titel-Beschreibung

PDF,DWG & SAT Namensstruktur:

Name-Hinweis-Titel-Beschreibung.

Hierarchie:

Im Ordner:

Montage1.SLDASM
ASEEMBLAGE1.SLDDRW
" CAD " -Datei

Im Ordner " CAD ":

PDF-Datei  
" DWG " -Datei
" SAT " Datei
Teil1.SLDPRT
Teil 1.SLDDRW
Teil2.SLDPRT
Teil 2.SLDDRW
Montage2.SLDASM
Montage2.SLDDRW

Nicht zu viel Zeit für die Entwicklung, aber in diesem Thema finden Sie die Antworten zum Ändern der Exportpfade.
Edit: mit dem Link ist es besser... :rofl:

Existiert Ihre Vorstellung von " Index " auf Ihren 3Ds? (PDM?)
Wenn dies nicht der Fall ist, wird es nicht einfach sein, diese Vorstellung in SAT-Formate zurückzuführen (zumindest ohne mit den MEP-Informationen zu betrügen...) …

Nein, ich habe kein PDM, ich fülle den Begriff des Index in meinen persönlichen Eigenschaften aus und der Index wird in meinem MEP angezeigt.
Wäre es nicht möglich, das Makro dazu zu bringen, den Index in den Eigenschaften abzurufen und ihn dann beim Speichern wie bei PDFs und DWGs wie bei PDFs und DWGs als "Name-Index-Titel-Beschreibung" hervorzuheben?

Hier finden Sie ein Beispiel, wie Sie den Namen Ihrer PDF-Dateien und anderer Formate Eigenschaften hinzufügen können.