Macros pour modifier le texte d'une mise en plan

Bonjour a tous,

Je cherche a créer une macro qui me permettrais de changer un texte existant dans un fond plan SolidWorks.
Pour l’instant mes recherches sur Google n’on pas été fructueuse, et l’enregistreur de macros de SolidWorks n’est pas d’un grand aide non plus.
Ont ne peut pas dire non plus que les API SolidWorks est une littérature fournis, précise et accessible.
Avez vous un exemple ou une idée pour m’orienter un peux ?

Merci par avance

Bonjour,
Pour l’exemple qui modifie une note dans le template:
https://help.solidworks.com/2020/English/api/sldworksapi/Change_Note_Text_Example_VB.htm?verRedirect=1

Tu peux aussi changer/recharger le fond de plan par un nouveau (avec la nouvelle note)
C’est plus simple à mon avis (si réalisable)
https://help.solidworks.com/2022/English/api/sldworksapi/Modify_and_Reload_Sheet_Format_Template_Example_VB.htm?verRedirect=1

1 « J'aime »

Merci,
Mais j’avais déjà trouver ces deux code, rien a voir avec ce que je veux faire

Peut tu en dire plus dans ce cas ou montrer la note que tu veux modifier et où?

Mais en faite c’est un simple texte sur le fond plan ou c’est ecrit « AAA » et je veux avec une macros modifier ce texte en « BBB » peut importe ou il est.
Si je connais le nom d’objet qui est : « Objet de detail331@fond de plan1 »

Voici comment modifier le texte d’une note via le nom de cette note, si j’ai bien compris:
https://help.solidworks.com/2020/English/api/sldworksapi/Get_Note_By_Name_Example_VB.htm

1 « J'aime »

Bon voila un morceau de code qui marche, par contre je doit maintenant lui faire reconaitre les format car le nom de la note n’est pas identique sur chaque format de mise en plan.

Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc
Dim swDraw As SldWorks.DrawingDoc
Dim swView As SldWorks.View
Dim swNote As SldWorks.Note
Dim sNoteText As String
Dim nTextCount As Long
Dim i As Long
Dim NoteDescript As String

Set swApp = Application.SldWorks 'CreateObject("SldWorks.Application")
Set swModel = swApp.ActiveDoc
Set swDraw = swModel
Set swView = swDraw.GetFirstView ' This is the drawing template

While Not swView Is Nothing
    Set swNote = swView.GetFirstNote
    While Not swNote Is Nothing
       If swNote.GetName = "Objet de détail160" Then
            NoteDescript = "$PRPSHEET:" & Chr(34) & "DESCRIPTION_EN" & Chr(34)
            swNote.SetTextAtIndex 1, NoteDescript
       End If
        'If swNote.IsCompoundNote Then
        '    nTextCount = swNote.GetTextCount
        '    For i = 1 To nTextCount
        '        sNoteText = swNote.GetTextAtIndex(i)
        '        DoReplaceString sNoteText
        '        swNote.SetTextAtIndex i, sNoteText
        '    Next i
        'Else
        '    sNoteText = swNote.GetText
        '    DoReplaceString sNoteText
        '    swNote.SetText sNoteText
        'End If
        Set swNote = swNote.GetNext
    Wend
    Set swView = swView.GetNextView
Wend

End Sub

Si le contenu est identique ou a une base identique préférer la reconnaissance via le contenu si c’est pas possible effectivement voir pour la reconnaissance via une liste de nom.
Sachant que le nom est plus risqué en général que le contenu.

1 « J'aime »

Bonjour,
La note est liée à une propriété de fichier ou c’est juste un objet sans rattachement?

1 « J'aime »