Label des révisions

bonjour, je souhaiterai mettre en adéquation la numérotation de ma révision avec le label des révisions. 

dans les options on a le choix qu'avec 0,1,2,3 ou A,B,C.....

a moins de le modifier à la main à chaque passage d'indice, je n'ai pas trouvé d'endroit ou modifier le label automatiquement. j'ai mis une image en PJ pour expliquer mon propos

merci à vous


label_revision.jpg

Bonjour,

Pour ma part je ne savait pas que s'est modifiable, mais en tout état de cause ce label s'insère et fait référence au dernier indice.

En suite pour le supprimer au passage d'un indice supérieur on peut l'effacé en répondant que l'on veut effacé le label sinon ça efface l'indice de la dernière version.

par exemple si vous êtes en B et vous voulez passé en C, et bien en supprimant ce label "B" ça supprime la ligne dans le cartouche de révision.

Voilà pour ma part.

Cordialement.

AR

Il faut surement modifier ton fichier modèle, celui duquel tu part lors de la création de chaque plan (Modèle de mise en plan *.drwdot)

Pour voir l'emplacement de ton fichier modèle outils/option/emplacement des fichiers\ modèles des documents de mémoire (à moins qu ce ne soit dans fond de plan - à vérifier en fonctions des extensions)

Et une fois modifier le fichier modèmle de départ toute tes nouvelles MEP auront le nouveau type d'indiçage par contre toute les MEP antécédente seront à reprendre.

 

oui c'est ça, sauf qu'en fait ds ma boite, nos indices sont les suivants: 0.0 , 1.0, 2.0, 3.0....

et solidworks ne propose que 2 types de révision: 1, 2, 3... ou A, B, C.....

Et du coup ça ne correspond pas à ce que j'ai ds mon tableau de révision... 

petite précision, je n'ai pas PDM (ce qui devrai peut etre régler mon pb...)

 

Regarde du côté de smartproperties cela répond peut-être à ta demande (même si je ne vois pas cette option à essayer):

https://help.visiativ.com/mycadtools/2020/fr/Indicederevision.html

Sinon:

- Changer de méthode d'indiçage par une méthode supporter par SW

- développer un macro (ou faire développer une macro suivant les capacité)

1 « J'aime »

Pour la macro voici 2 exemples à adapter au besoin:

'https://forum.solidworks.com/thread/60856


'ici le chemin vers le modèle de table de révision
Const TABLE_TEMPLATE As String = "C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\lang\french\standard revision block.sldrevtbt"


Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Dim swDraw As SldWorks.DrawingDoc

Dim swSheet As SldWorks.Sheet

Dim vViews As Variant

Dim swView As SldWorks.View

Dim swTableAnn As SldWorks.TableAnnotation

Dim swAnn As SldWorks.Annotation

Dim swRevTableAnn As SldWorks.RevisionTableAnnotation

Dim i As Integer

Dim UserName As String



 

Sub main()

    Set swApp = Application.SldWorks

    Set swModel = swApp.ActiveDoc

    Set swDraw = swModel

    Set swSheet = swDraw.GetCurrentSheet

 

    'Delete existing revision table

    Set swView = swDraw.GetFirstView

    Do While Not swView Is Nothing

        Set swTableAnn = swView.GetFirstTableAnnotation

        While Not swTableAnn Is Nothing

            If swTableAnn.Type = swTableAnnotation_RevisionBlock Then

                Set swAnn = swTableAnn.GetAnnotation

                swAnn.Select3 False, Nothing

                swModel.Extension.DeleteSelection2 Empty

                Exit Do

            End If

            Set swTableAnn = swTableAnn.GetNext

        Wend

        Set swView = swView.GetNextView

    Loop

 

    'Add new revision table

    Set swRevTableAnn = swSheet.InsertRevisionTable(True, Empty, Empty, swBOMConfigurationAnchor_TopRight, TABLE_TEMPLATE)

    If swRevTableAnn Is Nothing Then

        swApp.SendMsgToUser "Insert revision table failed."

    Else

        Set swTableAnn = swRevTableAnn

        'On récupère le nom de session: prenom.nom, on supprime le . séparateur et on ajoute les majuscule en début de chaque mot
        swRevTableAnn.AddRevision "A"
        UserName = Environ("USERNAME")
        UserName = Replace(UserName, ".", " ")
        UserName = StrConv(UserName, vbProperCase)

        'on ajoute les données dans le tableau
        swTableAnn.Text(2, 4) = UserName

        swTableAnn.Text(2, 3) = DateValue(Now)

        swTableAnn.Text(2, 2) = "Modifications effectuées"

    End If

End Sub

Et aussi:

'**********************
'Copyright(C) 2020 www.codestack.net
'Reference: https://www.codestack.net/solidworks-api/document/drawing/clear-revision-table-new-revision/
'License: https://www.codestack.net/LICENSE.md
'**********************

Dim swApp As SldWorks.SldWorks
Dim swDraw As SldWorks.DrawingDoc
Dim swSheet As SldWorks.Sheet

Sub main()

    Set swApp = Application.SldWorks

    Set swDraw = swApp.ActiveDoc
    
    If Not swDraw Is Nothing Then
    
        Set swSheet = swDraw.GetCurrentSheet
        
        Dim swRevTable As SldWorks.RevisionTableAnnotation

        Set swRevTable = swSheet.RevisionTable
        
        If Not swRevTable Is Nothing Then
            
            'ClearRevisionTable swRevTable
            
            AddRevision swRevTable, "001", Array("Sample Zone", "", "Description", "", "Admin")
            
        Else
            MsgBox "There is no revision table in the drawing"
        End If
    
    Else
        MsgBox "Plase open the drawing"
    End If
    
End Sub

Sub ClearRevisionTable(swRevTable As SldWorks.RevisionTableAnnotation)
    
    Dim swTableAnn As SldWorks.TableAnnotation
    
    Set swTableAnn = swRevTable
            
    Dim i As Integer
    
    For i = swTableAnn.RowCount - 1 To 0 Step -1
        
        Dim revId As Long
        revId = swRevTable.GetIdForRowNumber(i)
        
        If revId <> 0 Then
            swRevTable.DeleteRevision revId, True
        End If
        
    Next
    
End Sub

Sub AddRevision(swRevTable As SldWorks.RevisionTableAnnotation, revName As String, rowData As Variant)
    
    Dim i As Integer
    Dim swTableAnn As SldWorks.TableAnnotation
    
    Set swTableAnn = swRevTable
    
    swRevTable.AddRevision revName
            
    For i = 0 To UBound(rowData)
                
        If rowData(i) <> "" Then
            
            swTableAnn.Text(swTableAnn.RowCount - 1, i) = rowData(i)
        
        End If
                
    Next
    
End Sub
1 « J'aime »

ça m'a l'air bien comme solution! j'essayerai ça dès que j'aurai la possibilité de le faire!

merci beaucoup! je vous tiendrai informé!!