Macro voor PDF, DWG & SAT onderdelen/MEP van een assemblage

Hoi allemaal

Ik ben momenteel bezig met het aanpassen van een macro (pdf_des_comosants_de_lassemblage.swp) die ik op het forum heb gevonden, zodat deze de DWG van de Europarlementariër en de SAT van de onderdelen waaruit de assemblage bestaat, kan genereren. (Ik weet niet of dit mogelijk is, maar is het mogelijk voor de macro om hetzelfde te doen voor alle assemblages die deel uitmaken van de hoofdassemblage?)
Ik wil ook dat deze documenten worden opgeslagen in een map " PDF, " DWG " en " SAT " die zich bevinden in een " CAD " -map, die zich op zijn beurt in hetzelfde pad bevindt als de assemblage.

Ik ben helaas niet super goed met VBA, dus ik wend me tot jou in de hoop dat je me hiermee kunt helpen!

Bij voorbaat dank!

pdf_des_composants_de_lassemblage.swp (54 kB)

Hallo;

Zou u uw macro hier kunnen bewerken (kopiëren), in plaats van deze als download aan te bieden?
(met behulp van de tagsimage...) Ik ben geen grote fan van macro's om direct te downloaden.

Ten tweede missen we de context om u te helpen:
Hebben uw tekeningen dezelfde naam als uw 3D-bestanden en bevinden ze zich in dezelfde map?
Is het nodig om een notie van index toe te voegen aan de naam van de PDF- en/of DWG-bestanden?
Als je het hebt over je subassemblages, zitten ze dan ook in hetzelfde repertoire als die aan de top?
Een voorbeeld van uw directoryhiërarchie zou leuk zijn.

Vriendelijke groeten.

1 like

Hallo

Bedankt voor je snelle reactie!

Hieronder is de macro voor het opslaan van pdf's in mijn "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 Europarlementariërs hebben dezelfde naam als het onderdeel/de assemblage.
Er is een notie van aanwijzing in de eigenschappen die ik zou willen verschijnen na de naam van het onderdeel voor de PDF, DWG & SAT.

Structuur van solidworks-bestandsnamen:

Naam-Titel-Beschrijving

PDF, DWG & SAT Naamstructuur:

Naam-aanwijzing-titel-beschrijving.

Hiërarchie:

In de map:

Vergadering1.SLDASM
Aseemblage1.SLDDRW
" CAD " -bestand

In de map " CAD " :

PDF-bestand  
" DWG " -bestand
" SAT " -bestand
Deel 1.SLDPRT
Deel 1.SLDDRW
Deel 2.SLDPRT
Deel 2.SLDDRW
Vergadering2.SLDASM
Montage2.SLDDRW

Niet te veel tijd om dev te doen, maar in dit onderwerp vindt u de antwoorden om de exportpaden te wijzigen.
Edit: met de link is het beter ... :rofl:

Bestaat uw idee van " index " op uw 3D's? (PDM?)
Als dit niet het geval is, zal het niet gemakkelijk zijn om dit idee te repatriëren naar SAT-formaten (althans zonder vals te spelen met de MEP-info...)…

Nee, ik heb geen PDM, ik vul het begrip index in mijn persoonlijke eigenschappen in en de index wordt weergegeven op mijn MEP.
Zou het niet mogelijk zijn om de macro de index op te halen in de eigenschappen en vervolgens op het moment van opslaan wordt gemarkeerd als: "Name-Index-Title-Description" zoals voor PDF's en DWG's?

u kunt hier een voorbeeld vinden om eigenschappen toe te voegen aan de namen van uw PDF-bestanden en andere formaten.