19 kwietnia 2024


W poszukiwaniu tematu do kolejnego artykułu, ale nie tylko, zaglądam czasami na fora internetowe poświęcone tematyce CAD. Na jednym z nich trafiłem na wątek dotyczący automatycznego wstawiania elementów w zadanych punktach, ale jak pisze forumowicz: „…sęk tylko w tym, że te punkty zawieszone są w przestrzeni, więc User Pattern jako tako odpada. Trochę nie chce mi się wierzyć, że Kaśka* nie ma na to rozwiązania.” Pomyślałem: moja Kaśka, mój problem, i zacząłem drążyć temat. Co z tego wyszło?

Andrzej Wełyczko

Automatyczne wstawianie i pozycjonowanie elementów w przestrzeni oznacza zastosowanie czegoś więcej niż tylko zwykły Pattern czy nawet User Pattern, bo te polecenia działają tylko dla punktów zdefiniowanych na płaszczyźnie. Tu jest potrzebny Knowledge Pattern! Żeby zagadnienia za bardzo nie komplikować spróbujmy rozważyć model łańcucha napędowego. To prawda, że model łańcucha jest płaski, ale położenie każdego ogniwa jest określone przez dwa punkty, bo każde ma dwa punkty obrotu położone na zadanej krzywej. Można powiedzieć, że jeden punkt ustala położenie ogniwa w przestrzeni (tu: na płaszczyźnie), a drugi – jego pozycjonowanie (kąt z zadanym elementem odniesienia).
Zanim jednak zaczniemy wstawiać (powielać) wymagany element konstrukcyjny trzeba odpowiedzieć na pytanie: w jaki sposób automatycznie zdefiniować elementy pomocnicze (punkty, linie, płaszczyzny, itd.), które (w kolejnym etapie) posłużą jako elementy odniesienia do wstawienia i orientacji w przestrzeni? Czyli, wracając do modelu łańcucha, jak określić położenie osi wszystkich ogniw dla zadanej krzywej łańcucha i podziałki?
szyk_Rys01_sZałóżmy dla uproszczenia, że budujemy model łańcucha jako jedną część (CATPart), a nie „składamy” łańcucha z wielu części (czyli jako CATProduct). Takie założenie nie zmienia koncepcji rozwiązania, choć muszę przyznać, że trochę to rozwiązanie upraszcza. Zaczynamy od zestawu parametrów początkowych łańcucha (Rys. 1): podziałka (Pitch), średnice kół (D1 i D2) oraz odległość osi (A). Potem kontur (na przykład Sketch.1), którego wymiary są powiązane odpowiednimi formułami z parametrami początkowymi. Na tym konturze zdefiniowałem także punkt „początkowy” (tu: Extremum.1), który określa położenie jednej osi pierwszego ogniwa.
W jaki sposób z takiego modelu początkowego otrzymać gotowy („inteligentny”) model łańcucha? Moim zdaniem zadanie trzeba „rozbić” na mniejsze i w związku z tym łatwiejsze do rozwiązania kroki:
1. Ustalenie liczby segmentów łańcucha.
• Liczba segmentów łańcucha musi być parzysta.
2. Definicja równomiernie rozmieszczonych punktów na krzywej Sketch.1.
• Punkty wyznaczają położenie osi kolejnych ogniw łańcucha.
• Każde ogniwo (segment) musi być „zaczepione” w dwóch sąsiadujących punktach.
• Krzywa Sketch.1 jest zamknięta i dlatego w przypadku ogólnym ostatnie ogniwo ma długość inną niż zadana podziałka.
3. Poszukiwanie optymalnej wartości parametru A, czyli takiej, dla której długość ostatniego ogniwa jest równa zadanej podziałce łańcucha.
4. Definicja segmentów łańcucha.

cały artykuł dostępny jest w wydaniu 7/8 (46/47) Lipiec-sierpień 2011



*CATIA