Na wat onderzoek en pogingen, is dit wat ik heb samengesteld:
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swDraw As SldWorks.DrawingDoc
Dim Filepath As String
Dim fileName As String
Dim Revision As String
Dim exportData As SldWorks.ExportPdfData
Dim lErrors As Long
Dim lWarnings As Long
Dim confName As String
Dim revNmb As String
Dim val As String
Dim resolved As Boolean
Dim swview As SldWorks.View
Dim swRefModel As ModelDoc2
Dim swRefAssy As AssemblyDoc
Dim swCustPropMgr As SldWorks.CustomPropertyManager
Dim ValOut As String
Dim numéro As String
Dim description As String
Sub Main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
If swModel Is Nothing Then
MsgBox "Tu as pensé à ouvrir ta mise en plan?", vbCritical
End
End If
If swModel.GetType <> swDocDRAWING Then
MsgBox "Et si tu ouvrais ta mise en plan avant?", vbCritical
End
End If
Set swDraw = swModel
If swDraw.GetPathName = "" Then
swDraw.Save
End If
If swModel.GetType = swDocDRAWING Then ' Pour savoir si le document est un plan
Set swDraw = swApp.ActiveDoc
Set swview = swDraw.GetFirstView 'selectionne le fond de plan
Set swview = swview.GetNextView 'selectionne la premier vue
Set swRefModel = swview.ReferencedDocument
Set swCustPropMgr = swRefModel.Extension.CustomPropertyManager("")
swCustPropMgr.Get4 "Ville", True, ValOut, "Ville", False 'récupère la valeur de la propriété "Ville"
swCustPropMgr.Get5 "Rue/Quartier", True, ValOut, "Rue/Quartier", False 'récupère la valeur de la propriété "Rue/Quartier"
swCustPropMgr.Get2 "indice", True, ValOut, "indice", False 'récupère la valeur de la propriété "indice"
Dim dateNow As String
dateNow = Replace(Date, "/", ".")
Filepath = "D:\Téléchargements\Plan PDF"
Filepath = Filepath + "\"
fileName = ValOut & " " & "-" & " " & ValOut & " " & "-" & " " & "Ind." & " " & ValOut & " " & "-" & " " & dateNow
swDraw.SaveAs (Filepath + fileName + ".PDF")
Exit Sub
End If
End Sub
Laat me duidelijk zijn, ik begreep maar een klein deel van dit alles, maar het is functioneel op een deel na.
Ik heb verschillende onderwerpen voor het herstellen van eigendommen bekeken, maar ik begrijp niet hoe het werkt:
swCustPropMgr.Get4 "Ville", True, ValOut, "Ville", False 'récupère la valeur de la propriété "Ville"
swCustPropMgr.Get5 "Rue/Quartier", True, ValOut, "Rue/Quartier", False 'récupère la valeur de la propriété "Rue/Quartier"
swCustPropMgr.Get2 "indice", True, ValOut, "indice", False 'récupère la valeur de la propriété "indice"
de Get4 of Get5... Ik zie niet in hoe ik moet zeggen:
De waarde die aan "Stad" is toegewezen, is wat er in het volgende vak staat
En vervolgens om het in de naam te kunnen transcriberen, omdat op dit moment, afgezien van de datum, de namen van de eigenschappen niet worden weergegeven. Dit is het resultaat dat ik krijg: " - - Ind. - 04.02.2019.PDF"
Ook, om een beetje meer te begrijpen, wat is het doel van alle regels onder "Optie Expliciet" van de stijl:
Dim swApp As SldWorks.SldWorks
Bij voorbaat dank