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!
Zou u uw macro hier kunnen bewerken (kopiëren), in plaats van deze als download aan te bieden? (met behulp van de tags...) 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.
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.
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?