Niedawno zadzwonił do nas klient z zapytaniem o możliwości równań na poziomie części. Chciał on uzależnić od długości elementu, liczbę generowanych w nim otworów oraz odległości między nimi. Przedstawiam zatem sposób na stworzenie równań warunkowych w SOLIDWORKS.
Przykładem, na którym przedstawię równania będzie poniższy arkusz blachy.
Przyjrzyjmy się modelowi. Składa się on z 2 rzędów otworów. Otwór bazowy został utworzony za pomocą kreatora otworu, zaś jego pozostałe wystąpienia powstały poprzez użycie szyku liniowego. Odległość bazowa pierwszego otworu mierzona jest od krawędzi zewnętrznej. Idea jest taka, aby wszystkie otwory zawsze były rozstawione w sposób równomierny, zaś ich liczba zmniejszała się jeśli blacha będzie co raz krótsza. Zakładamy również, że wszystkimi równaniami będziemy zarządzać jedną zmienną globalną, odpowiedzialną za zmianę długości odgięcia.
Przejdźmy zatem do tworzenia konkretnych równań. Znajdują się one w menu narzędzia. W pierwszej kolejności utworzę zmienną globalną, nazwę ją Długość odgięcia i przypiszę wartość początkową 150. Po dodaniu jej tworzę pierwsze równanie. Aby to zrobić, w polu równania należy kliknąć w pierwszą komórkę, przesunąć tabelkę i w obszarze graficznym kliknąć w interesujący nas wymiar. Następnie podpinam wymiar całkowitej długości blachy do zmiennej globalnej.
W drugiej kolejności tworzę funkcję warunkową. Zakładam, że jeśli długość całej blachy jest mniejsza bądź równa 50 szyk otworów będzie wygaszony. Jeśli będzie inaczej szyk będzie przywrócony. Warunek ten tworzę za pomocą funkcji if. W polu Operacje klikam zatem w pustą komórkę i z drzewa operacji wskazuję szyk liniowy otworów. Następnie w polu wartość/równanie wpisuję if i wybieram funkcję jaką oferuje mi SOLIDWORKS.
Funkcja if zwraca jedną lub dwie wartości w zależności od wyliczenia wyrażenia.
W tym przykładzie jej składnia w ten sposób:
"Szyk otworów" = IF ( "Długość@Odgięcie" < = 50 , "suppressed" , "unsuppressed" )
“Operacja” = IF (“Warunek”, “Wartość jeżeli prawda”, “Wartość jeżeli fałsz”)
Kolejnym krokiem będzie stworzenie funkcji wywołującej odpowiednią liczbę otworów w zależności od długości. W tym przypadku będzie ona wyglądać bardzo podobnie, jednak zamiast wartości „suppressed” i „unsuppressed” należy podać wartości liczbowe. W wierszu tabeli równań wskazuję zatem liczbę wystąpień z szyku liniowego i wpisuję równanie.
"Wystąpienia@Szyk otworów" = IF ( "Długość@Odgięcie" > 100 , 3 , 2 )
Ostatnie dwie funkcje jakie zostały do utworzenia są bardziej skomplikowane. Wymagają one utworzenia funkcji zagnieżdżonej, np. sterującej rozstawem między otworami w szyku.
"Rozstaw@Szyk otworów" = IF ( "Długość@Odgięcie" > 50 , IF ( "Długość@Odgięcie" > 100 , "Długość@Odgięcie" / 4 , "Długość@Odgięcie" / 3 ) , "Długość@Odgięcie" / 2 )
Poniżej dokładne jej wytłumaczenie:
Rozstaw między otworami =
- Jeśli długość jest większa od 100 to odległość rozstawu otworów ma się równać długości blachy podzielonej przez 4
- Jeśli długość jest większa niż 50, ale jeśli mniejsza niż 100 to odległość rozstawu otworów ma się równać długości blachy podzielonej przez 3
- Jeśli długość jest mniejsza niż 50, to odległość otworu ma się równać długości blachy podzielonej przez 2
Ostateczne tabela równań powinna wyglądać następująco:
Jeśli chcesz zobaczyć jak model został zrobiony, możesz go pobrać tutaj.