DEFINE Gummilinie LOCAL P1 LOCAL P2 LOCAL Geo_farbe LOCAL Geo_linie LOCAL Hgeo_farbe LOCAL Hgeo_linie LOCAL Gummi_geo_farbe LOCAL Gummi_geo_linie LOOP LOOP INQ_ENV 3 LET Geo_farbe (INQ 201) LET Geo_linie (INQ 301) LET Hgeo_farbe (INQ 202) LET Hgeo_linie (INQ 302) LOOP CATCH ALL READ PNT 'Zu aenderndes Element antippen' P1 INQ_SELECTED_ELEM P1 EXIT_IF ((P1 <> INQ 101) AND (P1 <> INQ 102)) BEEP END_LOOP IF ((INQ 403 = ARC) OR (INQ 403 = FILLET)) Gummibogen P1 {** Sprung nach Macro 'Gummibogen'} END_IF LET Gummi_geo_farbe (INQ 201) LET Gummi_geo_linie (INQ 301) EXIT_IF (INQ 403 = LINE) END_LOOP DELETE LINES P1 IF (LEN ((INQ 101) - P1) < LEN ((INQ 102) - P1)) C_LINE (INQ 101) (INQ 102) READ PNT 'Endposition antippen' RUBBER_LINE_ANG (INQ 102) (ANG (INQ 101 - INQ 102)) P2 DELETE C_GEO P1 LINE RGB_COLOR (Gummi_geo_farbe) LINEPATTERN (Gummi_geo_linie) END LINE PT_ANG_DIST (INQ 102) (INQ 101) P2 END LINE RGB_COLOR (Geo_farbe) LINEPATTERN (Geo_linie) END C_LINE RGB_COLOR (Hgeo_farbe) LINEPATTERN (Hgeo_linie) END ELSE C_LINE (INQ 101) (INQ 102) READ PNT 'Endposition antippen' RUBBER_LINE_ANG (INQ 101) (ANG (INQ 102 - INQ 101)) P2 DELETE C_GEO P1 LINE RGB_COLOR (Gummi_geo_farbe) LINEPATTERN (Gummi_geo_linie) END LINE PT_ANG_DIST (INQ 101) (INQ 102) P2 END LINE RGB_COLOR (Geo_farbe) LINEPATTERN (Geo_linie) END C_LINE RGB_COLOR (Hgeo_farbe) LINEPATTERN (Hgeo_linie) END END_IF END_LOOP END_DEFINE DEFINE Gummibogen PARAMETER P0 {** von Macro 'Gummilinie'} LOCAL P1 LOCAL P2 LOCAL P3 LOCAL Pend LOCAL Radius LOCAL V1 LOCAL L1 LOCAL L2 LOCAL Farbe LOCAL Linienart LOCAL Farbe_aktuell LOCAL Linienart_aktuell INQ_ENV 3 LET Farbe_aktuell (INQ 201) LET Linienart_aktuell (INQ 301) INQ_ELEM P0 LET Farbe (INQ 201) LET Linienart (INQ 301) LET P1 (INQ 101) {** Mittelpunkt} LET P2 (INQ 102) {** Anfangspunkt} LET P3 (INQ 103) {** Endpunkt} LET Radius (INQ 3) IF (INQ 403 = ARC) DELETE ARCS P0 END ELSE DELETE FILLETS P0 END END_IF C_CIRCLE P1 Radius END COLOR Farbe LINETYPE Linienart LET L1 (SQRT ((SQR (ABS ((X_OF P2) - (X_OF P0)))) + (SQR (ABS ((Y_OF P2) - (Y_OF P0)))))) LET L2 (SQRT ((SQR (ABS ((X_OF P3) - (X_OF P0)))) + (SQR (ABS ((Y_OF P3) - (Y_OF P0)))))) IF (L1 > L2) READ PNT 'Endpunkt antippen' RUBBER_ARC_CEN_BEG P1 P2 Pend DELETE C_GEO P0 END ARC CEN_BEG_END P1 P2 Pend END ELSE READ PNT 'Endpunkt antippen' RUBBER_ARC_CEN_END P1 P3 Pend LET V1 ((P1 - Pend)/(LEN (P1 - Pend))) LET V1 (V1 * Radius) LET Pend (P1 - V1) DELETE C_GEO P0 END ARC CEN_BEG_END P1 Pend P3 END END_IF COLOR Farbe_aktuell LINETYPE Linienart_aktuell END_DEFINE