Een documentsjabloon toepassen op een oud onderdeel of assemblage

Hallo

Is het mogelijk om een documentsjabloon, een ouder onderdeel of assemblage toe te passen?

Kortom, ik zou graag in staat zijn om de documenteigenschappen bij te werken (optie => Documenteigenschappen => Wrapping-standaard, ...) en alle aangepaste eigenschappen aan het sjabloon toe te voegen zonder de oude aangepaste eigenschappen te verwijderen.

Bedankt voor je feedback

Hallo
Native is dit niet mogelijk (je kunt in het beste geval eigenschappen toevoegen met de taakplanner).
Per macro of misschien in de Visiativ tools (MyCadTool) zie ik geen andere oplossing.

2 likes

Via Inburgering zou je dit moeten kunnen doen.
Voor de standaard:
image
Voor eigendommen:
image
Bijgevoegd is de hulp van Integratie, het is een betaald Visiatv-hulpprogramma, maar het is mogelijk om het een maand geheugen te testen.
Anders is het via macro haalbaar, aangezien het hulpprogramma op basis van de solidworks API het doet, maar je zult moeten zoeken naar het kant-en-klare equivalent of het moeten schrijven, als er niets equivalent is.

Edit: een voorbeeld van een macro om de Hgabillage te veranderen:
https://help.solidworks.com/2022/english/api/sldworksapi/Change_Drafting_Standard_to_Custom_Example_VB.htm

3 likes

Hallo;
Er is geen eenvoudige oplossing voor dit onderwerp...
Als het echter niet om een groot aantal bestanden gaat, is het mogelijk om mijn oplossing te gebruiken die in het onderwerp wordt besproken:


Hallo;

Voor een Assembly is het altijd mogelijk om deze in een documentsjabloon* te slepen. SLDASM (nieuw Assembly-document) en ontleed het vervolgens (klik met de rechtermuisknop) om terug te keren naar de oorspronkelijke FeatureTree.
image

… en sla de nieuwe assemblage op.

Voor de onderdelen is het iets ingewikkelder (maar niet zo veel).
Voeg uw component in een nieuw documentonderdeel (documentsjabloon) in alsof u een afgeleid onderdeel maakt, Controleer de optie " Verbreek de link met het originele onderdeel":


En verwijder (optioneel) de map die in de featureTree is gemaakt.
image
Sla dan op.

Vriendelijke groeten.

1 like

Het is ingenieus als techniek, aan de andere kant voor de onderdelen lijkt me dat het niet zo eenvoudig is als je beschreef, ik stel me voor dat elke link naar assemblage of functie in de context, kind afgeleid deel of tekening verloren zal gaan

1 like

@Lynkoa15
Dit impliceert namelijk het "breken" van alle externe referenties en het opnieuw associëren van de tekeningen en assemblages.

Voor de meer "MACRO-teux" doet deze macro ook een groot deel van het WERK: Om aan te passen aan uw locatie van de Normen en sjablonenbestanden...
-Alleen voor gevorderde gebruikers...

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

Zorg ervoor dat u alle locaties van de naam- en tekeningbestanden vervangt...
Voor het tweede deel van deze macro gebruik ik formaatvergelijkingen om te bepalen
welke "basemap" en MEP-standaard te gebruiken.

Vriendelijke groeten.

3 likes