DEFINE Kasten {Das Makro zeichnet ein Rechteck entweder von einem Punkt aus mit Eingabe oder Antippen einer Laenge oder Hoehe oder bei Eingabe von Laenge und Hoehe um einen Ausrichtpunkt wie bei Texten. Dazu ist noch ein ZURUECK eingebaut.} LOCAL P_links LOCAL Hoehe LOCAL Hoehe2 LOCAL P_oben LOCAL Laenge LOCAL Laenge2 LOCAL Flag_L LOCAL Flag_H LOCAL Ausrpnt END LET Ausrpnt 5 CHANGE_ELEM_INFO TRAP_ERROR 'Last*' '' INFOS 'Last*' END {evtl. noch vorhandene Infos loeschen} LOOP LET Flag_L 0 LET Flag_H 0 DISPLAY_NO_WAIT (CHECK_ERROR) READ PNT QUALIFIER 'Linken unteren Eckpunkt oder EinfÏgepunkt oder ZURUECK antippen' P_links IF ((TYPE P_links)=QUALIFIER) {ZURUECK auswerten} IF (P_links=UNDO) DELETE SELECT INFOS 'Last_l' CONFIRM END {Bei ZURUECK wird das Element mit dem Info 'Last_l' geloescht} Kasten ELSE CANCEL END_IF END_IF READ 'Laenge eingeben oder Punkt auf der Waagerechten antippen' RUBBER_LINE_HORIZONTAL P_links Laenge IF ((POS (STR Laenge) ',')=0) LET Laenge2 (PNT_XY Laenge 0) LET Laenge (PNT_XY (X_OF P_links+Laenge) (Y_OF P_links)) LET Flag_L 1 END_IF READ 'Hoehe eingeben oder Punkt auf der Senkrechten antippen' RUBBER_LINE_VERTICAL P_links Hoehe IF ((POS (STR Hoehe) ',')=0) LET Hoehe2 (PNT_XY 0 Hoehe) LET Hoehe (PNT_XY (X_OF P_links) (Y_OF P_links+Hoehe)) LET Flag_H 1 END_IF IF ((Flag_L = 1)AND(Flag_H = 1)) LOOP READ NUMBER 'Bitte Nummer des Ausrichtpunktes (1-9) eingeben 'DEFAULT Ausrpnt Ausrpnt EXIT_IF ((Ausrpnt<10)AND(Ausrpnt>0)) BEEP END_LOOP ADD_CURRENT_INFO 'Last_l' {Die Linien werden mit dem INFO 'Last_l' gezeichnet} IF (Ausrpnt=1) LINE RECTANGLE P_links (P_links+Laenge2+Hoehe2) ELSE_IF (Ausrpnt=2) LINE RECTANGLE (P_links-(Laenge2/2)) (P_links+(Laenge2/2)+Hoehe2) ELSE_IF (Ausrpnt=3) LINE RECTANGLE (P_links-Laenge2) (P_links+Hoehe2) ELSE_IF (Ausrpnt=4) LINE RECTANGLE (P_links-(Hoehe2/2)) (P_links+Laenge2+(Hoehe2/2)) ELSE_IF (Ausrpnt=5) LINE RECTANGLE (P_links-(Laenge2/2)-(Hoehe2/2)) (P_links+(Laenge2/2)+(Hoehe2/2)) ELSE_IF (Ausrpnt=6) LINE RECTANGLE (P_links-Laenge2-(Hoehe2/2)) (P_links+(Hoehe2/2)) ELSE_IF (Ausrpnt=7) LINE RECTANGLE (P_links-Hoehe2) (P_links+Laenge2) ELSE_IF (Ausrpnt=8) LINE RECTANGLE (P_links-(Laenge2/2)-Hoehe2) (P_links+(Laenge2/2)) ELSE_IF (Ausrpnt=9) LINE RECTANGLE (P_links-Laenge2-Hoehe2) P_links END_IF ELSE ADD_CURRENT_INFO 'Last_l' LET P_oben (PNT_XY (X_OF Laenge) (Y_OF Hoehe)) LINE RECTANGLE P_links P_oben END_IF END CHANGE_CURRENT_INFO 'Last*' '' END END_LOOP END_DEFINE