Hallo, ik wil graag de nummering van mijn revisie matchen met het label van revisies.
in de opties hebben we alleen de keuze met 0,1,2,3 of A,B,C.....
Tenzij ik het elke keer dat ik een hint doorgeef met de hand aanpas, heb ik geen plek gevonden om het label automatisch te veranderen. Ik heb een afbeelding in PJ gezet om mijn punt uit te leggen
Van mijn kant wist ik niet dat het kan worden gewijzigd, maar in ieder geval past dit label erin en verwijst het naar de laatste index.
Om het vervolgens te verwijderen bij het passeren van een hogere index, kunt u het verwijderen door te antwoorden dat u het label wilt verwijderen, anders wordt de index van de nieuwste versie gewist.
als je bijvoorbeeld in B bent en je wilt naar C gaan, nou, door dit label "B" te verwijderen, wordt de regel in het revisieblok verwijderd.
U moet waarschijnlijk uw sjabloonbestand wijzigen, het bestand waarmee u begint bij het maken van elk plan (Lay-outsjabloon *.drwdot)
Om de locatie van uw bestand te zien sjabloonhulpmiddelen/optie/locatie van bestanden\ sjablonen van geheugendocumenten (tenzij het op de achtergrond is kaart - te controleren op basis van extensies)
En zodra het oorspronkelijke modeldossier is gewijzigd, zullen al uw nieuwe leden van het Europees Parlement het nieuwe type index hebben, maar moeten alle vorige leden van het Europees Parlement worden teruggenomen.
Voor de macro zijn hier 2 voorbeelden die u indien nodig kunt aanpassen:
'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
En ook:
'**********************
'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