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