DEFINE Laengenmessung READ PNT 'Konturstart fuer Laengenmessung antippen ' Sp LET Laenge 0 LET Zaehler 0 LET Fp (Sp) LET Pp (Sp) LET Ap (Sp) LET Beginn (1) LOOP INQ_ELEM Pp IF (Beginn=0) UNDO IF (P1=P2) POINT P2) END_IF END_IF EXIT_IF ((Beginn=0) AND (Pp=Sp)) LET Elementtyp (INQ 403) EXIT_IF (Elementtyp= END) IF (Elementtyp= LINE) LET P1 (INQ 101) LET P2 (INQ 102) LET Len_inc (SQRT (X_OF (P1 - P2)^2+Y_OF (P1 - P2)^2)) ELSE_IF (Elementtyp= BSPLINE) LET P1 (INQ 101) LET P2 (INQ 102) LET Len_inc (READ_LTAB 'BSpline_basic_table' TITLE 2) ELSE IF ((Elementtyp= ARC) OR (Elementtyp= FILLET)) LET P1 (INQ 102) LET P2 (INQ 103) LET Len_inc (ABS (INQ 4 - INQ 5)*6.28318530717959*INQ 3/360) ELSE IF (Elementtyp= POINT) LET P1 (Inq101) LET P2 (Inq101) LET Len_inc 0 COLOR (INQ 201) LINETYPE (INQ 301) ELSE DISPLAY Elementtyp DISPLAY 'unzulaessiges element, ende konturverfolgung' EXIT END_IF END_IF END_IF IF (P1<>Fp) LET Hp (P1) LET P1 (P2) LET P2 (Hp) LET Dreh_sinn (1) ELSE LET Dreh_sinn (0) END_IF LET Fp (P2) IF (Elementtyp= POINT) DELETE Pp DELETE Ap ELSE DELETE Pp END_IF LET Ap (Pp) LET Pp (Fp) LET Beginn (0) LET Laenge (Laenge+Len_inc) LET Zaehler (Zaehler+1) END_LOOP END DISPLAY ('Messung von '+STR Zaehler+' Elementen ergab eine Laenge von ==>' +STR Laenge) END_DEFINE