SolidWorksMakroprogrammierung
← Alle LösungenFrage · Zeichnungen

Die Erste: PDF mit Revisionsindex

27. Januar 2022 · Aufbau · Zeichnungen

Ich möchte von einem Drawing Dokument ein PDF speichern, jedoch mit dem Revisionsindex der gezeichneten Komponente, also mit dem Revisionsindex der Baugruppe oder des Teils, welches auf der Zeichnung dargestellt wurde.

Können Sie mir einen Tipp geben?

Option Explicit
Sub main()
    Dim swApp As SldWorks.SldWorks
    Set swApp = Application.SldWorks
    
    Dim swModelDoc As ModelDoc2
    Set swModelDoc = swApp.ActiveDoc
    
    Dim names As Variant
    names = swApp.GetDocumentDependencies2(swModelDoc.GetPathName, False, True, False)
    
    Dim docType As swDocumentTypes_e
    If Right(names(1), 6) = "SLDPRT" Then
        docType = swDocPART
    ElseIf Right(names(1), 6) = "SLDASM" Then
        docType = swDocASSEMBLY
    End If
    
    Dim nErrors As Long
    Dim nWarnings As Long
    
    Dim swDepModelDoc As ModelDoc2
    Set swDepModelDoc = swApp.OpenDoc6(names(1), docType, swOpenDocOptions_Silent, "", nErrors, nWarnings)
    
    Dim swCustPropMgr As CustomPropertyManager
    Set swCustPropMgr = swDepModelDoc.Extension.CustomPropertyManager("")
    
    Dim valOut As String
    Dim resValOut As String
    swCustPropMgr.Get6 "Revision", False, valOut, resValOut, False, False
    
    Debug.Print valOut
    Debug.Print resValOut
    
End Sub</pre>
Code-Sprache: VB.NET (vbnet)
Option Explicit
Sub main()
    Dim swApp As SldWorks.SldWorks
    Set swApp = Application.SldWorks
    
    Dim swModelDoc As ModelDoc2
    Set swModelDoc = swApp.ActiveDoc
    
    Dim swDrawingDoc As DrawingDoc
    Set swDrawingDoc = swModelDoc
    Dim swView As View
    Set swView = swDrawingDoc.GetFirstView
    Set swView = swView.GetNextView
    Dim refModelName As String
    refModelName = swView.GetReferencedModelName
    
    Debug.Print refModelName
    
    Dim docType As swDocumentTypes_e
    If Right(refModelName, 6) = "SLDPRT" Then
        docType = swDocPART
    ElseIf Right(refModelName, 6) = "SLDASM" Then
        docType = swDocASSEMBLY
    End If
    
    Dim nErrors As Long
    Dim nWarnings As Long
    
    Dim swDepModelDoc As ModelDoc2
    Set swDepModelDoc = swApp.OpenDoc6(refModelName, docType, swOpenDocOptions_Silent, "", nErrors, nWarnings)
    
    Dim swCustPropMgr As CustomPropertyManager
    Set swCustPropMgr = swDepModelDoc.Extension.CustomPropertyManager("")
    
    Dim valOut As String
    Dim resValOut As String
    swCustPropMgr.Get6 "Revision", False, valOut, resValOut, False, False
    
    Debug.Print valOut
    Debug.Print resValOut
    
End Sub</pre>
Code-Sprache: VB.NET (vbnet)

Fragen zu diesem Beitrag? Stell sie im Discord.