Funkcja loop

image_pdfimage_print

Funkcja loop posiada następującą składnię:

loop (id_start, i, i_start, i_stop, i_step, x_expr, y_expr, z_expr)

Wykorzystujemy ją do generowania współrzędnych punktów zamiast typowego polecenia id x y z.

W nawiasie musimy zdefiniować kolejno: indeks początkowego punktu, zmienną pętli, jej wartość początkową, wartość końcową, krok iteracji, wyrażenie w osi X, wyrażenie w osi Y oraz wyrażenie w osi Z.

Funkcję loop wykorzystamy do zaprojektowania panelu refleksyjnego, w tym celu tworzymy nowy plik geometrii modelu i wstępnie definiujemy w nim sekcje ABS, CORNERS i PLANES.

Sytuację obrazuje poniższy rysunek:

ekran

Kolejne punkty definiujące przekrój panelu (kolor czerwony) znajdują się co 9 stopni na okręgu o “niebieskim” promieniu. Na zielono zaznaczyłem potrzebne nam wysokości w osi Z, współrzędne osi Y otrzymamy zaś korzystając z twierdzenia Pitagorasa. Na początek potrzebujemy stworzyć dwie takie krzywe, dla różnych wartości współrzędnej X. Korzystamy ze składni polecenia loop i w sekcji CORNERS wpisujemy:

loop(1,i,0,45,9,-4,2*cos(i),3*sin(i))
loop(7,i,0,45,9,4,2*cos(i),3*sin(i))

Potrzebujemy teraz stworzyć potrzebne nam powierzchnie, pomoże nam w tym funkcja działająca na zasadzie pętli:

[*5 1 panel // 1 2 8 7 / panel]

Powyższa linia oznacza, że program CATT-Acoustic stworzy 5 powierzchni – pierwsza z nich, o indeksie 1, oparta jest na punktach 1 2 8 7 , dla kolejnych płaszczyzn numeracja każdego punktu inkrementuje o 1. Podany przeze mnie zapis (podwójny znak “/”) jest zapisem skróconym, w wersji podstawowej linia ta wygląda następująco:

[*5 1 panel /1 1 1 1/ 1 2 8 7 / panel]

Na koniec potrzeba nam jeszcze materiału o niskich współczynnikach pochłaniania, którym pokryjemy powierzchnię:

ABS panel <15 0 3 4 5 14 >

Ostatecznie nasz plik PANEL.GEO wygląda następująco:

ABS panel <15 0 3 4 5 14 >

CORNERS

loop(1,kat,0,45,9,-4,2*cos(kat),3*sin(kat))
loop(7,kat,0,45,9,4,2*cos(kat),3*sin(kat))

PLANES

[*5 1 panel // 1 2 8 7 / panel]

Zaś jego wizualizacja w modelu:

panel