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
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
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
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ę
Dziękuję bardzo d.roger, działa idealnie!!
Najlepszy współtwórca w makro!!
Szczerze