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
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.
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.
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