Macro's voor het bewerken van de tekst van een tekening

Hallo allemaal,

Ik ben op zoek naar een macro waarmee ik een bestaande tekst in een SolidWorks-blauwdruk kan wijzigen.
Tot nu toe zijn mijn Google-zoekopdrachten niet succesvol geweest, en de SolidWorks-macrorecorder helpt ook niet veel.
We kunnen ook niet zeggen dat de SolidWorks API's een verstrekte, nauwkeurige en toegankelijke literatuur zijn.
Heb je een voorbeeld of een idee om me een beetje te begeleiden?

Bij voorbaat dank

Hallo
Voor het voorbeeld dat een notitie in het sjabloon wijzigt:
https://help.solidworks.com/2020/English/api/sldworksapi/Change_Note_Text_Example_VB.htm?verRedirect=1

U kunt de basiskaart ook wijzigen/herladen met een nieuwe (met de nieuwe notitie)
Het is naar mijn mening eenvoudiger (indien haalbaar)
https://help.solidworks.com/2022/English/api/sldworksapi/Modify_and_Reload_Sheet_Format_Template_Example_VB.htm?verRedirect=1

1 like

Bedankt
Maar ik had deze twee codes al gevonden, niets te maken met wat ik wil doen

Kun je in dit geval meer zeggen of de notitie laten zien die je wilt veranderen en waar?

Maar in feite is het een eenvoudige tekst op de vlakke achtergrond waar "AAA" staat en ik wil deze tekst veranderen in "BBB" met een macro, waar het ook is.
Als ik de objectnaam weet, namelijk: "Plan detail331@fond object1"

Hier is hoe je de tekst van een notitie kunt bewerken via de naam van die notitie, als ik het goed heb begrepen:
https://help.solidworks.com/2020/English/api/sldworksapi/Get_Note_By_Name_Example_VB.htm

1 like

Nou, hier is een stukje code dat werkt, aan de andere kant moet ik er nu voor zorgen dat het de formaten herkent omdat de naam van de notitie niet identiek is op elk tekenformaat.

Sub hoofd()
Dim swApp als SldWorks.SldWorks
Dim swModel als SldWorks.ModelDoc
Dim swDraw als SldWorks.DrawingDoc
Dim swView als SldWorks.Bekijk
Dim swNote als SldWorks.Note
Dim sNoteText als tekenreeks
Dim nTextCount zo lang
Zon i Zo lang
Dim NoteDescript als snaar

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

Einde Sub

Als de inhoud identiek is of dezelfde basis heeft, geef dan de voorkeur aan erkenning via inhoud, als dit niet mogelijk is, zie dan effectief voor erkenning via een lijst met namen.
Wetende dat de naam over het algemeen riskanter is dan de inhoud.

1 like

Hallo
Is de notitie gebonden aan een bestandseigenschap of is het gewoon een niet-gekoppeld object?

1 like