Ajout numéro de page automatique dans cartouche

Bonjour à tous,

J’ai une question concernant les propriétées automatiques dans un plan 2D:

J’aimerai tout simplement afficher la page active ainsi que le nombre totale de page de ma mise en plan :
image

j’ai procédé comme ci-dessous :
J’ai deux champs automatiques dans mon cartouche, le premier est pour connaitre le numéro de page active. J’ai simplement inséré le lien d’attribut « Numéro de feuille » dans la case souhaité :

Ensuite dans un deuxième champ je souhaiterai avoir le nombre de pages total.
Il y a bien un lien d’attribut avec le nombre total de feuilles :

Le problème c’est que dans ce compteur tous les calques sont pris en compte, or j’aimerai que le « calque de detail » soit exclu de ce compteur .

savez vous si celle requette très spécial existe?
Peut-être avez vous une autre méthode pour afficher le compteur de page sur un cartouche ?

Merci d’avance pour vos retours.

Bonjour;

Pour afficher le nombre totale de feuilles utilisez la variable « SW-Nbre total de feuilles » ou « SW-Total Sheets »

https://help.solidworks.com/2020/french/SolidWorks/sldworks/t_link_notes_to_document_properties.htm

Par contre pour pouvoir exclure une feuille selon un critère spécifique je pense qu’il faudra passer par une macro.
du genre :


    Sub main()
        Dim swApp                   As SldWorks.SldWorks
        Dim swModel                 As SldWorks.ModelDoc2
        Dim swDraw                  As SldWorks.DrawingDoc
        Dim swSheet                 As SldWorks.Sheet
        Dim vSheetNames             As Variant
        Dim bRet                    As Boolean
        Dim i                       As Long

        Set swApp = Application.SldWorks
        Set swModel = swApp.ActiveDoc
        Set swDraw = swModel
        Set swSheet = swDraw.GetCurrentSheet
        vSheetNames = swDraw.GetSheetNames
       

        For i = 0 To UBound(vSheetNames)
            Debug.Print "  SheetName[" & i & "] = " & vSheetNames(i)           

           If vSheetNames(i) = "LE NOM DE LA FEUILLE A NE PAS COMPTER" Then 
            swModel.AddCustomInfo2 "Total Sheets", swCustomInfoText, swModel.GetSheetCount - 1                    

                 End 
                 End If

    Next i    

    End Sub

Cordialement.

1 « J'aime »

Merci pour ton retour, malheureusement je suis sur Catia, et je pense que ce n’est pas applicable … :confused:

Bonjour;

Ah! Sapristi ! je n’avais pas remarqué le logiciel utilisé.
Désole… :crazy_face:
Quelques piste probables ici (c’est bien pour CATIA cette fois):

Cordialement.

2 « J'aime »

Salut,

Sûrement trop tard mais…

[facultatif, c’est pour qu’on ait la même chose en étape 2] // Au lieu de ton " / " écris « -/- » dans la zone de texte :
image

Renomme la zone de texte ainsi : NumeroPage

La macro qui va bien (normalement) :
Private Sub CommandButtonValider_Click()

Dim Planche, SurPlanches

’ détermine le nombre total de planches
SurPlanches = 0
For I = 1 To CATIA.ActiveDocument.Sheets.Count
If CATIA.ActiveDocument.Sheets.Item(I).IsDetail = False Then
SurPlanches = SurPlanches + 1
End If
Next

’ Attribution du numero de page
Planche = 0
For I = 1 To CATIA.ActiveDocument.Sheets.Count
If CATIA.ActiveDocument.Sheets.Item(I).IsDetail = False Then
Planche = Planche + 1
CATIA.ActiveDocument.Sheets.Item(I).Views.Item(2).Texts.GetItem(« NumeroPage »).Text = Planche & « / » & SurPlanches

’ renome les onglets
CATIA.ActiveDocument.Sheets.Item(I).Name = Planche & « / » & SurPlanches

End If

Next

End Sub

je te laisse remettre en forme, j’ai viré tout ce qui ne sert à rien, ce qui explique pourquoi on est dans une « private », pourquoi il y a des « next » qui se baladent…