21 października 2021


Otwarte API systemu CAD jest w dzisiejszych czasach jednym z ważniejszych elementów rozwoju oprogramowania. Producenci, którzy jeszcze nie umożliwili lub dopiero niedawno otworzyli dostęp do API swoich produktów, są zdecydowanie za konkurencją, która wdrożyła takie rozwiązanie wcześniej.


Michał Karpiuk, Anna Dybek-Karpiuk

Budowanie sieci produktów partnerskich wymaga czasu, a bez aplikacji zintegrowanych, tzw. dodatków, sam system CAD nie jest w dzisiejszych czasach atrakcyjny i nie spełnia wymagań stawianych przez rynek i użytkowników. Rozwiązania „dodatkowe” wypełniają lukę ich funkcjonalności, dzięki czemu odbiorca dostaje pakiet narzędzi CAx do wyboru, dostosowanych do prowadzonej przez niego działalności, a opartych na konkretnym systemie CAD.
Możliwości programowania SolidWorks wydają się być nieograniczone. To co może wykonać użytkownik ręcznie może również zostać (przynajmniej teoretycznie) zautomatyzowane. Po nawiązaniu połączenia z programem (swApp) możemy pracować z aktywnym dokumentem (swApp.ActiveDoc) np. dodawać, zmieniać, usuwać właściwości komponentów, modyfikować istniejące operacje bryłowe części, eksportować dokumenty do innych formatów tj. pdf, step, dxf (ExportFlatPatternView(NewFilePath, bends)). Możliwe jest także opracowanie makra, która będzie generowało model bryłowy części np. na podstawie danych zawartych w pliku, począwszy od utworzenia nowego dokumentu (SwApp.NewDocument(Template, 0, 0, 0)) po wygenerowanie operacji bryłowych (np. swDoc.FeatureManager.FeatureExtrusion2(…)). Ponadto, możliwe jest, aby informacje zawarte we właściwościach komponentów, liście materiałowej, notatkach, adnotacjach itp. zostały pobrane, a następnie użyte, jako źródło informacji dla innych aplikacji, bądź też zapisane do pliku zewnętrznego (txt, xls, xml, doc itp.).
Istnieją bardzo szerokie możliwości tworzenia prostych, jak i zaawansowanych, dodatków, czego przykładem mogą być prezentowane powyżej i w dalszej części artykułu makra. Jednak należy zaznaczyć, iż opisywane w artykule rozwiązania to jedynie niewielki zakres możliwości programowania obiektowego SolidWorks.

Kontrola właściwości specyficznych dla konfiguracji na przykładzie ich usuwania
We właściwościach komponentu (Plik->Właściwości) możemy umieszczać informacje przeznaczone dla aktywnego dokumentu części, złożenia i rysunku (zakładka „Dostosowane”) oraz dostosowane właściwości do określonej konfiguracji (zakładka „Specyficzne dla konfiguracji”). Kontrola właściwości może odbywać się z poziomu makra.
Weźmy prosty przykład (Kod 1) usuwania wybranej właściwości specyficznej dla konfiguracji (Dim mDelProp As String = sDelProp), aktywnej konfiguracji (swConfig = swConfigMgr.ActiveConfiguration), menagera właściwości konfiguracji (swConfigMgr = Part.ConfigurationManager), dokumentu typu „część” (Dim Part As ModelDoc2). Pobierając liczbę zdefiniowanych właściwości (nNbrProps = swCustPropMgr.Count) oraz ich nazwy (vPropNames = swCustPropMgr.GetNames) możemy zastosować pętle For j = 0 To nNbrProps - 1 i usunąć tylko tę właściwość, której nazwa jest taka sama, jak nazwa przepisana ze zmiennej globalnej sDelProp do zmiennej lokalnej mDelProp.

Kod-1


cały artykuł dostępny jest w wydaniu 6 (69) czerwiec 2013