VBA-Makro zum Ändern der Ebenenstückliste

Hallo

In einem Makro möchte ich mehrere Elemente einer Plannomenklatur ändern.

1-) Die symmetrische configurationDefault oder die Konfiguration, auf die im Plan verwiesen wird ->Ok

Gefundener Code: https://www.codestack.net/solidworks-api/document/drawing/bom-tables-update-referenced-configuration/

! [](upload://ukhwxSXVFt6vjiJ1XNKMqV6Q7N3.png)

2-) Die Spaltenbreite nach dem Ändern der Konfiguration für die Mengenspalte (diese Breite ändert sich aufgrund eines Fehlers)

! [](upload://eg2sXRpMa4geUFZmvlT0m2BHKNs.png)

3- )Ändern Sie die Schriftgröße derselben Spalte aufgrund des vorherigen Fehlers auf 16 statt auf 11.

Für Punkt 1 sollte ich dank des gefundenen Codes damit durchkommen, falls jemand Hinweise auf die Punkte 2 und 3 hat.

 

Vielen Dank

Zu Punkt 2 auch gefunden:

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.

Vielen Dank

Hallo sbadenis
Theoretisch sollte Ihr Zeichnungsdokument bereits über die entsprechenden Einstellungen verfügen (Zeichnungsvorlage)....

Haben Sie "SetTextFormat" ausprobiert? (Solidworks Hilfe: SetTextFormat-Methode)
Mit:     Wert = Instanz. SetTextFormat(UseDoc, TextFormat)

UseDoc (Englisch)
True, um die Dokumenteinstellung zu verwenden, False bis nicht
TextFormat
ITextFormat-Objekt
Herzliche Grüße
1 „Gefällt mir“

Danke @Maclane fü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)

 

 

1 „Gefällt mir“