Etykieta rewizji

Witam, chciałbym dopasować numerację mojej wersji do etykiety wersji. 

w opcjach mamy do wyboru tylko z 0,1,2,3 lub A,B,C.....

O ile nie modyfikuję go ręcznie za każdym razem, gdy przekazuję podpowiedź, nie znalazłem miejsca, w którym etykieta mogłaby zostać zmieniona automatycznie. Umieściłem obrazek w PJ, aby wyjaśnić mój punkt widzenia

Dziękuję


label_revision.jpg

Witam

Ze swojej strony nie wiedziałem, że można to zmienić, ale w każdym razie ta etykieta pasuje i odnosi się do ostatniego indeksu.

Następnie, aby usunąć go po przekazaniu wyższego indeksu, możesz go usunąć, odpowiadając, że chcesz usunąć etykietę, w przeciwnym razie spowoduje to wymazanie indeksu najnowszej wersji.

na przykład, jeśli jesteś w B i chcesz przejść do C, cóż, usuwając tę etykietę "B" , usuwa linię w bloku wersji.

To tyle z mojej strony.

Pozdrowienia.

AR

Prawdopodobnie musisz zmodyfikować plik szablonu, ten, od którego zaczynasz podczas tworzenia każdego planu (Szablon układu *.drwdot)

Aby zobaczyć lokalizację swoich narzędzi szablonów plików/opcja/lokalizacja plików\ szablony dokumentów pamięci (chyba że jest to mapa w tle - do sprawdzenia według rozszerzeń)

A gdy początkowy plik modelu zostanie zmodyfikowany, wszyscy nowi posłowie do PE będą mieli nowy typ indeksu, ale wszyscy poprzedni posłowie do PE będą musieli zostać przywróceni.

 

Tak to wszystko, z tym, że tak naprawdę w mojej firmie nasze indeksy są następujące: 0,0 , 1,0, 2,0, 3,0....

A SolidWorks oferuje tylko 2 typy wersji: 1, 2, 3... lub A, B, C.....

A więc nie zgadza się to z tym, co mam w mojej tabeli powtórek...  

mała precyzja, nie mam PDM (który może musieć naprawić moje pb...)

 

Spójrz na smartproperties, może spełnić Twoją prośbę (nawet jeśli nie widzę tej opcji, aby spróbować):

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

Inaczej:

- Zmień metodę indeksu na metodę obsługi oprogramowania

- Opracowanie makra (lub zlecenie opracowania makra zgodnie z możliwościami)

1 polubienie

W przypadku makra oto 2 przykłady, które można dostosować w razie potrzeby:

'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

A także:

'**********************
'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 polubienie

Wydaje mi się, że to dobre rozwiązanie! Spróbuję tego, jak tylko będę miał okazję!

Dziękuję bardzo! Będę Cię informować na bieżąco!!