Suchen von Teile-ID-Informationen in einer Zeichnungsdatei

Hallo

In einem VBA-Makro versuche ich, die Biegelinienskizze im Designbaum auszublenden. Um meine selectID2 zu machen, muss ich den Namen der Skizze und den Namen des Teils mit dem Namen der Ansicht verbinden.
Mir ist aufgefallen, dass sich die Zahl zwischen <> mit jeder Ansicht ändert. Wie kann ich diese Informationen abrufen, um das Element im Designbaum auszuwählen und meine blanksketch-Funktion zu verwenden?

If Not swSheet Is Nothing Then
                Debug.Print "Feuille activée: " & swSheet.GetName

                ' Obtenir la première vue de la feuille
                Set swView = swDraw.GetFirstView
                ' La première vue est toujours la vue du modèle, passer à la suivante
                Set swView = swView.GetNextView
                    Debug.Print "Nom de la vue sélectionnée :" & swView.Name
                    
                Do While Not swView Is Nothing
                    Debug.Print "Configuration de la vue: " & swView.ReferencedConfiguration
                    If swView.ReferencedConfiguration = configName Then
                        ' Obtenir le modèle de la vue
                        Set swPart = swView.ReferencedDocument
                        If Not swPart Is Nothing Then
                            Debug.Print "Modèle référencé: " & swPart.GetPathName

                            ' Parcourir les esquisses pour trouver et cacher les lignes de pliage
                            Set swFeat = swPart.FirstFeature
                            Do While Not swFeat Is Nothing
                                Debug.Print "swFeat :" & swFeat.GetTypeName
                            Set swSubFeat = swFeat.GetFirstSubFeature
                            'arborescence de sous niveau
                                Do While Not swSubFeat Is Nothing
                                        Debug.Print "swSubFeat :" & swSubFeat.GetTypeName
                                    If swSubFeat.GetTypeName = "ProfileFeature" Then
                                        swSketchName = swSubFeat.Name
                                        If swSketchName Like "Lignes de pliage*" Then
                                            boolstatus = swModel.ActivateView(swView.Name)
                                                Debug.Print "Nom de la vue sélectionnée :" & swView.Name
                                            récupérer le PartID du fichier référencé
                                            
                                            SelectItemPlan = swSubFeat.Name & "@" & NomFichierRacine & "-" & partID & "@" & swView.Name
                                            boolstatus = swModel.Extension.SelectByID2(SelectItemPlan, "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
                                            If boolstatus Then
                                                swModel.BlankSketch
                                                swModel.ClearSelection2 True
                                                Debug.Print "Esquisse " & swSubFeat.Name & " cachée pour la feuille " & sheetName & " avec la configuration " & configName
                                            Else
                                                MsgBox "Échec de la sélection pour " & swSubFeat.Name
                                            End If
                                        End If
                                    End If
                                    Set swSubFeat = swSubFeat.GetNextSubFeature()
                                Loop
                                Set swFeat = swFeat.GetNextFeature
                            Loop
                        Else
                            MsgBox "Modèle référencé non trouvé pour la vue avec la configuration " & configName
                        End If
                        Exit Do
                    End If
                    Set swView = swView.GetNextView
                Loop
            Else
                MsgBox "Feuille non trouvée: " & sheetName
            End If

Vielen Dank im Voraus.
Herzliche Grüße.

Hallo;

Dies ist die Vorkommenskennung:
image

Herzliche Grüße.

2 „Gefällt mir“

Hallo

Vielen Dank, das scheint es zu sein, aber dieses Codebeispiel funktioniert mit einer Assembly. Ich möchte diese Kennung abrufen, die sich im referenzierten Dokument der Zeichnungsansicht befindet. Zuerst wähle ich zum Beispiel meine Ansicht " Zeichnungsansicht2 " aus und möchte mir in diesem Beispiel diese Vorkommenskennung für das Bauteil F0-99999-0 mitteilen.
Vielen Dank im Voraus.
Herzliche Grüße.

Hallo;

Also mit der Variablen " Name2 "
https://help.solidworks.com/2022/English/api/sldworksapi/SOLIDWORKS.Interop.sldworks~SOLIDWORKS.Interop.sldworks.IComponent2~Name2.html?verRedirect=1
(wird im Solidworks Beispielmakro verwendet):
https://help.solidworks.com/2019/english/api/sldworksapi/Get_Components_in_Drawing_View_Example_VB.htm
Siehe Zeile:
Debug.Print " Komponente = " & swComp. Name2

Herzliche Grüße.

1 „Gefällt mir“

Hallo
Ich habe es versucht, aber ich kann es anscheinend nicht ausnutzen. Ich suche nach dieser Kennung für eine Teiledatei, auf die in der Zeichnung verwiesen wird, und nicht für eine Baugruppe. Ich habe mehrere Modifikationen ausprobiert und es funktioniert nicht.

Hallo;
Die Variable bleibt gleich: ( Name2)
https://help.solidworks.com/2019/english/api/sldworksapi/Get_Visible_Components_and_Entities_in_Drawing_View_Example_VB.htm

oder allgemeiner:
https://help.solidworks.com/SearchEx.aspx?query=Get%20Components%20in%20Drawing&version=2019&lang=english&prod=api

1 „Gefällt mir“

Hallo

Funktioniert gut mit dem API-Beispiel von @Maclane Get Components in Drawing View Example (VBA) - 2023 - SOLIDWORKS API Help
Die ID ist am Ende des Komponentennamens -n enthalten, so dass Sie das Ergebnis der Zeile Component = " & swComp.Name2 zerlegen müssen, um die ID auszugeben

2 „Gefällt mir“