Anwenden einer Dokumentvorlage auf ein altes Teil oder eine alte Baugruppe

Hallo

Ist es möglich, eine Dokumentvorlage auf ein älteres Teil oder eine ältere Baugruppe anzuwenden?

Grundsätzlich möchte ich in der Lage sein, die Dokumenteigenschaften zu aktualisieren (Option = > Dokumenteigenschaften = > Wrapping-Standard, ...) und alle benutzerdefinierten Eigenschaften zur Vorlage hinzuzufügen, ohne die alten benutzerdefinierten Eigenschaften zu löschen.

Vielen Dank für Ihr Feedback

Hallo
Nativ ist dies nicht möglich (Sie können bestenfalls Eigenschaften mit dem Taskplaner hinzufügen).
Per Makro oder vielleicht in den Visiativ Tools (MyCadTool) sehe ich keine andere Lösung.

2 „Gefällt mir“

Über Integration sollten Sie dazu in der Lage sein.
Für den Standard:
image
Für Eigenschaften:
image
Im Anhang ist die Hilfe von Integration, es handelt sich um ein kostenpflichtiges Visiative-Dienstprogramm, aber es ist möglich, es für einen Monat Speicher zu testen.
Andernfalls ist es über ein Makro möglich, da das auf der Solidworks-API basierende Dienstprogramm dies tut, aber Sie müssen nach dem vorgefertigten Äquivalent suchen oder es schreiben, wenn es kein Äquivalent gibt.

Bearbeiten: ein Beispiel für ein Makro zum Ändern der Hgabillage:
https://help.solidworks.com/2022/english/api/sldworksapi/Change_Drafting_Standard_to_Custom_Example_VB.htm

3 „Gefällt mir“

Hallo;
Es gibt keine einfache Lösung zu diesem Thema...
Allerdings, und wenn es sich nicht um eine große Anzahl von Dateien handelt, ist es möglich, meine im Thema besprochene Lösung zu verwenden:


Hallo;

Für eine Baugruppe ist es immer möglich, sie in eine Dokumentvorlage * zu ziehen. SLDASM (neues Baugruppendokument), und zerlegen Sie es dann (Rechtsklick), um zum ursprünglichen FeatureTree zurückzukehren.
image

… , und speichern Sie die neue Baugruppe.

Bei den Teilen ist es etwas komplizierter (aber nicht so viel).
Fügen Sie Ihre Komponente in ein neues Dokumentteil (Dokumentvorlage) ein, als ob Sie ein abgeleitetes Teil erstellen würden. Aktivieren Sie die Option " Verknüpfung mit dem Originalteil aufheben":


Löschen Sie (optional) das Verzeichnis, das im featureTree erstellt wurde.
image
Dann speichern.

Herzliche Grüße.

1 „Gefällt mir“

Es ist eine geniale Technik, andererseits scheint es mir für die Teile nicht so einfach zu sein, wie Sie es beschrieben haben, ich stelle mir vor, dass jede Verbindung zur Montage oder Funktion im Kontext, zum untergeordneten abgeleiteten Teil oder zur Zeichnung verloren geht

1 „Gefällt mir“

@Lynkoa15
Dies bedeutet nämlich, dass alle externen Referenzen "aufgebrochen" und die Zeichnungen und Baugruppen neu zugeordnet werden.

Für die eher "MAKRO-teux" erledigt dieses Makro auch einen guten Teil der ARBEIT: Die Normen- und Vorlagendateien entsprechend Ihrem Standort anzupassen...
-Nur für fortgeschrittene Benutzer...

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

Achten Sie darauf, alle Speicherorte der Namens- und Zeichnungsdateien zu ersetzen...
Für den zweiten Teil dieses Makros verwende ich Formatvergleiche, um
Welche "Grundkarte" und welcher MEP-Standard verwendet werden soll.

Herzliche Grüße.

3 „Gefällt mir“