IntersectNet2Net [INN]

Top  Previous  Next

 

Flächenverschneidung zweier Mengen von Flächen.

Zwei Mengen A und B enthalten geschlossene Stringelemente als Flächen. Jede Fläche aus A wird mit jeder Fläche aus B geschnitten. Für jede dabei entstehende Schnittfläche wird ein Stringelement in einem neuen Objekt angelegt. Die Flächen der Menge A müssen mit dem Parameter AF definiert werden. Für die Flächen der Menge B werden als Default die Stringelemente der selektierten Objekte verwendet, alternativ können sie mit dem Parameter BF definiert werden.

Das Objekt einer Schnittfläche erhält als Default die Objektschlüssel des Objekts der beteiligten Fläche aus A. Mit dem Parameter KEY können andere Objektschlüssel festgelegt werden.

Mit den Parametern AQTX und BQTX können entweder alle oder eine Auswahl Attribute der beteiligten Flächen bzw. ihrer Objekte als Attribute für die Objekte der Schnittflächen übernommen werden. Bei den Attributen der beteiligten Flächen darf es sich um Pseudoattribute handeln, z.B. $dky für den Zeichenschlüssel oder $up.$key.1 für den Primärschlüssel des Objekts (siehe Moskito Tabellenreferenz). Bei der Auswahl von Attributen wird das Attribut zuerst an der Fläche gesucht. Nur wenn es das Attribut nicht besitzt, dann wird es an seinem Objekt gesucht.Enthält keiner von beiden das Attribut, so wird ein leeres Attribut erzeugt.

Voraussetzung

Parameter

AF/PTR_nn,PTR_nn,...

Die Handles der Stringelemente der A Flächen. Es müssen die Elementhandles sein, nicht etwa ihre Objekthandles.

BF/PTR_nn,PTR_nn,...

Die Handles der Stringelemente der B Flächen. Es müssen die Elementhandles sein, nicht etwa ihre Objekthandles. Als Default werden die Stringelemente der selektierten Objekte verwendet.

AQTX/*

Das Objekt einer Schnittfläche erhält alle Attribute des Objekts der beteiligten Fläche aus A.

AQTX/c1=a1,c2=a2,...

Der Parameter enthält Paare von Attributnamen. Zwischen den beiden Namen eines Paares steht ein Gleichheitszeichen. Die Paare werden durch Kommata voneinander getrennt. Der erste Name bezeichnet das neue Attribut am Objekt der Schnittfläche. Er erhält den Wert des Attributs mit dem zweiten Namen vom Objekt der Fläche aus A. Besitzt das Objekt zur Fläche aus A kein Attribut mit dem angegebenen Namen, so erhält das neue Attribut einen leeren Wert.

BQTX/*

Das Objekt einer Schnittfläche erhält alle Attribute des Objekts der beteiligten Fläche aus B.

BQTX/c1=b1,c2=b2,...

Wie der Parameter AQTX, nur mit Attributen von Objekten der Flächen aus B.

KEY/k1,k2,...

Die Objektschlüssel für die Objekte der Schnittflächen. Als Default werden die Schlüssel der Flächen aus A übernommen.

Rückgabewert

Wert

Beschreibung

0

Aufruf wurde erfolgreich durchgeführt

sonst

Fehler aufgetreten

Dialog

Der Parameter AF fehlt.

Der zur Spezifikation der Menge A notwendige Parameter AF fehlt.

Der Inhalt “...“ des Parameters AF läßt sich nicht auswerten.

Der Wert des Parameters AF entspricht nicht der vorgegebenen Syntax.

Der Inhalt “...“ des Parameters BF läßt sich nicht auswerten.

Der Wert des Parameters BF entspricht nicht der vorgegebenen Syntax.

Die Menge A ist leer.

Der Parameter AF fehlt oder enthält kein einziges Handle.

Die Menge B ist leer.

Die Selektionsmenge ist leer oder enthält keine Objekte mit geschlossenen Stringelementen oder der Parameter BF enthält kein einziges Handle.

Das Handle “...“ des Parameters AF ist kein Stringelement.

Ein Handle des Parameters AF bezieht sich nicht auf ein Stringelement. Es könnte sich z. B. um ein Objekt- oder Textelementhandle handeln.

Das Handle “...“ des Parameters BF ist kein Stringelement.

Ein Handle des Parameters BF bezieht sich nicht auf ein Stringelement. Es könnte sich z. B. um ein Objekt- oder Textelementhandle handeln.

Der Inhalt “...“ des Parameters AQTX läßt sich nicht auswerten.

Der Wert des Parameters AQTX entspricht nicht der vorgegebenen Syntax.

Der Inhalt “...“ des Parameters BQTX läßt sich nicht auswerten.

Der Wert des Parameters BQTX entspricht nicht der vorgegebenen Syntax.

Der Inhalt “...“ des Parameters KEY läßt sich nicht auswerten.

Der Wert des Parameters KEY entspricht nicht der vorgegebenen Syntax.

Der Parameter AQTX ist leer.

Die Auswertung des Parameters AQTX ergab kein einziges Paar von Attributnamen.

Der Parameter BQTX ist leer.

Die Auswertung des Parameters BQTX ergab kein einziges Paar von Attributnamen.

Anzahl offener Polygone in A: nn

Anzahl offener Polygone in B: nn

Anzahl der erzeugten Flächen: nn

Wenn mit Echo /verboseon detaillierte Meldungen eingeschaltet wurden, erfolgen Meldungen zu offenen Stringelementen in A oder B, insofern welche vorhanden sind, und zur Anzahl der erzeugten Flächen.

Beispiel

IntersectNet2Net s_concat( "AF/" s_concatComma( DBquery( $pointer FROM ALL STRING KEY 800 /NOQUOTE ) ) )

Die Stringelemente der Objekte mit dem Objektschlüssel 800 (und beliebigen weiteren Schlüsseln) bilden die Menge A. Weil kein BF Parameter angegeben ist, bilden die Stringelemente der selektierten Objekte entsprechend der Voreinstellung die Menge B. Das Objekt einer Schnittfläche erhält als Default alle Objektschlüssel der beteiligten Fläche aus A, auf jeden Fall also die 800. Attribute werden nicht kopiert. Dbquery() liefert die Handles der Stringelemente. Sie werden mit s_concatComma() durch Kommata voneinander getrennt. s_concat() hängt “AF/“ und die Handles unmittelbar hintereinander.

IntersectNet2Net AQTX/* BQTX/day=tag,mon=mon KEY/900 s_concat( "AF/" s_concatComma( DBquery( $pointer FROM STRING KEY 800 /NOQUOTE ) ) ) s_concat( "BF/" s_concatComma( DBquery( $pointer FROM STRING KEY 801 /NOQUOTE ) ) )

Die Stringelemente der Objekte, die einen Objektschlüssel 800 besitzen, bilden die Menge A, die mit einem Objektschlüssel 801 die Menge B. Das Objekt einer Schnittfläche erhält den Objektschlüssel 900 und alle Attribute des Objekts der beteiligten Fläche aus A. Von der beteiligten Fläche aus B übernimmt es das Attribut mon in ein gleichnamiges Attribut und den Inhalt des Attributs tag in das Attribut day.

Bemerkung

Offene Stringelemente in A oder B werden kommentarlos ignoriert. Nur wenn mit Echo /verboseon detaillierte Meldungen von Userfunktionen eingeschaltet sind und offene Stringelemente vorkommen, dann wird ihre Anzahl ausgegeben.

Wenn bei den Parametern AF oder BF ein ungültiges Handle verwendet wird, das nicht auf ein Element verweist, dann kann dies zu einem Absturz des Programms führen. Eine dementsprechende Sorgfalt muß bei der Erzeugung der Handles angewandt werden.

Siehe auch

DBquery

Echo

IntersectPoints2Net

s_concat

s_concatComma