Bonjour,
Dans une macro vba, je cherche à cacher l’esquisse de ligne de pliage dans l’arbre de conception. pour faire mon selectID2 il faut que je mette le nom de l’esquisse et le nom de la pièce avec le nom de la vue.
J’ai remarqué que le numéro entre <> change à chaque vue. comment puis récupérer cette information afin de sélectionner l’entité dans l’arbre de conception et utiliser ma fonction 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
Merci d’avance.
Cordialement.