Makros Auschecken Eigentum an einem Teil in einer Zeichnung

Hallo an alle

Ich habe ein Makro erstellt, um meine Nomenklatur in eine CSV-Datei zu exportieren, die gut funktioniert.

Jetzt möchte ich es verbessern, indem ich den Ausgabedateinamen formatiere.
Zu diesem Zweck muss ich den Wert einer Eigenschaft des Teils mit dem Namen "DRAWING_NUM" abrufen, um sie in eine Variable einzufügen, während ich mich in der Zeichnung befinde und diese Eigenschaft in der Zeichnung nicht vorhanden ist.

Hat jemand von euch eine Idee, wie man das umsetzen kann?
Ich habe in diesem Forum bereits mehrere Beispiele für die Rückforderung von Eigentum gefunden, aber keines davon entspricht meinem Fall

Vielen Dank im Voraus

Hallo

Es würde ausreichen, es zu Ihrer Planvorlage hinzuzufügen, und es wird als Teil davon bezeichnet

1 „Gefällt mir“

Hallo

Ist es immer ein Teil des Plans und gibt es nur ein Model, das in diesen Aufnahmen genannt wird?

1 „Gefällt mir“

Ja, es gibt bereits Ansichten im Plan, und die Teileeigenschaften werden für die Befüllung der Kartusche abgerufen

Re
Grundsätzlich ermöglicht der folgende Code aus der ersten "gescannten" Ansicht, die DRAWING_NUM Eigenschaft der Datei abzurufen, die an die Ansicht angehängt ist.

Dim swApp                       As SldWorks.SldWorks
Dim swModel                     As SldWorks.ModelDoc2
Dim swDraw                      As SldWorks.DrawingDoc
Dim swView                      As SldWorks.View
Dim swCustProp                  As CustomPropertyManager
Dim bRet                        As Boolean
Dim ResolvedValOut              As String
Dim sValout                     As String
Dim WasResolved                 As Boolean

Sub main()
Set swApp = CreateObject("SldWorks.Application")

Set swModel = swApp.ActiveDoc

Set swDraw = swModel
        
Set swView = swDraw.GetFirstView 'Active le fond de plan

Set swView = swView.GetNextView 'Active la première vue après le fond de plan

Set swModel = swView.ReferencedDocument 'Récupère le fichier associé à la première vue
Set swModelDocExt = swModel.Extension
Set swCustProp = swModelDocExt.CustomPropertyManager("")

bRet = swCustProp.Get5("DRAWING_NUM", False, sValout, ResolvedValOut, WasResolved) 'Récupération de la propriété "DRAWIND_NUM"

Debug.Print ResolvedValOut 'Utiliser ResolvedValout ou sValout, tout dépend si c'est une valeur calculée ou une valeur fixe

Set swModel = Nothing
Set swApp = Nothing

End Sub

2 „Gefällt mir“

Danke Cyril.f es funktioniert perfekt!

1 „Gefällt mir“