Stosowanie szablonu dokumentu do starej części lub zespołu

Witam

Czy możliwe jest zastosowanie szablonu dokumentu do starszej części lub zespołu?

Zasadniczo chciałbym mieć możliwość aktualizowania właściwości dokumentu (opcja => Właściwości dokumentu => Standard zawijania, ...) i dodawania wszystkich właściwości niestandardowych do szablonu bez usuwania starych właściwości niestandardowych.

Dziękujemy za Twoją opinię

Witam
Naturalnie nie jest to możliwe (w najlepszym razie możesz dodać właściwości za pomocą harmonogramu zadań).
Przez makro a może w narzędziach Visiativ (MyCadTool) nie widzę innego rozwiązania.

2 polubienia

Poprzez integrację powinieneś być w stanie to zrobić.
Dla standardu:
image
Dla właściwości:
image
W załączeniu jest pomoc Integracji, jest to płatne narzędzie Visiativ, ale można je przetestować przez miesiąc pamięci.
W przeciwnym razie za pomocą makra jest to wykonalne, ponieważ robi to narzędzie oparte na API solidworks, ale będziesz musiał poszukać gotowego odpowiednika lub go napisać, jeśli nie jest równoważny.

Edycja: przykład makra do zmiany Hgabillage:
https://help.solidworks.com/2022/english/api/sldworksapi/Change_Drafting_Standard_to_Custom_Example_VB.htm

3 polubienia

Witam;
Nie ma prostego rozwiązania w tym temacie...
Jeśli jednak nie dotyczy to dużej ilości plików, to możliwe jest skorzystanie z mojego rozwiązania omówionego w temacie:


Witam;

W przypadku zespołu zawsze można go przeciągnąć do szablonu dokumentu *. SLDASM (nowy dokument złożenia), a następnie zdekomponuj go (kliknij prawym przyciskiem myszy), aby powrócić do oryginalnego drzewa operacji.
image

… i zapisz nowy zespół.

W przypadku części jest to nieco bardziej skomplikowane (ale nie aż tak bardzo).
Wstaw swój komponent do nowej części dokumentu (szablonu dokumentu) tak, jakbyś tworzył część pochodną, Zaznacz opcję " Przerwij połączenie z oryginalną częścią":


I (opcjonalnie) usuń katalog utworzony w featureTree.
image
Następnie zapisz.

Pozdrowienia.

1 polubienie

Jest to genialna technika, z drugiej strony wydaje mi się, że nie jest to tak proste, jak opisałeś, wyobrażam sobie, że jakikolwiek związek z montażem lub funkcją w kontekście, potomną częścią pochodną lub rysunkiem zostanie utracony

1 polubienie

@Lynkoa15
W rzeczywistości oznacza to "zerwanie" wszystkich odniesień zewnętrznych i ponowne skojarzenie rysunków i zespołów.

Dla bardziej "MACRO-teux" to makro również wykonuje sporą część PRACY: Aby dostosować do swojej lokalizacji pliki norm i szablonów...
-Tylko dla zaawansowanych użytkowników...

Dim Part            As Object
Dim swApp           As SldWorks.SldWorks
Dim swModel         As SldWorks.ModelDoc2
Dim swModExt        As SldWorks.ModelDocExtension
Dim NormeActive     As String
Dim DefaultSlotMate As String


Sub Norme()

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModExt = swModel.Extension

NormeActive = swModExt.GetUserPreferenceString(SwConst.swDetailingDimensionStandardName, SwConst.swDetailingNoOptionSpecified) 'Ecrit la Norme existante du fichier ouvert dans la variable
Debug.Print NormeActive

ModelDoc = swModel.GetUserPreferenceStringValue(swUserPreferenceStringValue_e.swDefaultTemplateAssembly)
Debug.Print ModelDoc

Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
filetype = swModel.GetType 'Donne le type de document ouvert avec :0=swDocNONE;1=swDocPART;2=swDocASSEMBLY;3=swDocDRAWING

If filetype = 1 Then
boolstatus = Part.Extension.LoadDraftingStandard("W:\Modeles_solidworks\Normes_de_mise_en_plans\Emplacement de votre modele PRT.sldstd") '<- Emplacement exacte du fichier sldstd pour vos pièces
End If

If filetype = 2 Then 'Si le fichier ouvert est un Assemblage
boolstatus = Part.Extension.LoadDraftingStandard("W:\Modeles_solidworks\Normes_de_mise_en_plans\Emplacement de votre modele ASM.sldstd") '<- Emplacement exacte du fichier sldstd pour vos Assemblages
defaultTemplate = "W:\Modeles_solidworks\Assemblage .asmdot"
    
End If

If filetype = 3 Then 'Si le fichier ouvert est une Mise en plan

Call Formats
End If

End Sub

-> Dans un nouveau Module

Dim vSheetProps     As Variant
Dim nErrors         As Long
Dim nTemplatePath   As String
Dim swPaperWidth    As String
Dim swPaperHeight   As String


' Repertoire contenant les modeles des fonds de plans
Const sTemplatePath As String = "W:\Modeles_solidworks\Fonds_de_plans_2023"

' Formats des differents fond de plans disponibles dans le Repertoire ci-dessous
Const A0HTemplateName As String = "A0H.slddrt"
Const A1HTemplateName As String = "A1H.slddrt"
Const A1VTemplateName As String = "A1V.slddrt"
Const A2HTemplateName As String = "A2H.slddrt"
Const A2VTemplateName As String = "A2V .slddrt"
Const A3HTemplateName As String = "A3H.slddrt"
Const A3VTemplateName As String = "A3V.slddrt"
Const A4HTemplateName As String = "A4H.slddrt"
Const A4VTemplateName As String = "A4V.slddrt"

Sub Formats()

 Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swDraw As SldWorks.DrawingDoc
    Dim swSheet As SldWorks.Sheet
    Dim vSheetProps As Variant
   

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

        'swModel.ActivateSheet vSheetName
            Set swSheet = swModel.GetCurrentSheet
            vSheetProps = swSheet.GetProperties
            swPaperWidth = vSheetProps(5)
            swPaperHeight = vSheetProps(6)
        Select Case swPaperWidth & swPaperHeight ' Comparaison de la Longueur et de la Largeur du fond de plan present (Unité en Metres)
        
Case "1,189" & "0,841" ' Format A0H
        nTemplatePath = sTemplatePath & "\" & A0HTemplateName
        boolstatus = swModel.Extension.LoadDraftingStandard("W:\Modeles_solidworks\Normes_de_mise_en_plans\A0.sldstd")
       
Case "0,841" & "0,594" ' Format A1H
        nTemplatePath = sTemplatePath & "\" & A1HTemplateName
        boolstatus = swModel.Extension.LoadDraftingStandard("W:\Modeles_solidworks\Normes_de_mise_en_plans\A1.sldstd")
        
Case "0,594" & "0,841" ' Format A1V
        nTemplatePath = sTemplatePath & "\" & A1VTemplateName
        boolstatus = swModel.Extension.LoadDraftingStandard("W:\Modeles_solidworks\Normes_de_mise_en_plans\A1.sldstd")

Case "0,594" & "0,42" ' Format A2H
        nTemplatePath = sTemplatePath & "\" & A2HTemplateName
        boolstatus = swModel.Extension.LoadDraftingStandard("W:\Modeles_solidworks\Normes_de_mise_en_plans\A2.sldstd")

Case "0,42" & "0,594" ' Format A2V
        nTemplatePath = sTemplatePath & "\" & A2VTemplateName
        boolstatus = swModel.Extension.LoadDraftingStandard("W:\Modeles_solidworks\Normes_de_mise_en_plans\A2.sldstd")

Case "0,42" & "0,297" ' Format A3H
        nTemplatePath = sTemplatePath & "\" & A3HTemplateName
        boolstatus = swModel.Extension.LoadDraftingStandard("W:\Modeles_solidworks\Normes_de_mise_en_plans\A3.sldstd")

Case "0,297" & "0,42" ' Format A3V
        nTemplatePath = sTemplatePath & "\" & A3VTemplateName
        boolstatus = swModel.Extension.LoadDraftingStandard("W:\Modeles_solidworks\Normes_de_mise_en_plans\A3.sldstd")

Case "0,297" & "0,21" ' Format A4H
        nTemplatePath = sTemplatePath & "\" & A4HTemplateName
        boolstatus = swModel.Extension.LoadDraftingStandard("W:\Modeles_solidworks\Normes_de_mise_en_plans\A4.sldstd")

Case "0,21" & "0,297" ' Format A4V
        nTemplatePath = sTemplatePath & "\" & A4VTemplateName
        boolstatus = swModel.Extension.LoadDraftingStandard("W:\Modeles_solidworks\Normes_de_mise_en_plans\A4.sldstd")

        Case Else
        nTemplatePath = sTemplatePath & "\" & A2HTemplateName 'Format par défaut si le fond de plan present n'est pas dans la liste ci-dessus
        boolstatus = swModel.Extension.LoadDraftingStandard("W:\Modeles_solidworks\Normes_de_mise_en_plans\ISO-REVTECH_A2.sldstd")
        
End Select
        
   'On Supprime le fond de plan initial
    swModel.SetupSheet5 swSheet.GetName, swDwgPapersUserDefined, swDwgTemplateNone, vSheetProps(2), vSheetProps(3), vSheetProps(4), "", vSheetProps(5), vSheetProps(6), "Default", True
    
    'On Recharge le nouveau fond de plan
    swModel.SetupSheet5 swSheet.GetName, swDwgPapersUserDefined, swDwgTemplateCustom, vSheetProps(2), vSheetProps(3), vSheetProps(4), nTemplatePath, vSheetProps(5), vSheetProps(6), "Default", True
            
    swModel.ViewZoomtofit2
    
End Sub

Uważaj, aby zamienić wszystkie lokalizacje plików nazwy i rysunku...
W drugiej części tego makra używam porównań formatów, aby określić
która "mapa bazowa" i standard instalacji mają być używane.

Pozdrowienia.

3 polubienia