Hallo
In een vba-macro probeer ik de schets van de buiglijn in de ontwerpboom te verbergen. om mijn selectID2 te doen, moet ik de naam van de schets en de naam van het onderdeel met de naam van de weergave plaatsen.
Ik merkte dat het getal tussen <> bij elke weergave verandert. Hoe kan ik deze informatie ophalen om de entiteit in de ontwerpboom te selecteren en mijn blanksketch-functie te gebruiken.
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
Bij voorbaat dank.
Vriendelijke groeten.