In diesem Abschnitt sind alle Methoden der eingebauten Klasse ICS beschrieben. Die Methoden der Klasse ICS müssen nur optional mit ICS. qualifiziert werden. Die Klasse ICS muss ausserdem nicht mit |LOAD geladen werden.
| Methode | ICS.+ [n a,n b][n a+b] |
| Beschreibung | Die Methode + addiert die ersten beiden Werte des Stacks und legt das Resultat auf dem Stack ab. |
| Beispiel | |
| Methode | ICS.- [n a,n b][n a-b] |
| Beschreibung | Die Methode - subtrahiert den obersten Wert des Stacks vom zweitobersten Wert des Stacks und legt das Resultat auf dem Stack ab. |
| Beispiel | |
| Methode | ICS.* [n a,n b][n a*b] |
| Beschreibung | Die Methode * multipliziert die ersten beiden Werte des Stacks und legt das Resultat auf dem Stack ab. |
| Beispiel | |
| Methode | ICS./ [n a,n b][n a/b] |
| Beschreibung | Die Methode / dividiert den zweitobersten Wert des Stacks durch den obersten Wert des Stacks und legt das Resultat auf dem Stack ab. |
| Beispiel | |
| Methode | ICS.INC [i a][i a+1] |
| Beschreibung | Erhöht die Zahl <a> auf dem Stack um 1. |
| Beispiel | |
| Methode | ICS.DEC [i a][i a-1] |
| Beschreibung | die Zahl <a> auf dem Stack um 1. |
| Beispiel | |
| Methode | ICS.ROUND [r a,i dez][r a] |
| Beschreibung | Rundet die Zahl <a> auf <dez> Dezimalen. ROUND kann auch mit Stringargument für <dez> aufgerufen werden z.B. 1.567 '1' ROUND. In diesem Fall wird als Resultat ein auf <dez> Dezimalen gerundeter String (hier: '1.6') zurück gegeben. |
| Beispiel | |
| Methode | ICS.FLOOR [r a][r floor(a)] |
| Beschreibung | Rundet die Zahl <a> auf die nächst tiefere ganze Zahl ab. |
| Beispiel | |
| Methode | ICS.CEIL [r a][r ceil(a)] |
| Beschreibung | Rundet die Zahl <a> auf die nächst höhere ganze Zahl auf. |
| Beispiel | |
| Methode | ICS.SQRT [r a][r sqrt(a)] |
| Beschreibung | Berechnet die Wurzel der reellen Zahl <a>. |
| Beispiel | |
| Methode | ICS.POWER [n x, n y][r pow(x,y)] |
| Beschreibung | Berechnet <x> hoch <y>. |
| Beispiel | |
| Methode | ICS.MOD [i x, i y][i x % y] |
| Beschreibung | Berechnet den Module von <x> und <y>, den Rest aus der Division der ganzen Zahlen <x> und <y>. |
| Beispiel | |
| Methode | ICS.SIN [r w][r sin(w)] |
| Beschreibung | Berechnet den Sinus des Winkels <w>. Der Winkel muss in Grad angegeben werden. |
| Beispiel | |
| Methode | ICS.ASIN [r a][r asin(a)] |
| Beschreibung | Berechnet den Arcussinus von <a>. Der Winkel wird in Grad zurückgegeben. |
| Beispiel | |
| Methode | ICS.COS [r w][r sin(w)] |
| Beschreibung | Berechnet den Cosinus des Winkels <w>. Der Winkel muss in Grad angegeben werden. |
| Beispiel | |
| Methode | ICS.ACOS [r a][r asin(a)] |
| Beschreibung | Berechnet den Arcuscosinus von <a>. Der Winkel wird in Grad zurückgegeben. |
| Beispiel | |
| Methode | ICS.TAN [r w][r sin(w)] |
| Beschreibung | Berechnet den Tangens des Winkels <w>. Der Winkel muss in Grad angegeben werden. |
| Beispiel | |
| Methode | ICS.ATAN2 [r y, r x][r atan2(a)] |
| Beschreibung | Berechnet die ATAN2 Funktion. Der Winkel wird in Grad zurückgegeben. |
| Beispiel | |
| Methode | ICS.AND [b x, b y][b (a AND b)] |
| Beschreibung | Boolesche AND-Operation von zwei booleschen Werten <x> und <y>. |
| Beispiel | |
| Methode | ICS.OR [b x, b y][b (a OR b)] |
| Beschreibung | Boolesche OR-Operation von zwei booleschen Werten <x> und <y>. |
| Beispiel | |
| Methode | ICS.XOR [b x, b y][b (a AND b)] |
| Beschreibung | Boolesche XOR-Operation von zwei booleschen Werten <x> und <y>. |
| Beispiel | |
| Methode | ICS.NOT [b x, b y][b (a AND b)] |
| Beschreibung | Boolesche NOT-Operation eines booleschen Wertes <x>. |
| Beispiel | |
| Methode | ICS.INTAND [i x, i y][i (x & y)] |
| Beschreibung | Boolesche Bit-AND-Operation von zwei Integer32 Werten <x> und <y>. |
| Beispiel | |
| Methode | ICS.INTOR [i x, i y][i (x | y)] |
| Beschreibung | Boolesche Bit-OR-Operation von zwei Integer32 Werten <x> und <y>. |
| Beispiel | |
| Methode | ICS.INTXOR [i x, i y][i (x ^ y)] |
| Beschreibung | Boolesche Bit-XOR-Operation von zwei Integer32 Werten <x> und <y>. |
| Beispiel | |
| Methode | ICS.INTSHIFTL [i x, i y][i (x << y)] |
| Beschreibung | Shift Left Operation eines Integer32 Wertes <x> um <y> Bits. |
| Beispiel | |
| Methode | ICS.INTSHIFTR [i x, i y][i (x >> y)] |
| Beschreibung | Shift Right Operation eines Integer32 Wertes <x> um <y> Bits. |
| Beispiel | |
| Methode | ICS.LEN [s str][i länge] |
| Beschreibung | Berechnet die Länge des Strings <str>. Die Länge wird als Integer zurückgegeben. |
| Beispiel | |
| Methode | ICS.EXTRL [s str][s rest,s extract] |
| Beschreibung | Extrahiert aus dem String <str> einen String <extract>. Es wird bis zum ersten Blank oder Komma extrahiert. Der Extraktstring und der Reststring <rest> werden auf dem Stack abgelegt. Falls der Rest die Länge 0 aufweist, wird für den Rest der Wert NULL auf dem Stack abgelegt. |
| Beispiel | |
| Methode | ICS.EXTRL1 [s str][s extract] |
| Beschreibung | Wie EXTRL. Es wird jedoch nur der <extract> geliefert. |
| Beispiel | |
| Methode | ICS.EXTRLS [s str][s rest,s extract] |
| Beschreibung | Wie EXTRL. Als Trennzeichen wird aber nur das Komma berücksichtigt. |
| Beispiel | |
| Methode | ICS.EXTRLN [s str,i n][s rest, s extract] |
| Beschreibung | Extrahiert aus <str> <n> Zeichen und legt den Reststring und den Extraktstring auf dem Stack ab. |
| Beispiel | |
| Methode | ICS.EXTRLN1 [s str,i n][s extract] |
| Beschreibung | Extrahiert aus <str> <n> Zeichen und legt diese als Extraktstring auf dem Stack ab. |
| Beispiel | |
| Methode | ICS.EXTRR [s str][s rest, s extract] |
| Beschreibung | Wie EXTRL mit dem Unterschied, dass von rechts extrahiert wird. |
| Beispiel | |
| Methode | ICS.EXTRR1 [s str][s rest, s extract] |
| Beschreibung | Wie EXTRL1 mit dem Unterschied, dass von rechts extrahiert wird. |
| Beispiel | |
| Methode | ICS.EXTRRN [s str,i n][s rest, s extract] |
| Beschreibung | Wie EXTRLN mit dem Unterschied, dass von rechts extrahiert wird. |
| Beispiel | |
| Methode | ICS.EXTRRN1 [s str,i n][s extract] |
| Beschreibung | EXTRLN1 mit dem Unterschied, dass von rechts extrahiert wird. |
| Beispiel | |
| Methode | ICS.EXTRCHAR [s str,i n][s extract] |
| Beschreibung | Extrahiert das Zeichen des n. Index des Strings. Ist der Index n < 0 order n >= strlen dann wird NULL zurückgegeben. |
| Beispiel | |
| Methode | ICS.APP [s s1, s s2][s str] |
| Beschreibung | Hängt den String <s2> an den String <s1> an und legt das Resultat <str> auf dem Stack ab. |
| Beispiel | |
| Methode | ICS.LOC [s str,s suchstring][s str, i pos] |
| Beschreibung | Sucht <suchstring> in <str>. Falls der <suchstring> in <str> enthalten ist, gibt LOC die Position <pos> des 1. Buchstabens von <suchstring> in <str> zurück. Falls <suchstring> nicht gefunden wird, wird NULL für <pos> zurückgegeben. LOC wird meist zusammen mit EXTRLN1 benutzt. |
| Beispiel | |
| Methode | ICS.LOCR [s str, s suchstring][s str, i pos] |
| Beschreibung | Sucht <suchstring> in <str> von rechts anstatt von links. Falls der <suchstring> in <str> enthalten ist, gibt LOC die Position <pos> des 1. Buchstabens von <suchstring> in <str> zurück. Falls <suchstring> nicht gefunden wird, wird NULL für <pos> zurückgegeben. LOCR wird meist zusammen mit EXTRLN1 benutzt. |
| Beispiel | |
| Methode | ICS.LOCCHAR [s str][s str, pos i] |
| Beschreibung | Wie LOC mit dem Unterschied, dass nach dem 1. Alphazeichen gesucht wird. |
| Beispiel | |
| Methode | ICS.TO_UPPER [s value][s result] |
| Beschreibung | Wandelt den String <value> in einen String mit Grossbuchstaben um. |
| Beispiel | |
| Methode | ICS.TO_LOWER [s value][s result] |
| Beschreibung | Wandelt den String <value> in einen String mit Kleinbuchstaben um. |
| Beispiel | |
| Methode | ICS.TRIM [s value][s result] |
| Beschreibung | Eliminiert Leerzeichen am Anfang und am Ende eines Strings. |
| Beispiel | |
| Methode | ICS.LJUST [* value, i length][s result] |
| Beschreibung | Wandelt das Objekt <value> in einen String um und macht den String <result> linksbündig und mindestens <length> Zeichen lang. |
| Beispiel | |
| Methode | ICS.RJUST [* value, i length][s result] |
| Beschreibung | Wandelt das Objekt <value> in einen String um und macht den String <result> rechtsbündig und mindestens <length> Zeichen lang. |
| Beispiel | |
| Methode | ICS.STARTS_WITH[s value,s prefix][b result] |
| Beschreibung | Prüft ob der String <value> mit dem Prefix <prefix> anfängt. |
| Beispiel | |
| Methode | ICS.ENDS_WITH[s value,s postfix][b result] |
| Beschreibung | Prüft ob der String <value> mit dem Prefix <postfix> endet. |
| Beispiel | |
| Methode | ICS.REPLACE_CHAR[s value,s char1,s char2][s result] |
| Beschreibung | Ersetzt alle Vorkommen des Buchstaben <char1> durch <char2>. |
| Beispiel | |
| Methode | ICS.REPLACE_STRING[s value,s search,s replace][s result] |
| Beschreibung | Ersetzt alle Vorkommen des Strings <search> durch den String <replace>. |
| Beispiel | |
| Methode | ICS.POP [* objekt][] |
| Beschreibung | Vernichtet das oberste Objekt auf dem Stack. |
| Beispiel | |
| Methode | ICS.DUP [* objekt][* objekt,* objekt] |
| Beschreibung | Dupliziert das oberste Objekt auf dem Stack. |
| Beispiel | |
| Methode | ICS.RDUP [* objekt][* objekt,* objekt] |
| Beschreibung | Erzeugt eine zusätzliche Referenz auf das oberste Objekt des Stacks. |
| Beispiel | |
| Methode | ICS.SWAP [* objekt1,* objekt2][* objekt2,* objekt1] |
| Beschreibung | Vertauscht die obersten beiden Elemente des Stacks. |
| Beispiel | |
| Methode | ICS.TO_STRING [* Objekt][s str] |
| Beschreibung | Wandelt das oberste Objekt des Stacks in einen String um. |
| Beispiel | |
| Methode | ICS.TO_REAL [* objekt][s str] |
| Beschreibung | Wandelt das oberste Element des Stacks in einen Real um. Als Inputtyp ist String oder Integer zulässig. |
| Beispiel | |
| Methode | ICS.TO_INT [* objekt][s str] |
| Beschreibung | Wandelt das oberste Objekt des Stacks in einen Integer um. Als Inputtyp ist String oder Real zulässig. Bei reellen Zahlen wird auf die nächtste ganze Zahl gerundet. |
| Beispiel | |
| Methode | ICS.TO_POINT [s string][p punkt] |
| Beschreibung | Wandelt das oberste Element des Stacks in eine Geometrie vom Typ Punkt um. |
| Beispiel | |
| Methode | ICS.CHR [i ascii][s ch] |
| Beschreibung | Wandel den ASCII-Code <ascii> in das entsprechende Zeichen um. |
| Beispiel | |
| Methode | ICS.ASCII [s ch][i ascii] |
| Beschreibung | Berechnet den ASCII-Code des Zeichens <ch>. |
| Beispiel | |
| Methode | ICS.GET_TYPE [* objekt][s type] |
| Beschreibung | Gibt den Typ von <objekt> als String zurück. |
| Beispiel | |
| Methode | ICS.BINSTRING_TO_INT [s string][i a] |
| Beschreibung | Wandelt einen String aus Binärziffern in einen 32-Bit Integer um. |
| Beispiel | |
| Methode | ICS.INT_TO_BINSTRING [i a][s string] |
| Beschreibung | Wandelt einen 32 Bit Integer in einen String aus Binärziffern um. Der String ist immer 32 Zeichen lang. |
| Beispiel | |
| Methode | ICS.HEXSTRING_TO_INT [s string][i a] |
| Beschreibung | Wandelt einen String aus Hexziffern in einen 32-Bit Integer um. Die Hexziffern 'A' - 'F' dürfen als Gross- oder Kleinbuchstaben übergeben werden. |
| Beispiel | |
| Methode | ICS.INT_TO_HEXSTRING [i a][s string] |
| Beschreibung | Wandelt einen 32 Bit Integer in einen String aus Hexziffern um. Die Hexziffern 'A' - 'F' werden immer als Grossbuchstaben zurück gegeben. Der String ist immer 8 Zeichen lang. |
| Beispiel | |
| Methode | ICS.HEXSTRING_TO_REAL [s string][r a] |
| Beschreibung | Wandelt einen String aus Hexziffern in einen 64-Bit Real um. Die Hexziffern 'A' - 'F' dürfen als Gross- oder Kleinbuchstaben übergeben werden. |
| Beispiel | |
| Methode | ICS.REAL_TO_HEXSTRING [r a][s string] |
| Beschreibung | Wandelt einen 64 Bit Real in einen String aus Hexziffern um. Die Hexziffern 'A' - 'F' werden immer als Grossbuchstaben zurück gegeben. Der String ist immer 16 Zeichen lang. |
| Beispiel | |
| Methode | ICS.HEXSTRING_TO_STRING [s string][s string] |
| Beschreibung | Wandelt einen String aus Hexziffern in String um. Die Hexziffern 'A' - 'F' dürfen als Gross- oder Kleinbuchstaben übergeben werden. |
| Beispiel | |
| Methode | ICS.STRING_TO_HEXSTRING [s string][s string] |
| Beschreibung | Wandelt einen String in einen String aus Hexziffern um. Die Hexziffern 'A' - 'F' werden immer als Grossbuchstaben zurück gegeben. |
| Beispiel | |
| Methode | ICS.HEXSTRING_TO_BLOB [s string][B blob] |
| Beschreibung | Wandelt einen String aus Hexziffern in einen BLOB um. Die Hexziffern 'A' - 'F' dürfen als Gross- oder Kleinbuchstaben übergeben werden. |
| Beispiel | |
| Methode | ICS.BLOB_TO_HEXSTRING [B blob][s string] |
| Beschreibung | Wandelt einen BLOB in einen String aus Hexziffern um. Die Hexziffern 'A' - 'F' werden immer als Grossbuchstaben zurück gegeben. |
| Beispiel | |
| Methode | ICS.REAL_TO_DEGREE [r degree][r s, i m, i d] |
| Beschreibung | Wandelt einen Winkel in Grad vom Type
REAL nach Grad, Minuten, Sekunden. |
| Beispiel | |
| Methode | ICS.DEGREE_TO_REAL [i d, i m, r s] [r degree] |
| Beschreibung | Wandelt einen Winkel von Grad,
Minuten, Sekunden nach Grad vom Type
REAL. |
| Beispiel | |
| Methode | ICS.REAL_TO_DEGREE_STRING [r degree][s d.m.s] |
| Beschreibung | Wandelt einen Winkel in Grad vom Type
REAL nach Grad, Minuten, Sekunden vom Typ
STRING. |
| Beispiel | |
| Methode | ICS.DEGREE_STRING_TO_REAL [s d.m.s] [r degree] |
| Beschreibung | Wandelt einen Winkel in Grad,
Minuten, Sekunden vom Typ nach Grad vom Type
REAL . |
| Beispiel | |
| Methode | ICS.VAL [s objektliste][s werteliste] |
| Beschreibung | Wertet eine Objektliste aus und ersetzt die Objekte durch ihre aktuellen Werte. |
| Beispiel | |
| Methode | ICS.VAL2 [s objektliste][s werteliste] |
| Beschreibung | Wertet eine Objektliste aus und ersetzt die Objekte durch ihre aktuellen Werte. Die Auswertung erfolgt analog zum DISPLAY-Befehl. |
| Beispiel | |
| Methode | ICS.REF [s objektname][* objekt] |
| Beschreibung | Liefert eine Referenz auf das Objekt mit Namen <objektname> zurück. |
| Beispiel | |
| Methode | ICS.INDEX [m map,s key][* objekt] |
| Beschreibung | Liefert die Komponente aus <m> mit Namen <key>. Falls die Komponente nicht existiert, wird der Skript abgebrochen. |
| Beispiel | |
| Methode | ICS.EXISTS [s komponentenname][b status] |
| Beschreibung | Gibt TRUE zurück
falls dies Mapkomponente existiert, FALSE
sonst. |
| Beispiel | |
| Methode | ICS.MAPCREATE [][m map] |
| Beschreibung | Erzeugt eine neue (unbenannte) Map <map>. |
| Beispiel | |
| Methode | ICS.MAPRESET [m map][] |
| Beschreibung | Setzt den internen Lesezeiger einer Map zurück (Vorbereitungsmethode für MAPSCAN). |
| Beispiel | |
| Methode | ICS.MAPSCAN [m map][* wert,name s,status b] |
| Beschreibung | Liest die nächste Komponente <name>, <wert> aus der Map <map>. Falls <status> FALSE ist konnte keine Komponente gelesen werden (<wert> und <status> werden in diesem Fall nicht auf den Stack geschoben). |
| Beispiel | |
| Methode | ICS.MAPINS [m map,s komponentenname,* wert][] |
| Beschreibung | Fügt den Wert <wert> in <map> unter dem Komponentennamen <komponentenname> ein. |
| Beispiel | |
| Methode | ICS.MAPREM [m map,s komponentenname][b status] |
| Beschreibung | Löscht den Wert unter dem Komponentennamen <komponentenname>. |
| Beispiel | |
| Methode | ICS.MAPCLEAR [m map][] |
| Beschreibung | Löscht alle Komponenten der Map <map>. |
| Beispiel | |
| Methode | ICS.MAP_IS_EMPTY [m map][b status] |
| Beschreibung | Testet ob die Map <map> keine Komponenten hat. |
| Beispiel | |
| Methode | ICS.MAPCOPY[m map1,m map2][] |
| Beschreibung | Kopiert alle Komponenten der map <map1> in die Map <map2>. Alle ursprünglichen Komponenten der Map <map2> werden gelöscht. |
| Beispiel | |
| Methode | ICS.MAPCOPY2[m map1,m map2][] |
| Beschreibung | Kopiert alle Komponenten der map <map1> in die Map <map2>. Alle ursprünglichen Komponenten der Map <map2> werden nicht gelöscht. |
| Beispiel | |
| Methode | ICS.MAPSORT [m map, b descending][] |
| Beschreibung | Sortiert die Einträge in der Map nach den Komponentennamen. descending = FALSE aufsteigend. descending = TRUE absteigend. |
| Beispiel | |
| Methode | ICS.MAPSWAP [m map][m map] |
| Beschreibung | Kehrt die Abbildung <name> => <wert> einer Map um in <wert> => <name>. Namen werden zu Werte, Werte zu Namen. Die Werte werden in eine String umgewandelt und als Namen eingefügt. Namen werden als String belassen und als Werte eingefügt. Ein DEFAULT-Wert wird beibehalten. |
| Beispiel | |
| Methode | ICS.SET_LABEL[m map,s label][] |
| Beschreibung | Setzt das Label der Map <map>. |
| Beispiel | |
| Methode | ICS.GET_LABEL[m map][s label] |
| Beschreibung | Fragt das Label der Map <map> ab. Falls kein Label gesetzt wurde, wird NULL zurück gegeben. |
| Beispiel | |
| Methode | ICS.CREATE_LIST [][li list] |
| Beschreibung | Erzeuge ein neues Objekt vom Typ list. |
| Beispiel | |
| Methode | ICS.APPEND_TO_LIST [li list, * obj][li result] |
| Beschreibung | Hängt das Objekt <obj> an die Liste <list> an. |
| Beispiel | |
| Methode | ICS.RESET_READ [li list][] |
| Beschreibung | Setzt den internen Lesezeiger zurück (Vorbereitung zu READ_NEXT). |
| Beispiel |
|
| Methode | ICS.READ_NEXT [li list][* obj, b status] |
| Beschreibung | Liest das nächste Objekt <obj> aus der Liste <list>. |
| Beispiel | |
| Methode | ICS.DISP [* objekt][] |
| Beschreibung | Gibt das oberste Element des Stacks auf dem Bildschirm aus. |
| Beispiel | |
| Methode | ICSCPU.DISPLAY_STACK [][] |
| Beschreibung | Gibt den aktuellen Inhalt des Stacks auf den Bildschirm aus. Der Stack wird nicht verändert. |
| Beispiel | |
Für die Speicherung und Bearbeitung von Geometriedaten stellt der Kern den Geometrietyp bereit. Eine Geometrie ist entweder eine Fläche, ein Rand, eine Linie oder ein Punkt. Geometrieen sind hierarchisch aufgebaut. So besteht z.B. eine Fläche aus Rändern (ein äusserer Rand und Löcher innerhalb der Fläche). Ein Rand besteht aus Linien. Eine Linie besteht aus Punkten. In einer Linie können Punkte durch Geraden oder Kreisbögen verbunden werden. Durch Standardmethoden können Geometrieen erzeut, durchsucht oder kopiert werden.
Mit den Methoden SET_GATTR und
GET_GATTR kann pro Geometrieelement ein
Benutzerattribut gesetzt bzw. abgefragt werden.
| Methode | ICS.CREATE_LINE [p p1, p p2][l line] |
| Beschreibung | Erzeugt aus zwei Punkten eine Linie. |
| Beispiel | |
| Methode | ICS.POINTX [p p1][r koord] |
| Beschreibung | Gibt die X-Koordinate eines Punkts zurück (horizontale Achse). |
| Beispiel | |
| Methode | ICS.POINTY [p p1][r koord] |
| Beschreibung | Gibt die Y-Koordinate eines Punkts zurück (vertikale Achse). |
| Beispiel | |
| Methode | ICS.POINTZ [p p1][r koord] |
| Beschreibung | Gibt die Z-Koordinate eines Punkts zurück (Höhe). |
| Beispiel | |
| Methode | ICS.CREATE_ARC [p p1, p p2, p p3][l line] |
| Beschreibung | Erzeugt aus drei Punkten einen Kreisbogen. Der Kreisbogen führt von <p1> via <p2> nach <p3>. |
| Beispiel | |
| Methode | ICS.APPEND_LINE_POINT [l line, p p1][l line] |
| Beschreibung | Hängt einen Punkt an eine Linie an. Die Verbindung zwischen dem letzten Punkt der Linie <l> und dem Punkt <p1> ist eine Gerade. |
| Beispiel | |
| Methode | ICS.APPEND_LINE_ARC [l line, p p1, p p2][l line] |
| Beschreibung | Hängt einen Kreisbogen via <p1>, <p2> an eine Linie an. Als erster Punkt des Kreisbogens wird der letzte Punkt der Linie <l> angenommen. |
| Beispiel | |
| Methode | ICS.CREATE_RAND [l line][r rand] |
| Beschreibung | Erzeugt aus der Linie <line> einen Rand. |
| Beispiel | |
| Methode | ICS.APPEND_RAND_LINE [r rand,l line][r rand] |
| Beschreibung | Hängt an einen Rand eine Linie an. |
| Beispiel | |
| Methode | ICS.CREATE_AREA [r rand][a flaeche] |
| Beschreibung | Erzeugt aus dem Rand eine Fläche. |
| Beispiel | |
| Methode | ICS.APPEND_AREA_RAND [a flaeche, r rand][a flaeche] |
| Beschreibung | Erzeugt eine Insel in einer bestehenden Fläche. |
| Beispiel | |
| Methode | ICS.SET_GATTR [* geometrie, i attr][* geometrie] |
| Beschreibung | Setzt das Geometrieattribut für die Geometrie <geometrie>. |
| Beispiel | |
| Methode | ICS.GET_GATTR [* geometrie][, i attr] |
| Beschreibung | Fragt das Geometrieattribut ab. |
| Beispiel | |
| Methode | ICS.ARCPOINT [p ap, p ep, r radius][p mp, b status] |
| Beschreibung | Berechnet aus einem durch Anfangspunkt <ap>, Endpunkt <ep> und Radius <r> gegebenen Kreisbogen den Mittelpunkt <mp> auf der Peripherie. Falls <status> TRUE ist, konnte die Berechnung erfolgreich durchgeführt werden. |
| Beispiel | |
| Methode | ICS.GEOMRESET [g geom][] |
| Beschreibung | Setzt den internen Lesezeiger der Geometrie <geom> auf die erste Subgeometrie von <geom> (Vorbereitungsmethode für ICS.GEOMSCAN). ICS.GEOMRESET kann nicht auf Punkte angewendet werden. |
| Beispiel | |
| Methode | ICS.GEOMSCAN [g geom][g subgeom, b status] |
| Beschreibung | Liest die nächste Subgeometrie <subgeom> der Geometrie <geom>. Falls keine Subgeometrie mehr existiert, wird als <status> FALSE zurückgeliefert. ICS.GEOMSCAN kann nicht auf Punkte angewendet werden. |
| Beispiel | |
| Methode | ICS.GEOMSCAN_LINEARC [l geom][p p3 , p p2, p p1, i status] |
| Beschreibung | Liest die nächste Linie bzw. den nächsten Kreisbogen einer Liniengeometrie <l>. Bei einer Linie werden die beiden Endpunke (<p1>, <p2>) und bei einem Kreisbogen die Endpunkte (<p1>, <p3>) und ein Stützpunkt <p2> auf der Peripherie zurückgegeben. Der <status> hat folgende Bedeutung: 0: Fehler bzw. keine Linien oder Kreisbögen mehr vorhanden. 1: Es wurde eine Linie gelesen. 2: Es wurde ein Kreisbogen gelesen. |
| Beispiel | |
| Methode | ICS.GEOM_HAS_ARCS [g geom][b status] |
| Beschreibung | Ermittelt ob die Geometrie Kreisbögen
beinhaltet. Wenn die Geometrie Kreisbögen beinhaltet, wird als
status TRUE zurückgegeben,
sonst FALSE . Nur Linien, Flächen und Ränder
können Kreisbögen beinhalten. |
| Beispiel | |
| Methode | ICS.GEOM_HAS_HOLES [g geom][b status] |
| Beschreibung | Ermittelt ob die Geometrie Löcher
beinhaltet. Wenn die Geometrie Löcher beinhaltet, wird als
status TRUE zurückgegeben,
sonst FALSE . Nur Flächen können Löcher
beinhalten. |
| Beispiel | |
| Methode | ICS.GET_POINT_INSIDE [a flaeche][p point] |
| Beschreibung | Berechnet einen Punkt <point> der sicher innerhalb der Fläche <flaeche> liegt. Inseln werden bei der Berechnung berücksichtigt. |
| Beispiel | |
| Methode | ICS.GET_AREA [a flaeche][r flaecheninhalt] |
| Beschreibung | Berechnet den Flächeninhalt der Fläche <flaeche>. Inseln werden bei der Berechnung berücksichtigt. |
| Beispiel | |
| Methode | ICS.IS_INSIDE_AREA [a area, p point][b status] |
| Beschreibung | Berechnet ob ein Punkt innerhalb einer Fläche liegt. Falls ja gibt die Methode das Argument TRUE zurück. Falls nein gibt die Methode das Argument FALSE zurück. |
| Beispiel | |
| Methode | ICS.IS_INSIDE_FENCE [a fence, b overlap, g geom][b status] |
| Beschreibung | Berechnet ob eine Geometrie innerhalb
eines Fences liegt. Falls ja gibt die Methode das Argument
TRUE zurück. Falls nein, gibt die Methode das
Argument FALSE zurück. Der Fence muss eine
Fläche sein. Die Geometrie kann ein Punkt, eine Linie oder eine
Fläche sein. Mit overlap kann bestimmt werden,
ob die Berechnung im Modus overlap oder inside ausgeführt werden
soll. Kreisbögen werden berücksichtigt. Löcher in der Fläche des
Fence oder in der Fläche einer Geometrie werden berücksichtigt.
Bei der Berechnung von Flächen als Geometrie wird die Flächen
getestet und nicht nur die Begrenzungslinien der Fläche. Das
heisst zum Beispiel beim Modus overlap, dass
eine Fläche die den Fence umfasst, innerhalb des Fences ist. Die
Begrenzungslinien des Fences gehören ebenfalls zum Fence. Das
heisst zum Beispiel, dass ein Punkt der auf der Begrenzungslinie
des Fences liegt, innerhalb des Fences ist. |
| Beispiel | |
| Methode | ICS.IS_INSIDE_FENCE_AND_BORDER [a fence, b overlap, g geom][b status] |
| Beschreibung | Analog zur Methode
ICS.IS_INSIDE_FENCE mit dem Unterschied, dass
die Begrenzungslinien des Fences nicht zum Fence gehören. Das
heisst zum Beispiel, dass ein Punkt der auf der Begrenzungslinie
des Fences liegt, nicht innerhalb des Fences ist. |
| Beispiel | |
| Methode | ICS.FENCE_CUT [a fence, g geom][li list of geometries, b status] |
| Beschreibung | Berechnet die Verschneidung einer
Geometrie mit einem Fence. Der Fence muss eine Geometrie vom Typ
area sein. Die Geometrie kann vom Typ
point, line oder
area sein. Ist die ganze Geometrie ausserhalb
des Fences, so wird der status mit
FALSE ohne Liste zurückgegeben. Ist die ganze
Geometrie oder Teile der Geometrie innerhalb des Fence, so wird
der status mit TRUE und die
Teilgeometrien in einer Liste list
zurückgegeben. Die Geometrien werden immer als Liste
zurückgegeben, auch wenn die ganze Geometrie innerhalb des Fence
liegt. |
| Beispiel | |
| Methode | ICS.GEOMMOVE [g geom, p vector][g geom] |
| Beschreibung | Verschiebt eine Geometrie um einen Vektor. |
| Beispiel | |
| Methode | ICS.GEOMSCALE [g geom, r scale][g geom] |
| Beschreibung | Skaliert eine Geometrie um den Nullpunkt. |
| Beispiel | |
| Methode | ICS.GEOMSCALE2 [g geom, p point, r scale][g geom] |
| Beschreibung | Skaliert eine Geometrie um den Punkt
point. |
| Beispiel | |
| Methode | ICS.GEOMROT [g geom, r rot][g geom] |
| Beschreibung | Rotiert eine Geometrie um den Nullpunkt. |
| Beispiel | |
| Methode | ICS.GEOMROT2 [g geom, p point, r rot][g geom] |
| Beschreibung | Rotiert eine Geometrie um den Punkt
point. |
| Beispiel | |
| Methode | ICS.STROKE [g geom, r tolerance][g geom] |
| Beschreibung | Löst alle Kreisbögen in einer Geometrie in Liniensegmente auf. Ein Kreisbogen wird gleichmässig in Liniensegemente aufgelöst, bis die Toleranz unterschritten ist. tolerance > 0.0 : Die Toleranz ergibt sich aus dem Verhältnis der Pfeilhöhe zum Radius eines Kreisbogens. tolerance = 0.0 : Der Kreisbogen wird in den Anfangs- und Endpunkt und dem Punkt auf dem Kreisbogen aufgelöst. tolerance < 0.0 : Die Toleranz ist ein absoluter Wert in Meter, der die maximale Pfeilhöhe definiert. |
| Beispiel | |
| Methode | ICS.GET_LENGTH [l line][r length] |
| Beschreibung | Berechnet die Länge einer Linie. Die Linie kann Lines oder Arcs beinhalten. Die Länge wird nur planar -x/y- berechnet. Falls die Länge nicht berechnet werden kann, gibt die Methode NULL zurück. |
| Beispiel | |
| Methode | ICS.GET_LENGTH2 [g geometry][r length] |
| Beschreibung | Berechnet die Länge eines Punktes, Linie oder Fläche. Bei einem Punkt ist die Länge=0.0. Bei einer Fläche entspricht das Resultat der Summe der Längen aller Ränder. Linienelement können Lines oder Arcs beinhalten. Die Länge wird nur planar -x/y- berechnet. Falls die Länge nicht berechnet werden kann, gibt die Methode NULL zurück. |
| Beispiel | |
| Methode | ICS.GET_ARC_CENTER [l arc][p point] |
| Beschreibung | Berechnet den Zentrumspunkt eines Kreisbogens. Falls die Geometrie kein Arc ist, wird NULL zurückgegeben. |
| Beispiel | |
| Methode | ICS.GET_ARC_RADIUS [l arc][r radius] |
| Beschreibung | Berechnet den Bogenradius eines Kreisbogens. Falls die Geometrie kein Arc ist, wird NULL zurückgegeben. |
| Beispiel | |
| Methode | ICS.CALC_POINT_AT [l line, r distance][r orientation, p point] |
| Beschreibung | Berechnet einen Punkt und die Richtung am Punkt entlang einer Linie vom Anfangspunkt mit der Distanz. Die Linie kann Lines oder Arcs beinhalten. Der Punkt wird nur planar -x/y- berechnet. Falls die Distanz länger als die Linienlänge ist, wird der letzte Punkt der Linie mit seiner Orientierung zurückgegeben.. Falls keine Berechnung durchgeführt werden kann, werden die Werte als NULL zurückgegeben. |
| Beispiel | |
| Methode | ICS.CALC_POINT_AT2 [l line, r distance, r cross][r orientation, p point] |
| Beschreibung | Berechnet einen Punkt und die Richtung am Punkt entlang einer Linie vom Anfangspunkt mit der Distanz und der Querdistanz. Die Linie kann Lines oder Arcs beinhalten. Der Punkt wird nur planar -x/y- berechnet. Eine positive Querdistanz bedeutet rechts in Richtung der Linie. Eine negative Querdistanz bedeutet links in Richtung der Linie. Falls die Distanz länger als die Linienlänge ist, wird der letzte Punkt der Linie mit seiner Orientierung für die Berechnung herangezogen. Falls keine Berechnung durchgeführt werden kann, werden die Werte als NULL zurückgegeben. |
| Beispiel | |
| Methode | ICS.PROJECT_POINT [l line, p point][r orientation, p point] |
| Beschreibung | Projiziert die kürzeste Distanz eines Punktes auf eine Linie und berechnet den Linienpunkt auf der Linie und dessen Richtung. Ergeben sich mehrere Lösungen mit denselben kürzesten Distanzen, so wird derjenige Linienpunkt berücksichtigt, der die kürzeste Distanz auf der Linie vom Anfangspunkt der Linie aufweist. Der Linienpunkt wird nur planar -x/y- berechnet. |
| Beispiel | |
| Methode | ICS.PROJECT_POINT2 [l line, p point][r distance, r length, r orientation, p point] |
| Beschreibung | Wie ICS.PROJECT_POINT. Zusätzlich werden als Argumente die Länge (Stationierung) auf der Linie bis zum Linienpunkt und der Querabstand vom Punkt zum Linienpunkt zurückgegeben. Eine positive Querdistanz bedeutet rechts in Richtung der Linie. Eine negative Querdistanz bedeutet links in Richtung der Linie. |
| Beispiel | |
| Methode | ICS.PROJECT_POINT_PERPENDICULAR [l line, p point][r orientation, p point, b status] |
| Beschreibung | Projiziert einen Punkt als Lot rechtwinklig auf eine Linie und berechnet den Linienpunkt auf der Linie und dessen Richtung. Ergeben sich mehrere Lösungen mit denselben kürzesten Distanzen vom Punkt zum Linienpunkt, so wird derjenige Linienpunkt berücksichtigt, der die kürzeste Distanz auf der Linie vom Anfangspunkt der Linie aufweist. Der Linienpunkt wird nur planar -x/y- berechnet. Falls der Linienpunkt nicht berechnet werden kann, gibt die Methode nur den Status FALSE zurück. |
| Beispiel | |
| Methode | ICS.PROJECT_POINT_PERPENDICULAR2 [l line, p point][r distance, r length, r orientation, p point, b status] |
| Beschreibung | Wie ICS.PROJECT_POINT_PERPENDICUALR. Zusätzlich werden als Argumente die Länge (Stationierung) auf der Linie bis zum Linienpunkt und der Querabstand vom Punkt zum Linienpunkt zurückgegeben. Eine positive Querdistanz bedeutet rechts in Richtung der Linie. Eine negative Querdistanz bedeutet links in Richtung der Linie. Falls der Linienpunkt nicht berechnet werden kann, gibt die Methode nur den Status FALSE zurück. |
| Beispiel | |
| Methode | ICS.PROJECT_GEOM [g geometry1, g geometry2][r distance, p point2, p point1] |
| Beschreibung | Projiziert die kürzeste Distanz einer
Geometrie 1 auf eine Geometrie2. Geometrien könne vom Typ
point, line oder
area sein. Die Methode liefert die kürzeste
Distanz , den Punkt 1 auf der Geometrie 1 und den Punkt 2 auf der
Geometrie. Der Berechnung erfolgt nur planar -x/y. Achtung: Wenn
ein Kreisbogen der Geometrie 1 zu einem Kreisbogen der Geometrie 2
die kürzeste Distanz ergibt, so ist die Berechnung ungenau. Der
Kreisbogenpunkt der einen Geometrie wird jeweils auf den
Kreisbogen der anderen Geometrie projiziert. |
| Beispiel | |
| Methode | ICS.GET_LINE_START_END_POINT [l line][p endpoint , p startpoint] |
| Beschreibung | Liefert zu einer Linie den Start-und Endpunkt der Linie. |
| Beispiel | |
| Methode | ICS.GET_LINE_START_END_TANGENT_ANGLE [l line][r endangle , r startangle] |
| Beschreibung | Liefert zu einer Linie den Start-und Endtangentwinkel der Linie. |
| Beispiel | |
| Methode | ICS.COPY_LINE_PARALLEL [l line, r distance, s join, r miterlimit][l line] |
| Beschreibung | Kopiert eine Linie parallel um eine
Distanz. Ein positiver Wert für distance
bedeutet ein Kopieren rechts in Richtung der Linie. Ein negativer
Wert für distance bedeutet ein Kopieren links in Richtung der
Linie. Mit join wird der Verbindungstyp der
Teilsegmente der kopierten Linie bestimmt. Mit
join='bevel' werden die Teilsegmente mit einer
Linie verbunden. Mit join='miter' werden die
Teilsegmente verlängert, bis sie sich kreuzen, oder bis der Wert
von miterlimit erreicht ist. Mit
join='round' werden die Teilsegmente mit einem
Kreisbogen verbunden. |
| Beispiel | |
| Methode | ICS.COPY_AREA_BOUNDARY_PARALLEL [a area, r distance, s join, r miterlimit][a area] |
| Beschreibung | Kopiert die Flächenbegrenzungslinien
eine Fläche parallel um eine Distanz . Sind die
Fächenbegrenzungslinien im Uhrzeigersinn gerichtet, so bedeutet
ein positiver Wert für distance ein Kopieren
nach innen der Fläche, ein negativer Wert für
distance ein Kopieren nach aussen der Fläche.
Sind die Fächenbegrenzungslinien gegen den Uhrzeigersinn
gerichtet, so bedeutet ein positiver Wert für
distance ein Kopieren nach aussen der Fläche,
ein negativer Wert für distance ein Kopieren
nach innen der Fläche. Die gewünschte Richtung den
Fächenbegrenzungslinien kann mit den Methoden
ICS.SET_AREA_CLOCKWISE und
ICS.SET_AREA_ANTICLOCKWISE gesetzt werden. Mit
join wird der Verbindungstyp der Teilsegmente
der kopierten Linie bestimmt. Mit join='bevel'
werden die Teilsegmente mit einer Linie verbunden. Mit
join='miter' werden die Teilsegmente
verlängert, bis sie sich kreuzen, oder bis der Wert von
miterlimit erreicht ist. Mit
join='round' werden die Teilsegmente mit einem
Kreisbogen verbunden. |
| Beispiel | |
| Methode | ICS.CREATE_AREA_FROM_LINE[l line, r distance, s join, r miterlimit, s caps][a area] |
| Beschreibung | Erzeugt einen Linienbuffer (Fläche) um eine Linie durch das parallele Kopieren der Linie nach links und rechts und der Verbindung der kopierten Linien zu einer Fläche. Der Wert für distance gibt die Distanz zum parallelen Kopieren der Linien für die Fläche. Mit Join wird der Verbindungstyp der Teilsegmente der kopierten Linien bestimmt. Mit Join='bevel' werden die Teilsegmente mit einer Linie verbunden. Mit Join='miter' werden die Teilsegmente verlängert, bis sie sich kreuzen, oder bis der Wert von miterlimit erreicht ist. Mit Join='round' werden die Teilsegmente mit einem Kreisbogen verbunden. Mit Caps wird der Verbindungstyp an den Enden der kopierten Linien bestimmt. Mit Caps='bevel' werden die Enden mit einer Linie verbunden. Mit Caps='round' werden die Enden mit einem Kreisbogen verbunden. |
| Beispiel | |
| Methode | ICS.EXTRACT_LINE_SEGMENT[l line, r distance, r length][l line] |
| Beschreibung | Extrahiert aus einer Linie ein Liniensegment ab der Distanz vom Startpunkt und mit der Länge . |
| Beispiel | |
| Methode | ICS.EXTRACT_LINE_PATTERN_SEGMENT[l line, s pattern][li geometry-list] |
| Beschreibung | Extrahiert aus einer Linie entsprechend dem Pattern Liniensegmente und gibt diese Geometrien in einer Liste zurück. Der 1. Eintrag im Pattern definiert die Länge des 1. Liniensegmentes. Der 2. Eintrag im Pattern definiert die Distanz vom Ende des 1. zum Anfang des 2. Lininesegment. Der 3. Eintrag im Pattern definiert die Länge des 2. Liniensegmentes. Der 4. Eintrag im Pattern definiert die Distanz vom Ende des 2. zum Anfang des 3. Lininesegment. Und so weiter bis zum Ende des Patterns, danach wiederholt sich das Pattern. |
| Beispiel | |
| Methode | ICS.EXTRACT_LINE_PATTERN_POINTS [l line, s pattern, b rot][li geometry-list] |
| Beschreibung | Extrahiert aus einer Linie entsprechend dem Pattern Punkte und gibt diese Punkte in einer Liste zurück. Mit dem Boolean rot kann definiert werden, ob dir Rotation auf der Linie für einen Punkt in der z-Koordinate des Punktes zurückgegeben serden soll. Der 1. Eintrag im Pattern definiert die Länge bis zum 1. Punkt. Der 2. Eintrag im Pattern definiert die Länge vom vorherigen bis zum 2. Punkt. Der 3. Eintrag im Pattern definiert die Länge vom vorherigen bis zum 4. Punkt. Und so weiter bis zum Ende des Patterns, danach wiederholt sich das Pattern. |
| Beispiel | |
| Methode | ICS.LINEARCS_TO_BEZIER [l line][li list] |
| Beschreibung | Approximiert Kreisbögen in einem Linienzug zu Bezier Kurven. Es wird eine Liste von Segmenten zurückgegeben. Ein Segment kann aus einer Geraden oder einer Bezier Kurve bestehen. Eine Gerade besteht aus einer Liste von 2 Punkten. Eine Bezier Kurve besteht aus einer Liste von 4 Stützpunkten. Der letzte Punkt eines Segmentes ist gleich dem ersten Punkt des nächsten Segmentes. Kreisbögen können in mehrer Bezier Kurven approximiert werden. Bezier Kurven werden zum Beispiel bei der Definition von Charctern/Symbolen in Fonts verwendet. |
| Beispiel | |
| Methode | ICS.ARC_CIRCLE_PREPARE [l arc, r sweep-angle-limit][l line, b status] |
| Beschreibung | Eine Geometrie die exakt ein
Arc-Segment enthält und fast einen Vollkreis bildet, wird in einen
Linienzug mit zwei Arc-Segmenten umgewandelt. Mit
sweep-angle-limit kann die Limite gesetzt
werden. Überschreitet der Sweep-Winkel des Kreisbogens diese
Limite, wird die Verarbeitung durchgeführt und die neue Geometrie
wird zusammen mit dem status TRUE
zurückgegeben. Diese Methode kann angewendet werden, wenn
Kreisbögen in Systeme geschrieben werden sollen, die Probleme mit
Kreisbögen haben die fast einen Vollkreis bilden. |
| Beispiel | |
| Methode | ICS.HATCH_AREA [a area, s type, p origin, r angle , r space][li geometry-list] |
| Beschreibung | Schraffiert eine Fläche und gibt die
Schraffurlinien als Liste von Linien-Geometrien zurück. Mit
type wird der Schraffurtype definiert. Falls
der Schraffurtype NULL oder unbekannt ist, gilt
Type='absolute'. Mit type 'absolute'
wird absolut vom Origin mit dem Winkel
angle und der Distanz space
schraffiert. Mit type 'relative' wird relativ
zur längsten Begrenzunglinie der Fläche vom
origin mit dem Winkel angle
und der Distanz space schraffiert.
origin definiert den Schraffurursprung. Falls
origin
ist gilt der
origin 0.0/0.0. angle
definiert den Schraffurwinkel. space definiert
die Schraffurdistanz zwischen den Linien. |
| Beispiel | |
| Methode | ICS.CROSSHATCH_AREA [a area, s type, p origin, r angle , r space, r angle2 , r space2][li geometry-list] |
| Beschreibung | Analog wie
ICS.HATCH_AREA mit 2 zusätzlichen Argumenten
angle2 und space2 , mit
denen die Kreuzschraffur analog den Argumenten
angle und space definiert
wird. |
| Beispiel | |
| Methode | ICS.PATTERN_AREA [a area, s type, p origin, r angle , r space-vertical, r offset][li geometry-list] |
| Beschreibung | Pattert eine Fläche und gibt die
Pattern-Punkte als Liste von Punkt-Geometrien zurück. Mit
type wird der Patterntype definiert. Falls der
Patterntype NULL oder unbekannt ist, gilt
type 'absolute'. Mit type
'absolute' wird absolut vom origin
mit dem Winkel angle und der Distanz
space gepattert. Mit type
'relative' wird relativ zur längsten Begrenzunglinie der
Fläche vom Origin mit dem Winkel angle und der
Distanz space gepattertt.
origin definiert den Patternursprung. Falls
origin NULL ist gilt der origin
0.0/0.0. angle definiert der
Patternwinkel.
space-vertical definiert die
vertikale Patterndistanz zwischen den Punkten.
offset definiert den horizontalen Offset eines
Punktes auf jeder zweiten Pattern-Linie, relativ zum
Patternwinkel. |
| Beispiel | |
| Methode | ICS.PATTERN_AREA2 [a area, s type, p origin, r angle , r space-vertical , r space-horizontal, r offset, b random][li geometry-list] |
| Beschreibung | Analog wie
ICS.PATTERN_AREA mit 2 zusätzlichen Argumenten
space-horizontal und random.
space-horizontal definiert
die horizontale Patterndistanz zwischen den Punkten.
random definiert, dass der Punkt zuffällig um den
berechneten Punkt ermittelt werden soll. |
| Beispiel | |
| Methode | ICS.SET_AREA_CLOCKWISE [a area][a area] |
| Beschreibung | Setzt den Drehsinn der Geometrien des äusseren Randes einer Fläche auf den Uhrzeigersinn. Setzt den Drehsinn der Geometrien der Ränder von Inseln der Fläche auf den Gegenuhrzeigersinn. |
| Beispiel | |
| Methode | ICS.SET_AREA_ANTICLOCKWISE [a area][a area] |
| Beschreibung | Setzt den Drehsinn der Geometrien des äusseren Randes einer Fläche auf den Gegenuhrzeigersinn. Setzt den Drehsinn der Geometrien der Ränder von Inseln der Fläche auf den Uhrzeigersinn. |
| Beispiel | |
| Methode | ICS.GEOM_CLEAN [g geometry][g|li geometry or list, b status] |
| Beschreibung | Bereinigt eine Geometrie. Der Input
kann ein Punkt, eine Linie oder eine Fläche sein. Die Anwendung
der Methode ist zum Beispiel notwendig, wenn Geometrien in ein
Geometrie-restrikives System geschrieben werden. Zum Beispiel zur
Elimination von doppelten Punkten in einem Linienzug. Die Methode
gibt einen Status zurück, ob die Geometrie berinigt wurde oder
nicht. Status = FALSE , die Geometrie wurde
nicht bereinigt, Status = TRUE, die Geometrie
wurde bereinigt, die bereinigte Geometrie wird zusätzlich
zrückgegeben. Die bereinigte Geometrie kann eine Geometrie, eine
Liste von Geometrien oder NULL sein. Bei der
Bereinigung erfolgt keine Umwandlung des Typs der Geometrie. Zum
Beispiel wird eine nicht geschlossene Fläche nicht in eine Linie
umgewandelt. Die Methode legt in der Map
GEOM_CLEAN_STATUS Informationen über die
Bereiningung der Geometrie ab. Mit
ICS.GEOM_CLEAN_SYSTEM_SET kann das System
definiert werden, nach dessen Krtiterien die Geometrie bereinigt
werden soll . Mit ICS.GEOM_CLEAN_RESOLUTION_SET
kann die Auflösung für die Bereiningung definiert werden. Zur
funktionsweise siehe dazu mehr im Appendix. |
| Beispiel | |
| Methode | ICS.GEOM_CLEAN_SYSTEM_SET [s system][] |
| Beschreibung | Setzt für die Methode
ICS.GEOM_CLEAN das System, nach dessen
Kriterien die Geometrie bereiningt werden soll. Werte sind
ORACLE oder ESRI. |
| Beispiel | |
| Methode | ICS.GEOM_CLEAN_RESOLUTION_SET [r resolution][] |
| Beschreibung | Setzt für die Methode
ICS.GEOM_CLEAN die Auflösung für die
Bereinigung der Geometrie. Der Default ist 0.001. |
| Beispiel | |
| Methode | ICS.GEOM_CLEAN_STATUS_DESCR_GET [i status][s description] |
| Beschreibung | Die Methode
ICS.GEOM_CLEAN legt in der Map
GEOM_CLEAN_STATUS Informationen über die
Bereiningung der Geometrie ab. Die Map beinhaltet diverse
Status-Codes mit jeweils einer Liste von Geometrien, die
Bereinigungen betreffen. Mit dieser Funktion kann die Beschreibung
zu einem Status ermittelt werden. |
| Beispiel | |
| Methode | ICS.LINE_INTERSECTION [l line1, l line2][li list of points, b status] |
| Beschreibung | Berechnet den Linienverschnitt zweier
Linien. Konnten Punkte berechnet werden, bringt die Methode den
Status TRUE und einen Liste der Punkte zurück.
Konnten keine Punkte berechnet werden, bringt die Methode den
Status FALSE ohne Liste zurück. Die Liste der
Punkte beinhaltet Punkte, in denen beide Input-Linien sich
schneiden oder berühren. |
| Beispiel | |
| Methode | ICS.AREA_INTERSECTION [a area1, a area2][li list of areas, b status] |
| Beschreibung | Berechnet den Flächenverschnitt
zweier Flächen mit dem boolschen Operator AND. Konnten Flächen
berechnet werden, bringt die Methode den Status
TRUE und einen Liste der Flächen zurück.
Konnten keine Flächen berechnet werden, bringt die Methode den
Status FALSE ohne Liste zurück. Die Liste der
Flächen beinhaltet Flächen, in denen beide Input-Flächen
vorkommen. |
| Beispiel | |
| Methode | ICS.AREA_DIFFERENCE [a area1, a area2][li list of areas, b status] |
| Beschreibung | Berechnet den Flächenverschnitt
zweier Flächen mit dem boolschen Operator XOR. Konnten Flächen
berechnet werden, bringt die Methode den Status
TRUE und einen Liste der Flächen zurück.
Konnten keine Flächen berechnet werden, bringt die Methode den
Status FALSE ohne Liste zurück. Die Liste der
Flächen beinhaltet Flächen, in denen jeweils nur eine der beiden
Input-Flächen vorkommt. |
| Beispiel | |
| Methode | ICS.AREA_UNION [a area1, a area2][li list of areas, b status] |
| Beschreibung | Berechnet den Flächenverschnitt
zweier Flächen mit dem boolschen Operator OR. Konnten Flächen
berechnet werden, bringt die Methode den Status
TRUE und einen Liste der Flächen zurück.
Konnten keine Flächen berechnet werden, bringt die Methode den
Status FALSE ohne Liste zurück. Die Liste der
Flächen beinhaltet Flächen, in denen eine oder beide der
Input-Flächen vorkommen. Eine erfolgreiche Berechnung ergibt immer
nur eine Fläche. Diese Fläche wird wie in den anderen boolschen
Flächenverschnitten in einer Liste zurückgegeben. |
| Beispiel | |
| Methode | ICS.GET_AREA_LINE_LIST [a area][li list] |
| Beschreibung | Liest alle Linien aller Ränder einer Fläche und bringt diese Linien als Liste zurück. |
| Beispiel | |
| Methode | ICS.CALC_BOUNDING_BOX [g geometrie][p pointmax, p pointmin] |
| Beschreibung | Berechnet zu einer Geometrie point, line oder area die maximale 2D-Ausdehung. Die Methode liefert auf dem Stack die minimalen ind maximalen Koordinaten der Ausdehnung je als point. |
| Beispiel | |
| Methode | ICS.CALC_BOUNDING_BOX3D [g geometrie][p pointmax, p pointmin] |
| Beschreibung | Berechnet zu einer Geometrie point, line oder area die maximale 3D-Ausdehung. Die Methode liefert auf dem Stack die minimalen ind maximalen Koordinaten der Ausdehnung je als point. |
| Beispiel | |
| Methode | ICS.VADD [g geometrie, p vector][g geometrie] |
| Beschreibung | Verschiebt eine Geometrie um einen Vektor. |
| Beispiel | |
| Methode | ICS.VDIFF [p point1, p point2][p vector] |
| Beschreibung | Berechnet den Vektor als Punkt von
point2 zu point1. |
| Beispiel | |
| Methode | ICS.VSCAL [g geometrie, r scale][g geometrie] |
| Beschreibung | Skaliert eine Geometrie um den Nullpunkt. |
| Beispiel | |
| Methode | ICS.AZI [g point|line][r azimut] |
| Beschreibung | Berechnet für einen Punkt oder eine Linie das Azimut. Bei einem Punkt relativ zum Nullpunkt. Bei einer Linien vom Endpunkt zum Startpunkt. |
| Beispiel | |
| Methode | ICS.GEOMSET2D [g geometrie][g geometrie] |
| Beschreibung | Transferiert eine 3D-Geometrie in eine 2D-Geometrie. Ist die Geometrie bereits eine 2D-Geometrie, bleibt diese unverändert. |
| Beispiel | |
| Methode | ICS.GEOMSET3D [g geometrie, r z, b zkeep][g geometrie] |
| Beschreibung | Transferiert eine 2D-Geometrie in
eine 3D-Geometrie mit der Z-Koordinate z. Ist
die Geometrie bereits eine 3D-Geometrie, so kann mit
zkeep=TRUE definiert werden, dass die
z-Koordinate beibehalten wird, oder mit
zkeep=FALSE, dass die z-Koordinate mit
z überschrieben wird |
| Beispiel | |
| Methode | ICS.GEOMIS2D [g geometrie][b is2D] |
| Beschreibung | Ermittelt ob alle Punkte einer Geometrie 2D-Koordinaten aufweisen. Das heisst auch, es kommen keine 3D-Koordinaten vor. |
| Beispiel | |
| Methode | ICS.GEOMIS3D [g geometrie][b is3D] |
| Beschreibung | Ermittelt ob alle Punkte einer Geometrie 3D-Koordinaten aufweisen. |
| Beispiel | |
| Methode | ICS.GET_TIME [][i <HHMMSS>] |
| Beschreibung | Liefert die aktuelle Systemzeit im Format HHMMSS als Integer. |
| Beispiel | |
| Methode | ICS.GET_DATE [][i <YYYYMMDD>] |
| Beschreibung | Liefert das aktuelle Systemdatum im Format YYYYMMDD als Integer . |
| Beispiel | |
| Methode | ICS.GET_DAYNAME [s <language>][s <day>] |
| Beschreibung | Liefert den Namen des Tages des
aktuellen Systemdatum. Als <language>
werden folgende Codes unterstützt: DE|FR|IT|EN
. |
| Beispiel | |
| Methode | ICS.INT_TO_DAYNAME [i <day>,s <language>][s <day>] |
| Beschreibung | Konvertiert einen Tag als Integer in
den Namen des Tages. Als <day> als Integer werden folgende
Werte berücksichtigt 0..6 (Sonntag..Samstag). Als
<language> werden folgende Codes
unterstützt: DE|FR|IT|EN . |
| Beispiel | |
| Methode | ICS.GET_MONTHNAME [s <language>][s <month>] |
| Beschreibung | Liefert den Namen des Monats des
aktuellen Systemdatum. Als <language>
werden folgende Codes unterstützt: DE|FR|IT|EN
. |
| Beispiel | |
| Methode | ICS.INT_TO_MONTHNAME [i <month>,s <language>][s <month>] |
| Beschreibung | Konvertiert einen Monat als Integer
in den Namen des Monats. Als <month> als Integer werden
folgende Werte berücksichtigt 1..12 (Januar..Dezember). Als
<language> werden folgende Codes
unterstützt: DE|FR|IT|EN . |
| Beispiel | |
| Methode | ICS.GET_SECONDS [][i <seconds>] |
| Beschreibung | Liefert die Sekunden seit dem Datum 1.1.1970 . |
| Beispiel | |
| Methode | ICS.SECONDS_TO_HOURS [i <seconds>][i <HHMMSS>] |
| Beschreibung | Rechnet Sekunden in Stunden im Format HHMMSS als Integer um. |
| Beispiel | |
| Methode | ICS.HOURS_TO_SECONDS [i <HHMMSS>][i <seconds>] |
| Beschreibung | Rechnet Stunden im Format HHMMSS als Integer in Sekunden um. |
| Beispiel | |
| Methode | ICS.DATE_DIFF [i <YYYYMMDD>, i <YYYYMMDD>][i <days>] |
| Beschreibung | Berechnet die Anzahl Tage zwischen zwei Dati im Format YYYYMMDD als Integer. |
| Beispiel | |
| Methode | ICS.TIME_DIFF [i <HHMMSS>, i <HHMMSS>][i <HHMMSS>] |
| Beschreibung | Berechnet die Zeit zwischen zwei Zeiten. Alle Zeiten im Format HHMMSS als Integer. |
| Beispiel | |
| Methode | ICS.DATE_TIME_DIFF [i <YYYYMMDD> i <HHMMSS>, i <YYYYMMDD> i <HHMMSS>][i <HHMMSS>] |
| Beschreibung | Berechnet die Zeit zwischen zwei Dati mit Zeiten. Alle Dati im Format YYYYMMDD als Integer.. Alle Zeiten im Format HHMMSS als Integer. |
| Beispiel | |
| Methode | ICS.TIME_ADD [i <HHMMSS>, i <HHMMSS>][i <HHMMSS>] |
| Beschreibung | Addiert zwei Zeiten. Alle Zeiten im Format HHMMSS als Integer. |
| Beispiel | |
| Methode | ICS.TIME_MINUS [i <HHMMSS>, i <HHMMSS>][i <HHMMSS>] |
| Beschreibung | Subtrahiert zwei Zeiten. Alle Zeiten im Format HHMMSS als Integer. |
| Beispiel | |
| Methode | ICS.SECONDS_TO_DATE_TIME [i <seconds>][i <HHMMSS>, i <YYYYMMSS>] |
| Beschreibung | Konvertiert Sekunden in ein Datum im
Format YYYYMMDD als Integer und in eine Zeit im Format HHMMSS als
Integer. Die Sekunden entsprechen den Anzahl Sekunden seit dem
1.1.1970 ermittelt mit ICS.GET_SECONDS
. |
| Beispiel | |
| Methode | ICS.DATE_TIME_TO_SECONDS [i <YYYYMMSS>, i <HHMMSS>][i <seconds>] |
| Beschreibung | Konvertiert ein Datum im Format
YYYYMMDD als Integer und eine Zeit im Format HHMMSS als Integer in
Sekunden. Die Sekunden entsprechen den Anzahl Sekunden seit dem
1.1.1970 ermittelt wie mit
ICS.GET_SECONDS. |
| Beispiel | |
| Methode | ICS.TIME_TO_STRING [i <HHMMSS>][s <HH.MM.SS>] |
| Beschreibung | Konvertiert eine Zeit im Format HHMMSS als Integer in einen String im Format 'HH:MM:SS'. |
| Beispiel | |
| Methode | ICS.STRING_TO_TIME [s <'HH:MM:SS'>][i <HHMMSS>] |
| Beschreibung | Konvertiert eine Zeit im Format 'HH:MM:SS' als String in einen Integer im Format HHMMSS. |
| Beispiel | |
| Methode | ICS.DATE_TO_STRING [i <YYYYMMSS>][s <DD.MM.YYYY>] |
| Beschreibung | Konvertiert ein Datum im Format YYYYMMDD als Integer in einen String im Format 'DD.MM.YYYY'. |
| Beispiel | |
| Methode | ICS.STRING_TO_DATE [s <'DD.MM.YYYY'>][i <YYYYMMDD>] |
| Beschreibung | Konvertiert ein dATUM im Format 'DD.MM.YYYYY' als String in einen Integer im Format YYYYMMDD. |
| Beispiel | |
| Methode | ICS.DATE_TO_STRING2 [i <YYYYMMSS> s <language>][s <DD. month YYYY>] |
| Beschreibung | Konvertiert ein Datum im Format
YYYYMMDD als Integer in einen String im Format 'DD. month YYYY'.
Als <language> werden folgende Codes
unterstützt: DE|FR|IT|EN |
| Beispiel | |
| Methode | ICS.HALT [][] |
| Beschreibung | Bricht die Ausführung des aktuellen Skripts sofort ab. |
| Beispiel | |
| Methode | ICS.CALL [s prozedurname][] |
| Beschreibung | Ruft die Prozedur <prozedurname> auf. Der Prozedurname muss als String übergeben werden. Falls die Prozedur nicht existiert, wird der Skript abgebrochen. |
| Beispiel | |
| Methode | ICS.CALLED_BY [s prozedurname][b status] |
| Beschreibung | Testet ob eine Prozedur von einer anderen Prozedur <prozedurename> aufgerufen wurde. |
| Beispiel | |
| Methode | ICS.OSCALL [s befehl][i status] |
| Beschreibung | Führt den Betriebsystembefehl <befehl> aus. Der Skriptinterpreter wartet auf die Beendigung des Befehls. In <status> wird der Beendigungsstatus des Betriebssystembefehls zurückgegeben (0 = erfolgreiche Durchführung). |
| Beispiel | |
| Methode | ICS.GETENV [s <var>][s <value>,b <status>] |
| Beschreibung | Liefert den Wert der Umgebungsvariablen <var> in <value> zurück. Falls die Umgebungsvariable existiert, wird für den Status TRUE zurückgegeben. |
| Beispiel | |
| Methode | ICS.GET_WORKING_DIRECTORY [][s <dir>] |
| Beschreibung | Liefert das aktuelle
Arbeitsverzeichnis. (Siehe auch Methoden der Klasse
DIRECTORY). |
| Beispiel | |
| Methode | ICS.GET_COMPUTERNAME [][s <name>] |
| Beschreibung | Liefert den aktuellen Computernamen. |
| Beispiel | |
| Methode | ICS.GET_SYSTEMLANGUAGE [][s <language>] |
| Beschreibung | Liefert die aktuelle Systemsprache. |
| Beispiel | |
| Methode | ICS.GET_SYSTEMLANGUAGECODE [][s <languagecode>] |
| Beschreibung | Liefert den 2-stelligen ISO-Code der aktuellen Systemsprache. |
| Beispiel | |
| Methode | ICS.GET_USERNAME [][s <name>] |
| Beschreibung | Liefert den aktuellen Benutzernamen. |
| Beispiel | |
| Methode | ICS.INCR_ERROR_COUNT [][] |
| Beschreibung | Erhöht den aktuellen Fehlerzähler um
1. Bemerkung: Von ERROR wird automatisch
ICS.INCR_ERROR_COUNT aufgefrufen. |
| Beispiel | |
| Methode | ICS.GET_ERROR_COUNT [][i count] |
| Beschreibung | Fragt den aktuellen Fehlerzähler ab. |
| Beispiel | |
| Methode | ICS.SET_ERROR_COUNT [i count][] |
| Beschreibung | Setzt den aktuellen Fehlerzähler auf
<count>. |
| Beispiel | |
| Methode | ICS.GET_GUID [][s guid] |
| Beschreibung | Liefert einen GUID (Globally Unique Identifier), eine eindeutige 128-Bit Nummer welche vom Windows-System generiert wird. Der GUID wird als Hexadezimal-String mit der Länge von 38 Zeichen inklusive 6 Format-Zeichen zurückgegeben. |
| Beispiel | |
| Methode | ICS.GET_GUID_RAW [][s guid] |
| Beschreibung | Liefert einen GUID (Globally Unique Identifier), eine eindeutige 128-Bit Nummer welche vom Windows-System generiert wird. Der GUID wird als Hexadezimal-String mit der Länge von 32 Zeichen ohne Format-Zeichen zurückgegeben. |
| Beispiel | |
| Methode | ICS.GET_STRING_MD5 [s string][s md5] |
| Beschreibung | Liefert für einen String einen eindeutigen Schlüssel als String. Der Schlüssel entspricht dem MD5-128-Bit-Hashwert in Hexadezimaler Schreibform (MD5 = Message-Digest Algorithm 5). Falls der Schlüssel nicht berechnet werden kann, liefert die Methode NULL zurück (z.B. bein einem Input <> string). |
| Beispiel | |
| Methode | ICS.GET_FILE_MD5 [s file][s md5] |
| Beschreibung | Liefert für ein File einen eindeutigen Schlüssel als String. Der Schlüssel entspricht dem MD5-128-Bit-Hashwert in Hexadezimaler Schreibform (MD5 = Message-Digest Algorithm 5). Falls der Schlüssel nicht berechnet werden kann, liefert die Methode NULL zurück (z.B. das File existiert nicht). Die Methode kann eingesetzt werden, um festzustellen, ob zwei Files identisch sind. Liefert die Methode unterschiedliche Schlüssel, so sind die Files nicht identisch. |
| Beispiel | |
| Methode | ICS.EXPAND_ICS_PATH [s file][s file, b status] |
| Beschreibung | Expandiert einen relativen Pfad eines
Files zum vollen Pfad in der ICS-Struktur. Sucht das File nach
folgender Reihenfolge: 1. absoluter Pfad, 2. Pfad unter
ILTOOLS_DIR\user, 3. Pfad unter
ILTOOLS_DIR\system, 4. Pfad unter
ILTOOLS_DIR, 5. Pfad wie Hauptkonfiguration, 6.
Pfad wie Hauptkonfiguration aber unter
ILTOOLS_DIR\system. Wird das File nicht
gefunden, wird als Status FALSE
zurückgegeben. |
| Beispiel | |
| Methode | ICS.INCLUDE [s script][b status] |
| Beschreibung | Inkludiert ein Script-File. Analg der
Direktive |INCL . Mit dieser Methode können
dynamisch Scripts geladen werden. |
| Beispiel | |
| Methode | ICS.INCLUDES_DISPLAY [][] |
| Beschreibung | Displays alle inkludierten Scripts. |
| Beispiel | |
| Methode | ICS.INCLUDES_GET [][li list] |
| Beschreibung | Gibt alle inkludierten Scripts als Liste zurück. |
| Beispiel | |
| Methode | ICS.SCRIPT_GET [][s script] |
| Beschreibung | Liefert das aktuelle Script. |
| Beispiel | |
| Methode | ICS.SET_NEXT_SCRIPT [s script][] |
| Beschreibung | Setzt ein Skript, das nach dem Ausführen des aktuellen Skripts ausgeführt werden soll. Durch den mehrmaligen Aufruf dieser Methode können auch weitere Skripts zur Ausführung gesetzt werden. Die Skripts werden in der Reihenfolge ausgeführt, wie dieses gesetzt wurden. Das zuerst gesetzte Script wird zuerst ausgeführt. Das zuletzt gesetzte Script wird zuletzt ausgeführt. |
| Beispiel | |
| Methode | ICS.SET_NEXT_SCRIPT_OPTION [s option, s value][] |
| Beschreibung | Zu einem mit
ICS.SET_NEXT_SCRIPT gesetzten Script können
nachfolgend mit dieser Methode Optionen für das Script gesetzt
werden. |
| Beispiel | |
| Methode | ICS.GET_MAIN_PROGRAM [][s program] |
| Beschreibung | Gibt das aktuelle Hauptprogramm mit
dem Pfad zurück, ..\icsw.exe oder
..\ics.exe . |
| Beispiel | |
| Methode | ICS.IS_BATCH_PROGRAM [][b status] |
| Beschreibung | Gibt zurück, ob das aktuelle
Hauptprogram ics.exe ist.
ics.exe wird für Batch-Prozesse
eingesetzt. |
| Beispiel | |