Makro für Zeichnungseigenschaften

Hallo

Neu bei 3DExperience muss ich die Zeichnungsvorlagen erstellen, die mit der Plattform verwendet werden. Da letzteres keine Verknüpfungen zwischen physischen Produkten und Zeichnungen herstellt, kann ich die Eigenschaften meiner Teile und Baugruppen nicht in die Zeichnungen importieren, indem ich die Attribute in der Plattform mit Querverweisen vergleiche. 
Zu diesem Zweck verwende ich derzeit das MyCADTools-Integrationstool, das es mir ermöglicht, die Eigenschaften des im Dokument verwendeten Teils oder der Baugruppe in SLDDRW-Dateien zu schreiben. Nicht alle Benutzer in meinem Unternehmen haben die MyCADTools-Suite, daher bitte ich Sie um ein Makro, das es mir ermöglichen würde, das Integrationswerkzeug zu ersetzen und die SLDPRT/SLDASM-Eigenschaften nach SLDDRW abzurufen. 

Vielen Dank im Voraus. 


proprietes_slddrw.jpg
Sub Propriétées()

    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2

    Set swApp = CreateObject("SldWorks.Application")
    Set swModel = swApp.ActiveDoc

    Debug.Print "File = " + swModel.GetPathName

    Debug.Print "  Titre             = " + swModel.SummaryInfo(swSumInfoTitle)
    Text = swModel.SummaryInfo(swSumInfoTitle)
    Debug.Print "  Sujet            = " + swModel.SummaryInfo(swSumInfoSubject)
    Debug.Print "  Auteur            = " + swModel.SummaryInfo(swSumInfoAuthor)
    Debug.Print "  Mots clés         = " + swModel.SummaryInfo(swSumInfoKeywords)
    Debug.Print "  Commentaires      = " + swModel.SummaryInfo(swSumInfoComment)
    Debug.Print "  Enregistré par    = " + swModel.SummaryInfo(swSumInfoSavedBy)
    Debug.Print "  Créé le (01)      = " + swModel.SummaryInfo(swSumInfoCreateDate)
    Debug.Print "  Enregistré le (01)= " + swModel.SummaryInfo(swSumInfoSaveDate)
    Debug.Print "  Créé le (02) = " + swModel.SummaryInfo(swSumInfoCreateDate2)
    Debug.Print "  Enregistré le (02)= " + swModel.SummaryInfo(swSumInfoSaveDate2)
    
End Sub

Hier ist ein Beispiel, das ich zur Anzeige der Info habe

 

Sub Propriétées()

Dim boolstatus As Boolean
Dim lErrors As Long, lWarnings As Long
    
Set swApp = Application.SldWorks
Set CurrentDOC = swApp.ActiveDoc            'Document actif
Set swModel = swApp.ActiveDoc
Set swConfigMgr = swModel.ConfigurationManager
Set swCustPropMgr = swModel.Extension.CustomPropertyManager("")

Set swDraw = swModel
vSheets = swDraw.GetSheetNames
swDraw.ActivateSheet vSheets(0)             'Affiche la 1ère feuille : en cas d'assemblage avec des vues de pièces séparées (soudure)
                                            'la 1ère vue de la 1ère feuille à plus de chance d'être l'assemblage plutôt qu'une pièce
                                            
Set swView = swDraw.GetFirstView            'active/récupère le fond de plan pour les propriétées perso
Set swView = swView.GetNextView             'active/récupère la première vue pour les propriétées perso
Set swRefDoc = swView.ReferencedDocument    '3D de la mise en plan

NP = swRefDoc.GetCustomInfoValue("", "TA PROPRIETE PERSO") 'Récupère le TITRE du 3D
Existe_NP = swModel.GetCustomInfoValue("", "TA PROPRIETE PERSO") 'Teste l'existence de la propriétée dans la MEP

If Existe_NP <> NP Then
    swRefDoc.SummaryInfo(swSumInfoTitle) = NP 'TITRE 'Récapitulatif' du 3D
    swCustPropMgr.Delete "TA PROPRIETE PERSO"
    retVal = swCustPropMgr.Add2("TA PROPRIETE PERSO", swCustomInfoText, NP) 'TITRE 'Personnaliser'
    swModel.SummaryInfo(swSumInfoTitle) = NP 'TITRE 'Récapitulatif'
    swModel.SummaryInfo(swSumInfoAuthor) = "TA PROPRIETE PERSO 02" 'AUTEUR 'Récapitulatif'
    
    'Zoom sur la feuille avant enregistrement
    Dim swModelDocExt As SldWorks.ModelDocExtension
    Set swModelDocExt = swModel.Extension
    swModelDocExt.ViewZoomToSheet

    boolstatus = swRefDoc.Save3(swSaveAsOptions_Silent, lErrors, lWarnings) 'Sauvegarde le 3D
    boolstatus = swModel.Save3(swSaveAsOptions_Silent, lErrors, lWarnings) 'Sauvegarde la MEP
End If

End Sub

zur Anpassung an Ihren Fall

1 „Gefällt mir“

Ein weiterer Hinweis, schauen Sie sich diesen an:

https://help.solidworks.com/2017/English/api/sldworksapi/Get_Custom_Properties_of_Referenced_Part_Example_VB.htm

oder Zelle dort:

https://www.codestack.net/solidworks-api/document/drawing/copy-view-properties/