Dim swApp As Object
Sub main()
Dim swModel As ModelDoc2
Dim swdraw As DrawingDoc
Dim tab1 As TableAnnotation
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swdraw = swModel
Set tab1 = swdraw.SelectionManager.GetSelectedObject6(1, 0)
SetColumnWith tab1
End Sub
Sub SetColumnWith(swTable As TableAnnotation)
Dim index As Integer
Dim swAnnotation As Annotation
Dim swDislplayData As DisplayData
'Dim TextWidth As Double
Set swAnnotation = swTable.GetAnnotation
Set swDislplayData = swAnnotation.GetDisplayData
For i = 0 To swTable.ColumnCount - 1
Dim ColumnWidth As Double
ColumnWidth = swTable.GetColumnWidth(i)
Debug.Print i & ":" & ColumnWidth * 1000
If i = 1 Then
'bRet = swTable.SetColumnWidth (i)
Dim ColWd As Double
ColWd = swTable.GetColumnWidth(i)
Debug.Print ColWd
retHt = swTable.SetColumnWidth(i, 0.0135, 0)
End If
Next
End Sub
Dadurch wird meine Spalte gut modifiziert oder ich habe das Problem der Breite und der unterschiedlichen Schriftart.
Es bleibt nur noch Punkt 3-) übrig, um diese Schriftart zu ändern.
Option 1: Ändern Sie es in der Nomenklatur, indem Sie die Schriftart der Spalte ändern (keine Ahnung, wie das geht
oder Option 2 Ändern Sie die Option in Werkzeugoption/Dokumenteigenschaften/Tabellen/Nomenklatur/Schriftart
Wenn jemand eine Lösung hat, um eine dieser 2 möglichen Optionen zu erreichen.
Danke @Maclanefür den Hinweis. Da das Problem von meiner Dokumentvorlage herrührt, bei der die Schriftart auf 16 statt auf 10 eingestellt ist, habe ich es vorgezogen, die Änderung auf Dokumentebene vorzunehmen, auch wenn Ihre Lösung wahrscheinlich auch funktioniert hat, mir aber für meine Bedürfnisse weniger logisch erschien.
Für diejenigen, die interessiert sind, hier die gewählte Lösung:
Dim swDraw As DrawingDoc
Dim swAnnotation As Annotation
Dim UserPref As Integer
Dim UserPrefOption As Integer
Dim swTextFormat As SldWorks.TextFormat
Dim bRet As Boolean
Set swTextFormat = swAnnotation.GetTextFormat(1)
swTextFormat.CharHeightInPts = "10"
swTextFormat.TypeFaceName = "Arial"
swTextFormat.Bold = False
swTextFormat.Italic = False
bRet = swDraw.Extension.SetUserPreferenceTextFormat(swUserPreferenceTextFormat_e.swDetailingBillOfMaterialTextFormat, swDetailingBillOfMaterial, swTextFormat)