Macro VBA pour modifier nomenclature plan

Bonjour,

Je souhaiterais dans une macro modifier plusieurs éléments d'une nomenclature plan.

1-) La configuration en symétrieDéfaut ou configuration reférencé dans le plan ->Ok

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

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

2-) La largeur de colonne après changement de configuration pour la colonne quantité (cette largeur se modifie en raison d'un bug)

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

3- )Modifier la taille de police de cette même colonne qui passe à 16 au lieu de 11 à cause du précédent bug.

Pour le point 1 je devrait m'en tirer sans problème grâce au code trouvé, si quelqu'un à des pistes pour les points 2 et 3.

 

Merci

Pour le point 2 trouvé aussi:

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

Cela modifie bien ma colonne ou j'ai le soucis de largeur et police différente.

Il reste plus que le point 3-) Pour changer cette police.

Option 1 la modifier dans la nomenclature en changeant la police de la colonne (aucune idée sur la manière d'y arriver

ou option 2 modifier l'option dans outil option/Propriétés du document/Tables/Nomenclature/Police

Si quelqu'un a une solution pour réaliser l'une de ces 2 option possible.

Merci

Bonjour sbadenis
En theorie ton Document de Mise en plan doit deja avoir les reglages adequats (Modele de mises en plan)....

As-tu essayé "SetTextFormat" ? (Aide Solidworks : SetTextFormat Methode)
Avec :     value = instance.SetTextFormat(UseDoc, TextFormat)

UseDoc
True to use the document setting, false to not
TextFormat
ITextFormat object
Cordialement
1 « J'aime »

Merci @Maclane pour la piste. Au finale comme le soucis vient plutôt de mon modèle de document ou la police est parametré en 16 au lieu de 10, j'ai préféré apporté la modification au niveau du document, même si ta solution fonctionnait sûrement aussi, mais me paraissait moins logique pour mon besoin.

Pour ceux que cela intéresserait voici la solution retenue:

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 « J'aime »