How to Make Multilingual Drawings

I use SW in French and some clients ask me for plans in English. I would like to know if there is a way to pass piercing annotations from one language to another simply.

Hello

No, you have to translate everything yourself, it's annoying, but I've never found a solution for that.

Hello

Have you tried to check the "Use English function and file names" box in "System Options / General"?

Hello

You're talking about this type of annotation:

If so, then this is possible by macro in which you have to list all the annotations of the plan and in each of them replace the value in French with the value in English.

Something like:

Sub ChangePrefixe()

Dim swApp               As SldWorks.SldWorks
Dim swDrawing           As SldWorks.DrawingDoc
Dim swView              As View
Dim swDispDim           As SldWorks.DisplayDimension
Dim swAnn               As SldWorks.Annotation
Dim swDimension         As SldWorks.Dimension

Set swApp = Application.SldWorks
Set swDrawing = swApp.ActiveDoc
Set swView = swDrawing.GetFirstView

Do While Not swView Is Nothing
    Set swDispDim = swView.GetFirstDisplayDimension5
    Do While Not swDispDim Is Nothing
        Set swAnn = swDispDim.GetAnnotation
        Set swDimension = swDispDim.GetDimension
            
        Dim Pref As String
        Pref = swDispDim.GetText(swDimensionTextPrefix)
        Pref = Replace(Pref, "lamés", "Ma traduction")
            
        swDispDim.SetText swDimensionTextPrefix, Pref

        Set swDispDim = swDispDim.GetNext3
    Loop
    Set swView = swView.GetNextView
Loop

End Sub

Of course, you have to add a certain number of controls to be sure to modify only what you want, this can be improved and completed to also reflect other elements.

Kind regards

[EDIT] Small precision, this manip breaks the link with the automatic update of the annotation in case of modification of the 3D, you must then delete the annotation and then put it back before replaying the macro.

1 Like