Witam @Cyril_f
Makro działa tylko wtedy, gdy utworzę właściwość SURFACE PIECE w F8.
Jeśli pole nie zostanie utworzone, nic się nie stanie.
Szukałem sposobu na automatyczne utworzenie pola, ale utknąłem.
Oto, co próbowałem majstrować bez powodzenia:
Opcja jawna
Dim swApp jako SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As ModelDocExtension
Dim swCustProp As CustomPropertyManager
Słońce sMass jako ciąg
Dim sValout As String
Dim sVal As String
Dim bRet As String
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
Set swCustProp = swModelDocExt.CustomPropertyManager(" PC ") 'Jeśli właściwość znajduje się na karcie dostosowywania, pozostaw to pole puste, zastępując ' PC ' przez ' '
bRet = swCustProp.Get6' , False, sValout, sMasse, False, False) 'Pobieranie właściwości mass, zmiana nazwy właściwości w celu dopasowania do Twojego modelu
sVal = CStr(CDec(sMass) * 2) 'Konwertuj tekst na wartość dziesiętną, pomnóż x RATIO i przekonwertuj na dane tekstowe
'bRet = swCustProp.Set2(" ELEMENT POWIERZCHNI ", sVal) 'Wypełnij właściwość SURFACE ELEMENT wartością przekształconą w tekst
bRet = swModel.AddCustomInfo3(" PC ", " ELEMENT POWIERZCHNI ", val)
Koniec subwoofera
Próbowałem z tą komendą, ale myślę, że coś jest nie tak:
bRet = swModel.AddCustomInfo3(" PC ", " ELEMENT POWIERZCHNI ", val)
Czy masz pomysł, aby to poprawić?