VBA: Ogólne właściwości osobiste, a nie właściwości konfiguracji

Cze wszystkim

Nie opanowuję zbyt dobrze VBA i trochę się bawię...

Stworzyłem więc to makro (kopiując je i dodając swoje właściwości), ale chciałbym, aby utworzone właściwości były umieszczone w zakładce "Dostosuj", a nie w "Specyficzne dla konfiguracji". Czy mógłbyś poprawić moje makro? Z góry dziękuję.

Dim swApp As Object
Dim swModel As ModelDoc2
Przyciemnij konfigurację jako SldWorks.Configuration
Dim swCustProp As CustomPropertyManager
Dim lRetVal tak długo
Dim myValue0 As Ciąg
Dim myValue1 As Ciąg
Przyciemnij myValue2 jako ciąg
Dim myValue3 As Ciąg
Dim myValue4 As Ciąg

Sub main()
    Ustaw swApp = Application.SldWorks
    Ustaw swModel = swApp.ActiveDoc
    my0Value = swModel.GetTitle 'Otrzymujemy nazwę pliku
    myValue1 = Left(myValue0, 16) 'Otrzymujemy numer części, czyli pierwsze 16 znaków nazwy pliku
    myValue2 = Left(myValue0, 22) 'Otrzymujemy pierwsze 22 znaki nazwy pliku
    myValue3 = Right(myValue0, Len(myValue0) - Len(myValue2)) 'Otrzymujemy Oznaczenie ostatnie znaki nazwy pliku - pierwsze 22
    myValue4 = Left(myValue0, 13) 'Otrzymujemy numer formy
    Ustaw config = swModel.GetActiveConfiguration
    Ustaw cusPropMgr = config. CustomPropertyManager
    lRetVal = cusPropMgr.Add3("Numer części", swCustomInfoType_e.swCustomInfoText, myValue1, swCustomPropertyAddOption_e.swCustomPropertyDeleteAndAdd)
    lRetVal = cusPropMgr.Add3("Designation", swCustomInfoType_e.swCustomInfoText, myValue3, swCustomPropertyAddOption_e.swCustomPropertyDeleteAndAdd)
    lRetVal = cusPropMgr.Add3("DocumentSource", swCustomInfoType_e.swCustomInfoText, myValue4, swCustomPropertyAddOption_e.swCustomPropertyDeleteAndAdd)
Koniec subwoofera

 

Jeśli masz dobry samouczek, który możesz polecić dla VBA Solidworks, jestem za tym.

Witam;

Aby ustawić swoje właściwości w zakładce "Niestandardowe" (a nie w "Konfiguracja"):
Zamień swoją linię:
Ustaw cusPropMgr = config. CustomPropertyManager
przez
Ustaw cusPropMgr =swModel.Extension.CustomPropertyManager("")

Aby uzyskać samouczek: zobacz tutaj (w języku angielskim, ale dobrze wyjaśnione)
https://blog.codestack.net/custom-properties-automation
A jeśli tak naprawdę dopiero zaczynasz:
https://thecadcoder.com/Solidworks-macro-guide/
nie zapominając o "F1" w edytorze VB
Ani Pomoc API Solidworks


Uwaga: Twój kod nie jest zbyt długi, ale w przyszłości lepiej byłoby skorzystać z edytora kodu


(w trybie VBscript dla makr VB... dla Visual Basic-)

Pozdrowienia

3 polubienia

Witam

i bardziej ogólnie, preferuj vbNullString zamiast "". Szybszy w działaniu i lżejszy w pamięci.

Witaj @guillaume.bruere 

Odpowiedzią na Twoje pytanie, która zasługuje na oznaczenie jako rozwiązanie, jest wiadomość @Maclane, nie moja! Dziękuję za jego poprawienie.

Pozdrowienia

1 polubienie

Witam @Sylk, tak, chciałem zatwierdzić 2 odpowiedzi, ale tylko jedna jest brana pod uwagę. Dziękuję wam wszystkim.

1 polubienie

Witam;

Dzięki Sylk , ale ponieważ nie wiedziałem, jak korzystać z "vbNullString", jestem gotów oddać ci 1/2 punktu... ;)
Pozdrowienia.

2 polubienia