SOLIDWORKS makro – Krok do automatyzacji

SOLIDWORKS Makro (API) daje wielkie możliwości zautomatyzowania procesów i operacji. Pozwala między innymi na dodawanie właściwości dostosowanych po kliknięciu na przycisk, bądź wykonanie wybranej operacji przy zapisie pliku. Przykładów związanych z API można podać wiele jednak zanim dojdzie się do tych możliwości, należy poznać podstawy pracy z programowaniem do aplikacji SOLIDWORKS.

Aby rozpocząć pracę należy zapoznać się z najważniejszą częścią drzewa zależności obiektów:

Obiekty te zawierają metody związane z ich nazwami np. DRAWINGDOC zawiera operację związane tylko i wyłącznie z rysunkami. Drzewo pokazuje że najważniejszy jest obiekt związany z aplikacją SOLIDWORKS, z którego można przejść do obiektu związanego z modelem. Z modelu możemy przejść do obiektów związanych z rysunkami, złożenia, czy też częściami.

Przykład: Gdy istnieje potrzeba dodania części do złożenia należy skorzystać z odpowiedniego obiektu, czyli ASSEMLYDOC. Aby go otrzymać należy kolejno przejść z obiektu aplikacji, poprzez MODELDOC2. Nie ma innej możliwości otrzymania tego obiektu, a dopiero po jego otrzymaniu można dodać część do złożenia.

W momencie, którym znane są już zależności obiektów można rozpocząć pracę z makrami. Makra można pisać w trzech językach programowania VB, VBA, C#. W tym artykule przykłady zostaną umieszczone w języku VBA dlatego, że jest on wykorzystywany domyślnie.

W tym artykule zostanie wykonana operacja dodania części do pustego złożenia.

Aby stworzyć nowe makro należy kliknąć prawym przyciskiem myszy na górny panel aplikacji SOLIDWORKS i zaznaczyć opcję „Makro”.

W lewym górnym rogu pojawi się nowy panel z opcjami związanymi z makrami.

Przyciski na tym panelu oznaczają kolejno:

Po wybraniu opcji „Stwórz nowe makro” i wybraniu jego lokalizacji pojawi się okno z kodem źródłowym nowego makra.

W kodzie makra został zainicjalizowany pierwszy obiekt, który jest typu SLDWORKS, czyli najwyższym w hierarchii. Jest on jednak zainicjalizowany jako „Object”, czyli najwyższy w ogólnej hierarchii programowania .NET. Aby wyświetlane były podpowiedzi w czasie pisania makra należy zmienić typ tego głównego obiektu na dokładniejszy czyli „SLDWORKS.SLDWORKS”. Tylko w tym przypadku należy użyć tej definicji podwójnie i rozdzielić obie kropkami. Wynika to z tego, że umiejscowienie tego obiektu a bibliotece API nazywa się tak samo jak jego typ.

Zakładając, że istnieje potrzeba dodania części do złożenia (zgodnie z przykładem podanym wcześniej), potrzebne będą kolejno obiekty MODELDOC2, oraz ASSEMBLYDOC.

Pomoc SOLIDWORKS zawiera informację na temat wszystkich metod i właściwości dostępnych w tych obiektach.

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

Po analizie pomocy API można stwierdzić, że przejścia pomiędzy obiektami będą wyglądały następująco:

Przejście do MODELDOC2 odbyło się poprzez właściwość „ActiveDoc” z obiektu SLDWORKS. Następnie do kolejnych trzech typów obiektów można przejść przez proste rzutowanie, które w języku VBA wykonuje się automatycznie.

Teraz w pomocy API można znaleźć metodę odpowiedzialną za dodawanie komponentu w tym przypadku „AddComponent5” (W przypadku, gdy metody są numerowane zawsze korzysta się z najwyższego numeru).

Metoda ta jako parametry przyjmuje między innymi ścieżkę pliku, czy też współrzędne, w których zostanie dodana część. Zwraca ona programistyczny odpowiednik komponentu, który został dodany. Przypisany on został do zmiennej „swComponent”.

W efekcie końcowym zostanie dodana część której ścieżka została wybrana w metodzie, w tym przypadku Część1.SLDPRT

W artykule została przedstawiona hierarchia obiektów, oraz wykonane proste makro dodające część do złożenia.

W kolejnym artykule opisze dodawanie, edycję i usuwanie właściwości dostosowanych SOLIDWORKS za pomocą makra.

Post: SOLIDWORKS makro – Krok do automatyzacji