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