SOLIDWORKS makro – Uzupełnianie właściwości dostosowanych

Poprzedni artykuł zawierał informacje w jaki sposób korzystać z API do aplikacji SOLIDWORKS, oraz jak napisać swoje pierwsze makro. SOLIDWORKS makro – Pierwszy krok do automatyzacji

Tym razem tematem przewodnim jest uzupełnianie właściwości dostosowanych SOLIDWORKS.

Wszystkie operacje będą wykonywane na części z poprzedniego artykułu. Przedstawione zostanie wczytywanie, dodawanie, edytowanie i usuwanie właściwości dostosowanych części.

Pisanie makra należy rozpocząć standardowo klikając w przycisk nowe makro.

Po wybraniu lokalizacji w wyświetlonym oknie znajduje się nowy czysty kod makra.

Następnie konieczne jest przejście z głównego interfejsu aplikacji do interfejsu modelu (SLDWORKS => MODELDOC2). Zostaje także zamieniony typ głównego obiektu, aby były dostępne podpowiedzi w kodzie.

Według poradnika API, do zaplanowanych operacji, należy wykorzystać obiekt o nazwie „CustomPropertyManager”.

http://help.solidworks.com/2016/English/api/sldworksapiprogguide/Welcome.htm

Aby dotrzeć do potrzebnej klasy trzeba przejść przez klasę rozszerzającą MODELDOC2.

Dodatkowo warto zauważyć, że pobieranie CurtomProperty potrzebuje ponadto nazwy konfiguracji (dopisujemy ją w nawiasie i w cudzysłowie).

Jeżeli istnieje potrzeba pracy na ogólnych właściwościach dostosowanych nie związanych z konkretną konfiguracją w cudzysłowie pozostawiony powinien być pusty tekst

Operacje na właściwościach dostosowanych będą zbudowane w odpowiednich funkcjach. Funkcja do pobierania wartości, jako jedyna musi mieć zdefiniowany typ zwracanej informacji w tym przypadku „String” czyli potocznie tekst.

Korzystając z pomocy API można znaleźć potrzebne, do wykonania założonych czynności metody (SOLIDWORKS API HELP => SolidWorks.Interop.sldworks Namespace => Interfaces => ICustomPropertyManager).

W tym momencie znane są już wszystkie potrzebne informacje, więc następnym etapem jest implementacja założonych metod. Każda z metod po kliknięciu w nią zawiera informację na temat typu danych jakie przyjmuje, oraz typu zwracanej wartości. W efekcie zaimplementowane metody wyglądają w ten sposób:

Kolejnym etapem jest wykorzystanie napisanych metod. Dodane zostaną trzy właściwości dostosowane. Druga z nich zostanie usunięta, a trzeciej zostanie zmieniona wartość już po dodaniu. Na koniec wyświetlone zostaną wartości tych właściwości. Cały test odbędzie się jednocześnie na konfiguracji Domyślnej, jak i dla ogólnych właściwości dostosowanych. Kod testu (dla ogólnych właściwości dostosowanych części zamiast tekstu „Domyślna” w kodzie znajdzie się pusty cudzysłów):

Wyświetlone informacje w aplikacji:

Właściwości dostosowane:

W artykule przestawiono prosty sposób pracy z wartościami dostosowanymi poprzez SOLIDWORKS API. Omówiony kod może dodać, lub usunąć właściwość dostosowaną. Dodatkowo pokazano możliwość edycji i pobrania tych wartości. Przedstawione operacje działają także na stworzonych ręcznie właściwościach.

Pełny kod makra:

Dim swApp As SldWorks.SldWorks

Dim swModel As ModelDoc2

Dim swModelExtension As ModelDocExtension

Dim swCustomPropMgr As CustomPropertyManager

Sub main()

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

Set swModelExtension = swModel.Extension

Set swCustomPropMgr = swModelExtension.CustomPropertyManager("")

Dodaj "test", swCustomInfoText, "dodano", swCustomPropertyReplaceValue

Dodaj "test2", swCustomInfoText, "dodano", swCustomPropertyReplaceValue

Dodaj "test3", swCustomInfoText, "dodano", swCustomPropertyReplaceValue

Usun "test2"

Edytuj "test3", "edytowano"

Debug.Print Pobierz("test")

Debug.Print Pobierz("test3")

End Sub

Function Dodaj(nazwaWlasciwosci As String, typWlasciwosci As swCustomInfoType_e, wartoscWlasciwosci As String, czyNadpisac As swCustomPropertyAddOption_e)

swCustomPropMgr.Add3 nazwaWlasciwosci, typWlasciwosci, wartoscWlasciwosci, czyNadpisac

End Function

Function Edytuj(nazwaWlasciwosci As String, wartoscWlasciwosci As String)

swCustomPropMgr.Set2 nazwaWlasciwosci, wartoscWlasciwosci

End Function

Function Usun(nazwaWlasciwosci As String)

swCustomPropMgr.Delete2 nazwaWlasciwosci

End Function

Function Pobierz(nazwaWlasciwosci As String) As String

Dim wartosc As String

Dim oszacowanaWartosc As String

Dim czyOszacowano As Boolean

swCustomPropMgr.Get5 nazwaWlasciwosci, True, wartosc, oszacowanaWartosc, czyOszacowano

Pobierz = oszacowanaWartosc

End Function

Post: SOLIDWORKS makro – Uzupełnianie właściwości dostosowanych