DEFINE Spirale LOCAL Alpha LOCAL Beta LOCAL R1 LOCAL R2 LOCAL S LOCAL Mittel LOCAL Anfangspunkt_innen LOCAL Endpunkt_innen LOCAL Zaehler LOCAL Anzahl LOCAL N LOCAL Punkt LOCAL Richtung LOCAL Laenge LOCAL P1 LOCAL P2 LOCAL P3 LOCAL P4 IF (I_port) Check_i_port END_IF IF (NOT I_port) T_clear_menu CURRENT_MENU Pd_menu_1_layout_name Farbe_stift MENU Colo0 Bcol5 'Spiralenkonstruktion' '' 1 3 MENU 'linksdrehend = [1]' '1' 3 1 MENU 'rechtsdrehend = [2]' '2' 4 1 READ NUMBER 'Drehrichtung der Spirale bestimmen: linksdrehend = 1 / rechtsdrehend = 2' Richtung MENU Colo0 Bcol2 (Richtung+2) 1 MENU ('Anfangswinkel = ') 6 1 READ NUMBER 'Anfangswinkel der Spirale eingeben' Alpha MENU ('Anfangswinkel = '+STR Alpha+'·') 6 1 MENU ('Windungszahl = ') 7 1 READ NUMBER 'Windungszahl in Grad eingeben 1 Umdrehung = 360·' Beta MENU ('Windungszahl = '+STR Beta) 7 1 MENU ('Innenradius = ') 8 1 READ NUMBER 'Innenradius der Spirale eingeben' R1 MENU ('Innenradius = '+STR R1) 8 1 MENU ('Aussenradius = ') 9 1 READ NUMBER 'Aussenradius der Spirale eingeben' R2 MENU ('Aussenradius = '+STR R2) 9 1 MENU ('Bandstärke = ') 10 1 READ NUMBER 'Bandstaerke eingeben' S MENU ('Bandstärke = '+STR S+'mm') 10 1 READ PNT 'BEZUGSPUNKT, Mittelpunkt der Spirale eingeben = ?' Mittel LET Zaehler 1 LET Anzahl (ABS (Beta DIV 10)) LET Anfangspunkt_innen (Mittel+ROT (PNT_XY R1 0) Alpha) LET N 10 SPLINE NATURAL Anfangspunkt_innen WHILE (Zaehler<3) IF (Richtung=1) LET Punkt (Mittel+ROT (PNT_XY (R1+N*(R2 - S - R1)/(ABS Beta)) 0) ( Alpha+N)) ELSE_IF (Richtung=2) LET Punkt (Mittel+ROT (PNT_XY (R1+N*(R2 - S - R1)/(ABS Beta)) 0) ( Alpha - N)) END_IF Punkt LET Zaehler (Zaehler+1) LET N (N+10) END_WHILE SPLINE NATURAL Punkt WHILE (Zaehler<(Anzahl -1)) IF (Richtung=1) LET Punkt (Mittel+ROT (PNT_XY (R1+N*(R2 - S - R1)/(ABS Beta)) 0) ( Alpha+N)) ELSE_IF (Richtung=2) LET Punkt (Mittel+ROT (PNT_XY (R1+N*(R2 - S - R1)/(ABS Beta)) 0) ( Alpha - N)) END_IF Punkt LET Zaehler (Zaehler+1) LET N (N+10) END_WHILE SPLINE NATURAL Punkt WHILE (Zaehler