Makro dla właściwości rysunku

Witam

Nowy w 3DExperience, muszę stworzyć szablony rysunkowe, które będą używane z platformą. Ponieważ ta ostatnia nie tworzy powiązań między fizycznymi produktami a rysunkami, nie mogę importować właściwości moich części i zespołów do rysunków poprzez odsyłanie atrybutów na platformie. 
Aby to zrobić, obecnie używam narzędzia MyCADTools Integration, które pozwala mi zapisywać w plikach SLDDRW właściwości pobrane dla części lub zespołu użytego w dokumencie. Nie wszyscy użytkownicy w mojej firmie posiadają pakiet MyCADTools, dlatego zwracam się do Was z prośbą o makro, które pozwoliłoby mi zastąpić narzędzie Integration i pobrać właściwości SLDPRT/SLDASM do SLDDRW. 

Z góry dziękuję. 


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

Oto przykład, który muszę wyświetlić, aby wyświetlić informacje

 

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

aby dostosować się do Twojego przypadku

1 polubienie

Kolejny trop, spójrz na ten:

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

lub komórka tam:

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