23 października 2017


Spotkania z użytkownikami systemu CATIA, a także dyskusje prowadzone na forach internetowych są dla mnie zawsze inspirujące. Cykl artykułów, który niniejsza publikacja rozpoczyna, powstał niejako w odpowiedzi na pytanie zadane właśnie na forum użytkowników i jest „reakcją” na temat definiowania ewolwentowej powierzchni śrubowej.

Andrzej Wełyczko

Powierzchnia takiego typu (Rys.1) może być zastosowana jako model powierzchni bocznej zęba ślimaka ewolwentowego, który jest śrubowym kołem zębatym o zarysie ewolwentowym i bardzo małej liczbie zębów.

ewolwentowa
Rys. 1

Ewolwentowa powierzchnia śrubowa jest szczególnym przypadkiem prostoliniowej powierzchni śrubowej, który zachodzi wtedy, gdy tworząca powierzchni bocznej zęba jest styczna do linii śrubowej na walcu zasadniczym. Kąt nachylenia ß prostej tworzącej powierzchnię ewolwentową do płaszczyzny prostopadłej do osi ślimaka jest taki sam jak kąt wzniosu linii śrubowej na walcu zasadniczym.
Prostoliniowy przekrój takiej powierzchni występuje tylko w przekrojach stycznych do walca zasadniczego. I tu pojawia się problem, bo polecenia definiujące powierzchnie w systemie CATIA V5 za pomocą przekrojów i krzywych prowadzących (Sweep, Multi-Section Surface, Blend) bazują na definicji przekrojów zdefiniowanych na płaszczyźnie prostopadłej do krzywej kręgosłupowej (Spine). Jak w takim razie zdefiniować w systemie CATIA V5 ewolwentową powierzchnię śrubową wtedy, gdy zadane przekroje leżą na płaszczyznach stycznych, a nie prostopadłych do zadanej krzywej?

Rys02 ewolwentowa
Rys. 2

Odpowiedź wydaje się oczywista: trzeba znaleźć taką krzywą, dla której proste tworzące znajdują się na płaszczyznach prostopadłych do tej krzywej. Poszukiwanie rozwiązania najlepiej rozpocząć od analizy geometrycznej zadania. Na przykład (Rys.2), jeśli na krzywej śrubowej (Helix.1) zdefiniujemy dowolny punkt (AnyPoint), a następnie linię styczną do krzywej śrubowej w tym punkcie (TangentLine) i ustalimy długość tej linii za pomocą formuły obliczeniowej (Formula.2), to otrzymamy wymagany przekrój poszukiwanej powierzchni.
Długość przekroju szukanej powierzchni musi być równa odległości punktu styczności od początku krzywej śrubowej mierzonej wzdłuż tej krzywej. Łatwo to sprawdzić za pomocą formuł obliczających wartości parametrów AnyPoint Distance from StartPoint i TangentLine Length (Rys. 3).

Rys03 ewolwentowa
Rys. 3

Ponadto, niezależnie od położenia punktu styczności, kąt pomiędzy zadanym przekrojem powierzchni (TangentLine), a jego rzutem (Project.1) na płaszczyznę (tu: xy plane) prostopadłą do osi krzywej śrubowej, jest zawsze stały (tu, dla zadanych parametrów krzywej Helix.1, jest 17,657 deg). Punkt końcowy linii TangentLine leży na płaszczyźnie prostopadłej do osi krzywej śrubowej Helix.1 wyznaczonej przez punkt początkowy (StartPoint) tej krzywej – patrz: MeasureBetween.1/Length = 0mm.
Definicja poszukiwanej ewolwentowej powierzchni ślimakowej musi więc być oparta na krzywej, która jest zbiorem punktów przecięcia linii stycznych do krzywej śrubowej z płaszczyzną wyznaczoną przez punkt początkowy tej krzywej (tu: StartPoint) oraz prostopadłą do osi tej krzywej. W systemie CATIA V5 nie ma polecenia, które automatycznie definiuje taką krzywą, ale to nie znaczy, że taka definicja nie jest możliwa.
Każda krzywa (i nie tylko krzywa) może być zdefiniowana za pomocą polecenia Knowledge Pattern (środowisko Product Knowledge Template). Knowledge Pattern to obiekt, który umożliwia automatyczne generowanie elementów geometrycznych typu Datum (punkty, linie, okręgi, krzywe, powierzchnie lub płaszczyzny) albo wstawianie szablonów konstrukcyjnych typu User Feature, których liczba jest kontrolowana przez parametr użytkownika. Takie możliwości są moim zdaniem idealne do rozwiązania tego problemu. Proponuję pominąć nieistotne dla tego przykładu szczegóły teoretyczne i przystąpić do realizacji kolejnych kroków procedury konstrukcyjnej:
1. Parametr NbOfPoints (Rys. 4) określa deklarowaną przez konstruktora liczbę punktów, które posłużą do wyznaczenia szukanej krzywej.

Rys04 ewolwentowa
Rys. 4

2. Idea działania Knowledge Pattern jest bardzo podobna do Reaction – zmiana, którą może być zmiana wartości parametru NbOfPoints uruchamia (zazwyczaj w pętli) procedurę generowania obiektów typu Datum (tu: zestaw nowych punktów krzywej).
3. W polu Knowledge Pattern Lists zdefiniowane zostały dwie listy:

  • EndPoints – zbiór (lista) punktów szukanej krzywej,
  • Splines – zbiór krzywych (tu przechowana zostanie definicja szukanej krzywej).

4. W głównym oknie edycji obiektu Knowledge Pattern.1 zdefiniowany został program generujący wymagane elementy geometryczne. Kod takiego programu można podzielić na cztery zasadnicze segmenty:

  • Deklaracja zmiennych,
  • Ustalenie wartości początkowych,
  • Pętla generowania punktów krzywej,
  • Definicja krzywej.

Rys05 ewolwentowa
Rys. 5

5. W polu Execution wybrać tryb wykonania: ręczny (Manual execution) lub automatyczny (Automatic execution (before root update)).
Jeśli wybrany zostanie tryb automatyczny, to po każdej zmianie wartości parametru NbOfPoints lub modyfikacji dowolnego elementu geometrycznego, do którego nawiązuje program generujący, zdefiniowany wewnątrz Knowledge Pattern, system automatycznie odświeży definicje wszystkich punktów (patrz zawartość zestawu Output/MyPoints) i dla tych punktów zbuduje nową krzywą SurfaceBoundary.