Makro do dodawania właściwości

Witam
Czy możliwe jest dodanie niestandardowej właściwości za pomocą makra, rzeczywiście mam stare części  dużego folderu, które nie mają właściwości "MASS" , "SW-Masse@mapiece.SLDPRT" lub "DESCRIPTION" "text", szybciej byłoby dodać je za pomocą małego makra.
Jeśli ktoś ma start jakiegoś utworu to byłoby miło, nie mogłem nic znaleźć na forum.
Pozdrowienia.

 

1 polubienie

Harmonogram zadań: Aktualizacja właściwości

http://help.solidworks.com/2016/french/SolidWorks/sldworks/HIDD_TASK_CUSTOM_PROPS.htm?id=b4a248bb4ed54a87a79966b065a1d4f4#Pg0&ProductType=&ProductName=

 

1 polubienie

Dziękuję Olivier42,
Tak, wygodne, ale nie można przypisać "SW-Masse@", a ja wolę to robić w miarę postępów w każdej części, którą modyfikuję.

Pozdrowienia

 

Witam

Spójrz http://help.solidworks.com/2016/English/api/sldworksapi/Get_Custom_Properties_for_Configuration_Example_VB.htm, jest przykład dodatku.

Pozdrowienia

2 polubienia

Witam

jeśli zrobisz to podczas wymiany części; Kopiowanie i wklejanie powinno załatwić sprawę.

1 polubienie

Witam
Dziękuję d.roger za bardzo interesujący punkt, po wielu majsterkowaniach udało mi się zrobić makro, które działa! Problem polega na tym, że chcę dodać właściwości nie tylko do konfiguracji, ale także do właściwości ogólnych, a tutaj nie mogę tego zrobić.
Jeśli mógłbyś mi pomóc, byłoby miło.
Pozdrowienia

Option Explicit

Public Enum swCustomInfoType_e
        swCustomInfoUnknown = 0
        swCustomInfoText = 30
        swCustomInfoDate = 64
        swCustomInfoNumber = 3
        swCustomInfoDouble = 5
        swCustomInfoYesOrNo = 11
End Enum

    Dim swApp               As SldWorks.SldWorks
    Dim swModel             As SldWorks.ModelDoc2
    Dim swConfigMgr         As SldWorks.ConfigurationManager
    Dim swConfig            As SldWorks.Configuration
    Dim swCustPropMgr       As SldWorks.CustomPropertyManager
    Dim retVal              As Long
    Dim noma                As String
    Dim nomb                As String
    Dim nom                 As String
    Dim Att                As String
  

Sub main()

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swConfigMgr = swModel.ConfigurationManager
    Set swConfig = swConfigMgr.ActiveConfiguration
    noma = swModel.GetTitle
    nom = noma & """"
    nomb = """"
    Att = swModel.GetCustomInfoValue("", "DESIGNATION")
    Set swCustPropMgr = swConfig.CustomPropertyManager
       ' Add custom property MASSE ET DESIGNATION to this configuration
    retVal = swCustPropMgr.Add2("MASSE", swCustomInfoText, nomb & "SW-Mass@" & nom)
    retVal = swCustPropMgr.Add2("DESCRIPTION", swCustomInfoText, Att)
End Sub

 

Witam

Nie należy umieszczać nazwy konfiguracji w opcjach swCustPropMgr.Add2. Pozostawiając pustą nazwę conf, przechodzi ona do właściwości ogólnych.

Witam

Oto mały przykład, który umożliwia wypełnienie wszystkich konfiguracji, w tym właściwości ogólnych:

Sub main()

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As ModelDocExtension
Dim configNames()  As String
Dim configName As String
Dim swConfig As SldWorks.Configuration
Dim cusPropMgr As SldWorks.CustomPropertyManager
Dim i As Long
Dim retVal As Long

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
   
configNames = swModel.GetConfigurationNames
For i = 0 To UBound(configNames)
    configName = configNames(i)
    Set swConfig = swModel.GetConfigurationByName(configName)
    Set swCustPropMgr = swConfig.CustomPropertyManager
    retVal = swCustPropMgr.Add2("MASSE", swCustomInfoText, """SW-Mass@@Défaut@Plaque-2.SLDPRT""")
    retVal = swCustPropMgr.Add2("DESCRIPTION", swCustomInfoText, "Ma désignation")
Next i

Set swModelDocExt = swModel.Extension
Set swCustPropMgr = swModelDocExt.CustomPropertyManager("")
retVal = swCustPropMgr.Add2("MASSE", swCustomInfoText, """SW-Mass@@Défaut@Plaque-2.SLDPRT""")
retVal = swCustPropMgr.Add2("DESCRIPTION", swCustomInfoText, "Ma désignation")

End Sub

Pozdrowienia

4 polubienia

Dziękuję d.roger, próbuję dziś wieczorem...

Szczerze

Dziękuję bardzo d.roger, działa idealnie!!

Najlepszy współtwórca w makro!!

Szczerze

1 polubienie

Witam

Wracam do szarży, ponieważ udaje mi się pobrać informacje "OZNACZENIE" we właściwościach ogólnych:

Att = swModel.GetCustomInfoValue("", "DESIGNATION")


Ale jakie jest polecenie, aby pobrać te informacje, jeśli właściwość "DESIGNATION" jest konkretnie w (domyślnej) konfiguracji.

Dziękuję za pomoc...

Poinformował mnie o tym Cyril.f. Dziękuję