20.3   Beschreibung der ARexx-Befehle

Zum einfachen Verstehen der Parameter ist es sinnvoll, Xi-Paint aufzurufen und mit der eingebauten Makrofunktion ein ARexxSkript automatisch erzeugen zu lassen. Wählen Sie aus dem Menü"Sonstiges" den Unterpunkt "Makro starten" aus. Führen Sie einen Befehl aus und beenden Sie das Makro, indem Sie auf "Beenden" des Makro-Fensters klicken. Es öffnet sich der Dateirequester, in dem Sie einen Namen eingeben können. Diese Datei können Sie wiederum als Grundlage Ihrer ARexx-Skripte verwenden bzw. auch nur einfach ausführen.

Sehen Sie sich mit einem Editor das erstellte ARexx-Skript einmal an:
1>   ed work:xipaint/makro/test.rx

In den Beispielen werden die ersten beiden Zeilen, um das Handbuch übersichtlich zu halten, nicht immer mit angegeben - ARexx benötigt jedoch unbedingt in jedem Skript folgenden Eintrag:
/* Automatic generated macro from XiPaint 3.0 */ address ´xipaint´

Die erste Zeile ist ein beliebiger Kommentar - innerhalb von sogenannten Remarks. Diese Zeile benötigt ARexx, um zu erkennen, ob es sich wirklich um ein gültiges Skript handelt. Die zweite Zeile sagt dem ARexx, wer die nun folgenden Daten zu bearbeiten hat -nämlich in unserem Fall Xi-Paint.

Sie können, nachdem Sie Xi-Paint gestartet haben, mit der Tastenkombination <r-Amiga> < n > auf die Workbench gehen und eine Shell starten.

Ein ARexx-Skript starten Sie dann mit:
1>   rx Work:xipaint/makro/test.rx

Nun sollte sich am Bildschirm etwas tun. Die einfachen Anführungszeichen links und rechts vor manchen Befehlen dienen dazu, eine richtige ARexx-Übergabe zu gewährleisten. Im Normalfall braucht man diese nicht zu schreiben. Damit ARexx jedoch den richtigen Messageport findet, muß zum Beispiel das Kommando "address ´xipaint´ " sehr wohl in Anführungsstrichen gesetzt werden. Ebenso muß man die ganze Zeile in ein ´ setzen, wenn negative Zahlen im Übergabestring enthalten sind. Sonst versucht ARexx eine Berechnung zweier Parameter durchzuführen - und die Parameterliste ist nicht mehr vollständig.

  • arc, 6 Parameter
    Zeichnet eine Bezierkurve mit drei Stützpunkten. Die Koordinaten werden in den ersten 6 Parametern angegeben, jeweils X und Y.
    Beispiel:
    ´arc 227 89 381 140 272 216´
  • aslreq, 1 Parameter
    Ist als Parameter 1 angegeben, dann öffnet sich an Stelle des Xi-Paint-Filerequesters der Asl-Filerequester des Betriebssystems 2.0.
    Beispiel:
    aslreq 1
  • beginpoly, kein Parameter
    Startet den Vorgang zum Zeichnen eines ungefüllten oder gefüllten Polygons, bzw. zum Ausschneiden eines polygonialen Brushs.
    Beispiel:
    /* Automatic generated macro from XiPaint 3.0 */
    address ´xipaint´ beginpoly
    ´polymove 200 181´
    ´polydraw 119 212´
    ´polydraw 118 213´
    ´polydraw 120 213´
    ´polydraw 189 202´
    ´polydraw 228 226´
    ´polydraw 200 181´
    ´endpoly´
    beginpoly
    ´polymove 17 8 285´
    ´polydraw 106 333´
    ´polydraw 172 313´
    ´polydraw 184 360´
    ´polydraw 178 285´
    ´endpbrush
  • box, 4 Parameter
    Zeichnet ein ungefülltes Rechteck. Die ersten 4 Parameter geben die Eckpunkte an.
    Beispiel:
    ´box´ 190 419 232 474
  • brushload, eine Zeichenkette
    Ladet einen Brush.
    Beispiel:
    ´brushload´ ´pictures/TutEnchS.jpg´
  • brushsave, ein Zeichenkette
    Sichert einen Brush ab.
    Beispiel:
    ´brushsave´ ´pictures/TutEnchS.iff´
  • brushturnd, ein Parameter
    Dreht einen Brush um den eingestellten Winkel.
    Beispiel:
    /* Automatically generated macro from XiPaint 3.0 */
    address ´xipaint´
    ´getbrush 142 235 56 29´
    ´brushdouble´
    ´brushyhalf´
    ´brushxhalf´
    ´brushdouble´
    ´brushhalf´
    ´brushsize 41 266 ´
    ´turnbrushy´
    ´turnbrushz´
    ´brushturnd´ 23
    endrexx
  • brushturnx, kein Parameter
    Spiegelt einen Brush an der X-Achse.
    Beispiel: siehe "brushturnd"
  • >
  • brushturny, kein Parameter
    Spiegelt einen Brush an der Y-Achse.
    Beispiel: siehe "brushturnd"
  • brushturnz, kein Parameter
    Dreht einen Brush um 90 O um die Z-Achse.
    Beispiel: siehe "brushturnd"
  • brushxhalf, kein Parameter
    Halbiert den Brush in der X-Achse.
    Beispiel: siehe "brushturnd"
  • brushyhalf, kein Parameter
    Halbiert den Brush in der Y-Achse.
    Beispiel: siehe "brushturnd"
  • brushhalf, kein Parameter
    Halbiert den Brush in beiden Achsen.
    Beispiel: siehe "brushturnd"
  • brushdouble, kein Parameter
    Verdoppelt den Brush in beiden Achsen.
    Beispiel: siehe "brushturnd"
  • brushsize, 2 Parameter
    Der Brush kann eine beliebige Größe annehmen. Die beiden Parameter geben die neue Größe in Pixel an.
    Beispiel: siehe "brushturnd"
  • cls, ein Parameter
    Löscht den Bildschirm in der aktuellen Palettenfarbe, Schwarz oder Weiß.
          ________________________________________________
          |  Art    | Wert                               |
          ----------- ------------------------------------
          |  20922  | Löschen in Schwarz                 |
          |  20921  | Löschen in Weiß                    |
          |  20920  | Löschen in aktueller Palettenfarbe |
          ------------------------------------------------
          
    Beispiel:
    cls 20920
  • color, 4 Parameter
    Setzt die Farben. Die ersten 3 Parameter geben den Rot-, Grün- und Blau-Wert an, der vierte Parameter die Farbe, die man ändern möchte. Diese ist von 0 bis 255 gültig.
    Beispiel:
    ´color 12 254 242 0´
    ´color 239 254 14 1´
  • cyclemode, 1 Parameter
    Legt den Modus fest, welche Farben beim Cycle durchlaufen werden sollen, wieviele und welche Paletteneinträge verwendet werden.

    Der erste Wert gibt den Offset an, ab dem der Farbeintrag beginnen soll. Bei 2000 Einträgen ist dies ein Wert zwischen 0 und 1999.

    Der zweite Wert gibt den aktuellen internen Paletten-Schritt an. Auch dieser ist nur innerhalb der angegebenen Schritte zulässig.

    Der dritte Wert gibt die maximalen Schritte an. Derzeit sind nur 2000 möglich.

    Der vierte und fünfte Wert geben die Start- und Ziel Palette an, über die gecycled werden soll.

    Beispiel:
    ´cyclemode´ 0 0 2000 2 6

  • dline, 6 Parameter
    Dient zum Zeichnen einer durchgehenden Linie. Der Un- terschied zu "line" besteht darin, daß nur zum jeweils ange- gebenen Punkt gezeichnet wird. Mit Move fährt man zum gewünschten Anfangspunkt.

    Beispiel:
    ´setpoint´ 124 62
    ´setpoint´ 124 62
    ´polymove´ 81 81
    ´dline´ 82 83
    ´dline´ 85 90
    ´dline´ 87 101
    ´dline´ 90 110
    ´dline´ 93 117
    ´dline´ 111 123
    ´dline´ 116 122
    ´dline´ 118 120
    ´endrexx´
  • drawpara, 7 Parameter
    Dient zum Festlegen der aktuellen Parameter "Dunkelheit" und "Helligkeit", etc.:
          _____________________________________________________________
          |  Parameter  |  Einstellparameter         |  Wertebereich  |
          -------------------------------------------------------------
          |      1      |  Aufhellfaktor             |  0-255         |
          |      2      |  Abdunkelungsparameter     |  0-255         |
          |      3      |  Antialiasingfaktor        |  0-255         |
          |      4      |  fastfill                  |  0-1           |
          |      5      |  keep-mask                 |  0-1           |
          |      6      |  Pixel-Strom               |  0-16000       |
          |      7      |  1-Pixel-Strom             |  0-16000       |
          -------------------------------------------------------------
          
  • edge, 1 Parameter
    Hiermit kann man den Griffpunkt des Pinsels oder Brushs bestimmen. Im Normalfall ist dieser in der Mitte. Auf Wunsch kann man mit diesem Befehl den Griffpunkt auch an andere Stellen legen.
          __________________________
          |  Wert  | Einstellung   |
          --------------------------
          |  1     | links oben    |
          |  2     | links unten   |
          |  3     | rechts oben   |
          |  4     | rechts unten  |
          |  0     | mittig        |
          --------------------------
          
    Beispiel:
    edge 1
  • ellips, 4 Parameter
    Zeichnet eine nicht ausgefüllte Ellipse. Die 4 Parameter geben den Mittelpunkt und den Radius an.
    Beispiel:
    ´ellips´ 297 305 316 329
  • endpoly, kein Parameter
    Beendet ein Polygon.
    Beispiel:
    siehe beginpoly.
  • endfpoly, kein Parameter
    Beendet ein gefülltes Polygon.
    Beispiel:
    siehe beginpoly.
  • endpbrush, kein Parameter
    Beendet einen Polygon-Brush.
    Beispiel:
    siehe beginpoly
  • endrexx, kein Parameter
    Beendigt ein ARexx-Skript, so daß wieder ein normaler Zeichenzustand erreicht wird. Dieser Befehl sollte nach jedem ARexx-Skript angegeben werden.
    Beispiel:
    endrexx
  • exit, kein Parameter
    Beendet Xi-Paint.
    Beispiel:
    exit
  • fbox, 4 Parameter
    Zeichnet ein gefülltes Rechteck. Die ersten 4 Parameter geben die Eckpunkte an.
    Beispiel:
    ´fbox´ 190 419 232 474
  • fellips, 4 Parameter
    Zeichnet eine ausgefüllte Ellipse. Die 4 Parameter geben den Mittelpunkt und den Radius an.
    Beispiel:
    ´fellips´ 297 305 316 329
  • fill, 4 Parameter
    Füllt ab der eingegebenen X-Y-Koordinate alle gleichbleibenden gleichfarbigen Farbpixel.
    Beispiel:
    ´fill 100 100´
  • fontdpi, 3 Parameter
    Stellt die X-zu-Y- Auflösung des Fonts ein. Der dritte Parameter schaltet Antialias ein/aus.
    Beispiel:
    fontdpi 75 80 0
  • getbrush, 4 Parameter
    Schneidet einen rechteckigen Brush aus. Die 4 Parameter sind die Eckpunkte.
    Beispiel: siehe "brushturnd"
  • gradmode, 3 Parameter
    Dieser stellt für den Verlauf die Art ein, wie dieser erfolgen soll. Der zweite und dritte Parameter stellen in % den x- und y-Wert des fünften Punktes dar.
          ___________________________________
          |  Wert  |  Einstellung           |
          -----------------------------------
          |  1     |  Horizontal, 2 Farben  |
          |  2     |  Vertikal, 2 Farben    |
          |  4     |  3 Farben, Oben zwei   |
          |  3     |  3 Farben, Unten zwei  |
          |  5     |  4 Farben              |
          |  6     |  5 Farben              |
          -----------------------------------
          
  • itext, 3 Parameter
    Mit diesem Befehl können Sie aus einem ARexx-Skript her- aus interaktiv einen Text erfragen und diesen dann als Brush generieren lassen.
    Beispiel:
    /* Interaktiver Text */
    address ´xipaint´
    ´itext´
    endrexx
  • line, 4 Parameter
    Zeichnet eine Linie von den Koordinaten x1, y1 bis zum Endpunkt x2, y2.
    Beispiel:
    ´Color´ 102 102 102 0
    ´line´ 319 140 412 234
  • lighttable, kein Parameter
    Mit diesem Befehl schalten Sie den Leuchttisch ein bzw. bei nochmaligem Aufruf wieder aus. Siehe auch im eigenen Kapitel "Der Leuchttisch"
    Beispiel:
    lighttable
  • maskclut, 2 Parameter
    Gibt die die X- und Y-Koordinate des aufzunehmenden CLUT-Bereiches an. Diese Farbwerte werden dann ausmaskiert. Sie dienen als "Color Look Up Table" (CLUT).
    Beispiel:
    ´maskclut´ 194 144
  • maskmode, 7 Parameter
    Schaltet die Maske ein bzw. bestimmt, welche Art der Maske verwendet werden soll.
    Die folgende Tabelle stellt die Maskierungsmodi dar:
          _________________________________________________________________
          |  Parameter  | Wert   |  Funktion                              |
          -----------------------------------------------------------------
          |      1      | 0      |  Auf Maskierung wird nicht gezeichnet  |
          |      1      | 1      |  Auf Maskierung wird gezeichnet        |
          |      2      | 0-255  |  Maskierungs-Stützpunktfarbe           |
          |      3      | 0-3600 |  Hue-Bereich der Maskierung            |
          |      4      | 0-255  |  Sättigungsbereich der Maskierung      |
          |      5      | 0-255  |  Helligkeitsbereich der Maskierung     |
          |      6      | 1-20   |  Seitengröße des CLUT-Rechtecks        |
          |      7      | 0      |  Maske ausschalten                     |
          |      7      | 1      |  Maske einschalten                     |
          -----------------------------------------------------------------
          
    Beispiel:
    ´maskmode´ 1 1 10 10 10 10 1
  • maxmask, kein Parameter
    Es wird automatisch zum aktuellen Pinsel eine Maximum- Maske generiert.
  • minipic, ein Parameter, ein Zeichenkette
    Der erste Parameter gibt an, ob die Datei, die ein Minipic erhalten soll, ein Bild ist (0), oder ein Zeichensatz(1).
    Die anzugebende Zeichenkette ist der Dateiname.
  • picload, ein Zeichenkette
    Lädt Bilder im Xi-Paint, als auch IFF-, JPEG und PPM-Format : :,:je nach verwendeter multipic.library.
    Beispiel:
    ´picload´ ´pictures/TutEnch.jpg´
  • picsave, ein Zeichenkette
    Sichert Bilder im Xi-Paint- wie auch im IFF- JPEG und PPM-Format, je nach verwendeter multipic.library.
    Beispiel:
    ´picsave´ ´pictures/TutEnch.iff´
  • pointlayout, 3 Parameter
    Legt den Zeichenstift fest. Der erste Parameter gibt an, ob der Stift rund (1) oder quadratisch (0) sein soll. Der zweite Parameter gibt die Ausdehnung bzw. den Durchmesser an.
    Der dritte Parameter bestimmt die Farbart (Modus), in der gezeichnet werden soll.
    Beispiel:
    pointlayout 0 8 3
  • polymove, 2 Parameter
    Positioniert den internen Cursor. Dient zum Einstellen eines Polygons etc.
    Beispiel:
    beginpoly
    ´polymove 186 154´
    ´polydraw 121 187´
    ´polydraw 164 238´
    ´polydraw 163 238´
    ´polydraw 222 206´
    ´polydraw 186 154´
    ´endpbrush´
    ´setpoint 221 156´
  • polydraw, 2 Parameter
    Zeichnet eine Polygonlinie, bzw. schneidet an dieser Linie einen polygonialen Brush aus.
    Beispiel: siehe "polymove"
  • redo, kein Parameter Es wird ein REDO ausgeführt.
  • savemode, 2 Parameter
    Gibt an, ob ein Bild bzw. Brush im IFF-ILBM-Format oder im IFF-DEEP Format abgespeichert werden soll. IFF-DEEP ist zwar wesentlich schneller, jedoch sind die Dateien länger. Siehe auch eigenes Kapitel über Laden und Speichern.

    Der zweite Parameter ist normalerweise 24 (Bit) bzw., falls das Format einen Alpha-Kanal unterstützt, 32 (Bit).
            __________________________
            |  Wert  |  Fileformat   |
            --------------------------
            |  0     |  IFF-DEEP     |
            |  1     |  IFF-ILBM     |
            |  2     |  PBM          |
            |  3     |  PPM          |
            |  4     |  SUNRASTER    |
            --------------------------
          
    Beispiel:
    ´savemode´ 4 32
  • setfont, ein Zeichenkette, 1 Parameter
    Lädt einen beliebigen Font in einer beliebigen Größe.
    Beispiel: siehe "text"
  • setgrid, 5 Parameter
    Schaltet ein beliebig einstellbares Gitter ein. Die ersten bei- den Parameter geben den Abstand, die nächsten beiden den Offset vom Nullpunkt des Bildschirmes an. Der fünfte Para- meter schaltet das Gitter ein (1) oder aus(0);
    Beispiel:
    setgrid 3 3 0 0 1
  • setmaxmove, ein Parameter
    Gibt den maximal sichtbaren Brush in Pixel an. Ein Brush, der größer als der angegebene Pixelbereich ist, wird als Rechteck angezeigt.
    Beispiel:
    setmaxmove 50000
  • setpoint, 2 Parameter
    Dient zum Setzen eines Punktes an der x, y-Koordinate.
    Beispiel:
    ´setpoint 145 184´
  • setshadow, 3 Parameter
    Hier geben Sie die Richtung des Schattens an, bzw. wie dieser aussehen soll. Die ersten beiden Parameter geben den x- bzw y-Versatz des Schattens an. Der dritte Parameter schaltet den Schatten ein (1)/aus(0).

    Wie stark der Schatten abdunkeln soll, gibt der Abdunkelungsparameter im Parameterfenster an.
    Beispiel:
    siehe "text"
  • text, kein Parameter, nur Zeichenkette
    Erzeugt aus den angegebenen Text einen Brush.
    Beispiel:
    ´setfont´ 60 ´FONTS:CGTriumvirate.font´
    ´setshadow´ 10 ´-10´ 1
    ´text´ ´Der Versuch´ setpoint 10 30
  • undo, kein Parameter Es wird ein UNDO ausgeführt.
  • version, kein Parameter
    Gibt die aktuelle Versionsnummer von Xi-Paint aus.
    Beispiel:
    /* gets the version from Xi-Paint */
    options results
    address ´xipaint´ ´Version´
    say result ´version´
  • vlabinput, 3 Parameter
    Setzt den VTR-Modus (0/1), PAL/NTSC (1/0) und den Input-Kanal des VLab-Digitizers.
    Beispiel:
    vlabinput 0 1 2
  • vlabscansize, vier Parameter
    Setzt die Digitizer-Bereiche von VLAB. Die 4 Parameter geben die linke Ecke, obere Ecke, die Weite und die Höhe an. Beispiel:
    vlabscansize 0 20 720 600
  • vlabdigi, kein Parameter
    Digitalisiert ein Bild mit dem VLab-Digitizer.
    Beispiel:
    vlabgrab 0 20 720 600
  • vlabdeinter, kein Parameter
    Führt DeInterlace am aktuellen Projekt aus. Beachten Sie jedoch, daß ein VLab-Digitizer in Ihrem Rechner vorhanden sein muß, um diese Funktion ausführen zu können.
    Beispiel:
    vlabdeinter
  • wait, ein Parameter
    Um in einer Demonstration eine Warteschleife verwenden zu können, reicht dieser Befehl. Der Parameter gibt die Zeit in fünfzigstel Sekunden an, die Xi-Paint warten soll, bevor die nächste Aktion gestartet werden soll.