Makro VBA do zmiany płaskiego zestawienia komponentów

Witam

W makrze chciałbym zmodyfikować kilka elementów nomenklatury planów.

1-) Konfiguracja symetrycznaDefault lub konfiguracja, do której odwołuje się plan ->Ok

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

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

2-) Szerokość kolumny po zmianie konfiguracji dla kolumny ilości (ta szerokość zmienia się z powodu błędu)

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

3- ) Zmień rozmiar czcionki tej samej kolumny na 16 zamiast 11 z powodu poprzedniego błędu.

Dla punktu 1 powinno mi to ujść na sucho dzięki znalezionemu kodowi, jeśli ktoś ma jakieś tropy do punktów 2 i 3.

 

Dziękuję

W odniesieniu do pkt 2 stwierdzono również, że:

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

To dobrze modyfikuje moją kolumnę lub mam problem z szerokością i inną czcionką.

Pozostał tylko punkt 3-) do zmiany tej czcionki.

Opcja 1: zmodyfikuj go w nomenklaturze, zmieniając czcionkę kolumny (nie mam pojęcia, jak to zrobić

lub opcja 2 zmień opcję w opcji narzędzia/Właściwości dokumentu/Tabele/Nomenklatura/Czcionka

Jeśli ktoś ma rozwiązanie, aby osiągnąć jedną z tych 2 możliwych opcji.

Dziękuję

Witaj sbadenis
Teoretycznie dokument rysunku powinien już mieć odpowiednie ustawienia (szablon rysunku)....

Czy próbowałeś "SetTextFormat"? (Pomoc Solidworks: Metoda SetTextFormat)
Gdzie:     wartość = wystąpienie. SetTextFormat(UseDoc, TextFormat)

UseDoc (Dokument dostępu)
Prawda, aby użyć ustawienia dokumentu, wartość false oznacza wartość nie
Format tekstu
Obiekt ITextFormat
Pozdrowienia
1 polubienie

Dzięki @Maclane za prowadzenie. W końcu, ponieważ problem wynika z mojego szablonu dokumentu, w którym czcionka jest ustawiona na 16 zamiast 10, wolałem wprowadzić modyfikację na poziomie dokumentu, nawet jeśli Twoje rozwiązanie prawdopodobnie też zadziałało, ale wydawało mi się mniej logiczne dla moich potrzeb.

Dla tych, którzy byliby zainteresowani, oto wybrane rozwiązanie:

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 polubienie