Znajdowanie informacji o numerze części w pliku rysunku

Witam

W makrze VBA szukam ukrycia szkicu linii gięcia w drzewie projektu. Aby wykonać mój selectID2, muszę umieścić nazwę szkicu i nazwę części z nazwą widoku.
Zauważyłem, że liczba między <> zmienia się z każdym widokiem. Jak mogę pobrać te informacje, aby wybrać encję w drzewie projektu i użyć mojej funkcji blanksketch.

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

Z góry dziękuję.
Pozdrowienia.

Witam;

Jest to identyfikator wystąpienia:
image

Pozdrowienia.

2 polubienia

Witam

Dziękuję, wydaje się, że tak jest, ale ten przykład kodu działa w zestawie. Chcę pobrać ten identyfikator, który znajduje się w dokumencie, do którego odwołuje się widok rysunku. Najpierw wybieram na przykład widok " Rysunek View2 " i chciałbym, aby podał mi ten identyfikator wystąpienia dla części F0-99999-0 w tym przykładzie.
Z góry dziękuję.
Pozdrowienia.

Witam;

Tak więc ze zmienną " Nazwa2 "
https://help.solidworks.com/2022/English/api/sldworksapi/SOLIDWORKS.Interop.sldworks~SOLIDWORKS.Interop.sldworks.IComponent2~Name2.html?verRedirect=1
(używane w makrze Solidworks Example):
https://help.solidworks.com/2019/english/api/sldworksapi/Get_Components_in_Drawing_View_Example_VB.htm
Zobacz linię:
Debug.Print " Komponent = " & swComp. Nazwa2

Pozdrowienia.

1 polubienie

Witam
Próbowałem, ale nie mogę tego wykorzystać. Szukam tego identyfikatora dla pliku części, do którego odwołuje się rysunek, a nie dla złożenia. Próbowałem kilku modyfikacji i to nie działa.

Witam;
Zmienna pozostaje taka sama: ( Nazwa2)
https://help.solidworks.com/2019/english/api/sldworksapi/Get_Visible_Components_and_Entities_in_Drawing_View_Example_VB.htm

lub bardziej ogólnie:
https://help.solidworks.com/SearchEx.aspx?query=Get%20Components%20in%20Drawing&version=2019&lang=english&prod=api

1 polubienie

Witam

Dobrze współpracuje z przykładem API podanym przez @Maclane Pobierz komponenty w przykładzie widoku rysunku (VBA) - 2023 - Pomoc SOLIDWORKS API
Identyfikator jest zawarty na końcu nazwy komponentu -n, więc musisz zdekomponować wynik wiersza Component = " & swComp.Name2 , aby wyświetlić identyfikator

2 polubienia