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
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 »