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
Dit wijzigt mijn kolom goed of ik heb het probleem van de breedte en een ander lettertype.
Er is alleen nog punt 3-) over om dit lettertype te wijzigen.
Optie 1 wijzig het in de nomenclatuur door het lettertype van de kolom te wijzigen (geen idee hoe dit te doen
of optie 2 wijzig de optie in gereedschapsoptie/Documenteigenschappen/Tabellen/Nomenclatuur/Lettertype
Als iemand een oplossing heeft om een van deze 2 mogelijke opties te bereiken.
Bedankt @Maclanevoor de leiding. Uiteindelijk, aangezien het probleem komt van mijn documentsjabloon, waar het lettertype is ingesteld op 16 in plaats van 10, gaf ik er de voorkeur aan om de wijziging op documentniveau aan te brengen, zelfs als uw oplossing waarschijnlijk ook werkte, maar leek het mij minder logisch voor mijn behoeften.
Voor degenen die geïnteresseerd zijn, is hier de gekozen oplossing:
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)