Strona głównaProduktySOLIDWORKS makro – Uzupełnianie właściwości dostosowanych

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

DPSTODAY solidworks makro api

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.

właściwości dostosowane 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.

makro solidworks pisanie

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

microsoft visual basic for applications

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.

sldworks modeldoc2

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.

CustomProperty

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

nazwa konfiguracji makro

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

właściwość dostosowana konfiguracja makro

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.

string solidworks

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).

api solidworks makro

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:

makro dodaj właściwość

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):

kod makro solidworks

Wyświetlone informacje w aplikacji:

dodano edytowano

Właściwości dostosowane:

właściwości dostosowane solidworks makro

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
Podziel się:

Krystian Romaszko (CNS Solutions) - Programista .NET(C#, VBA), Specjalista od systemu zarządzania dokumentacją techniczną SOLIDWORKS Enterprise PDM, SOLIDWORKS Enterprise PDM API, oraz SOLIDWORKS API.