Macro - Ajouter une note sur une pièce dans une mise en plan

Bonjour
je suis en train de créer une macro. J’ai une vue avec un assemblage et je veux pointer une des pièces pour y ajouter une note attachée à celle-ci avec un lien vers une propriété

J’ai déjà réussi à traverser l’arbre de composants des pièces qui sont dans la vue, et j’arrive à récupérer le
swComp
et à avoir le nom avec .Name2, ou le chemin .getPathName
et j’arrive à lister les corps/faces aussi

J’arrive aussi à ajouter une note sur ma vue

je n’arrive pas à sélectionner la pièce voulu pour y attacher la note. J’essaie avec .select4, et d’autres fonctions que j’ai trouvés, mais impossible. C’est vraiment la liaison entre la pièce et la note que je n’arrive pas à faire

Merci d’avance
Cédric

Bonjour,

pourquoi ne pas faire simplement une bibliothèque de note comme je l’ai fait, car il faudra de toute façon sélectionner votre pièce pour l’attacher et là vous faite un glissé/déposé et le tour et joué.

3 « J'aime »

merci mais j’ai déjà des bibliothèques, ce que je veux faire c’est automatiquement ajouter les notes sur les pièces

Voici le code que j’utilise actuellement. Ca sélectionne bien la pièce, ça crée une note mais elle n’est pas attachée à la sélection

Dim swApp As Object
Dim swModel As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim boolstatus As Boolean
Dim swModelDocExt As SldWorks.ModelDocExtension

Sub main()

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swModelDocExt = swModel.Extension
    Set swSelMgr = swModel.SelectionManager
    Set swComp = swSelMgr.GetSelectedObject6(1, -1)
   
    boolstatus = swModel.ActivateView("Vue de mise en plan4")
    boolstatus = swModel.Extension.SelectByID2("Tuy entree huile 49477-23@Vue de mise en plan4/Pipe_1-Tuy entree huile 49477-1@Tuy entree huile 49477/3inSchedule10_2^Pipe_1-Tuy entree huile 49477-3@Pipe_1-Tuy entree huile 49477", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
    Debug.Print boolstatus
    
    Dim myNote As Object
    Set myNote = swModel.InsertNote("Lg= $PRPMODEL:""Longueur"" mm")
End Sub

Bonjour;
Voir Aide API:
https://help.solidworks.com/2022/english/api/sldworksapi/Attach_Annotation_to_Entity_Example_VB.htm?verRedirect=1

et plus précisément : SetAttachedEntities

Cordialement.

1 « J'aime »