Oskars Mīlbergs
Oskars Mīlbergs

Reputation: 41

Custom Properties Text Font

I have created a macro which imports my custom properties to a Solidworks part file. The problem is that Solidworks seems to not understand my chosen VBA text font and imports modified text. Could anyone help me to resolve this problem? You can see the altered text here.

Solidworks output

enter image description here

Upvotes: 1

Views: 254

Answers (1)

AndrewK
AndrewK

Reputation: 1303

I don't think that i can test this since my install uses the English ASCII encoding and it appears you are using characters I cannot use, but I found this code to convert ASCII to Unicode:

Public Function AsciiToUnicode(sText As String) As String
  Dim saText() As String, sChar As String
  Dim sFinal As String, saFinal() As String
  Dim x As Long, lPos As Long

  If Len(sText) = 0 Then
    Exit Function
  End If

  saText = Split(sText, ";") 'Unicode Chars are semicolon separated

  If UBound(saText) = 0 And InStr(1, sText, "&#") = 0 Then
    AsciiToUnicode = sText
    Exit Function
  End If

  ReDim saFinal(UBound(saText))

  For x = 0 To UBound(saText)
    lPos = InStr(1, saText(x), "&#", vbTextCompare)

    If lPos > 0 Then
      sChar = Mid$(saText(x), lPos + 2, Len(saText(x)) - (lPos + 1))

      If IsNumeric(sChar) Then
        If CLng(sChar) > 255 Then
          sChar = ChrW$(sChar)
        Else
          sChar = Chr$(sChar)
        End If
      End If

      saFinal(x) = Left$(saText(x), lPos - 1) & sChar
    ElseIf x < UBound(saText) Then
      saFinal(x) = saText(x) & ";" 'This Semicolon wasn't a Unicode Character
    Else
      saFinal(x) = saText(x)
    End If
  Next

  sFinal = Join(saFinal, "")
  AsciiToUnicode = sFinal

  Erase saText
  Erase saFinal
End Function

Upvotes: 1

Related Questions