DEFINE PF_Parallelkontur PARAMETER anfangspunkt PARAMETER abstand PARAMETER seite PARAMETER kritisch LOCAL L_Anfang LOCAL L_Ende LOCAL anz_ele LOCAL el_zaehl LOCAL Startpunkt LOCAL Endpunkt LOCAL Elementtyp LOCAL letztes_Element LOCAL Radius LOCAL MP LOCAL A_Winkel LOCAL E_Winkel LOCAL Dummy TRAP_ERROR INQ_SELECTED_ELEM SELECT anfangspunkt CONFIRM LET L_Anfang (INQ 101) LET L_Ende (INQ 102) INQ_SELECTED_ELEM SELECT LINES ALL ADD ARCS ALL ADD FILLETS ALL SUBTRACT anfangspunkt CONFIRM LET anz_ele (inq 14) IF(anz_ele < 1) READ 'Kein passendes Element gefunden !' DEFAULT 0 dummy END END_IF LET el_zaehl 1 WHILE (el_zaehl <= anz_ele) LET Elementtyp (INQ 403) IF((Elementtyp = ARC)OR(Elementtyp = FILLET)) LET Radius (inq 3) LET A_Winkel (inq 4) LET E_Winkel (inq 5) LET MP (inq 101) LET Startpunkt (inq 102) LET Endpunkt (inq 103) LET letztes_Element (MP + (ROT (PNT_XY Radius 0) ((A_Winkel+E_Winkel)/2))) ELSE LET Startpunkt (inq 101) LET Endpunkt (inq 102) LET letztes_Element ((Startpunkt + Endpunkt)/2) END_IF LET el_zaehl (el_zaehl + 1) TRAP_ERROR IF((Startpunkt = L_Anfang)AND(Endpunkt <> L_Ende)) EQUIDISTANCE abstand L_Anfang letztes_Element anfangspunkt seite LET el_zaehl (anz_ele + 1) ELSE_IF((Endpunkt = L_Anfang)AND(Startpunkt <> L_Ende)) EQUIDISTANCE abstand L_Anfang letztes_Element anfangspunkt seite LET el_zaehl (anz_ele + 1) ELSE_IF((Startpunkt = L_Ende)AND(Endpunkt <> L_Anfang)) EQUIDISTANCE abstand L_Ende letztes_Element anfangspunkt seite LET el_zaehl (anz_ele + 1) ELSE_IF((Endpunkt = L_Ende)AND(Endpunkt <> L_Anfang)) EQUIDISTANCE abstand L_Ende letztes_Element anfangspunkt seite LET el_zaehl (anz_ele + 1) END_IF IF(CHECK_ERROR) IF(kritisch = 1) BEEP WAIT 1 BEEP DISPLAY 'Die ausgewaehlte Kontur enthaelt doppelte Linien oder ist nicht geschlossen!' DISPLAY 'ESC zum abbrechen oder ENTER zum Fortsetzen, die Kontur kann beim Fortsetzen verloren gehen!' ELSE_IF(kritisch = 0) BEEP DISPLAY 'Die erstellte Kontur ist wahrscheinlich unvollständig oder beschädigt. Bitte prüfen!' END_IF END_IF INQ_NEXT_ELEM END_WHILE END_DEFINE