DBidentifyPointsInElementUsingPath |
Top Previous Next |
Suche von Lotpunkten. In dem angegebenen Element werden all die Punkte identifiziert, die in der Umgebung von (x,y) liegen. Dabei wird im Gegensatz zur Prozedur DBidentifyPointsInElementsUsingKnots nicht der Stützpunkt mit dem geringsten Abstand von der Sollkoordinate gesucht, sondern der Punkt des Objekts, der der Sollkoordinate an nächsten liegt. Es wird also jeweils das Lot auf die Linienzüge gefällt und damit der Abstand des Sollpunktes von den Linien bestimmt. Im Einzelnen werden folgende Aktionen ausgeführt: Wenn toleranz 0 ist, wird der Punkt zurückgegeben, der dem Punkt (x,y) am nächsten liegt. Beim Aufruf muß in anzahl mindestens 1 stehen, damit überhaupt ein Punkt abgespeichert werden kann. Werden im Element keine Punkte gefunden, so wird in anzahl 0 zurückgegeben, sonst steht in anzahl 1 und das erste Element im Feld points wird mit dem Zeiger auf diesen Punkt belegt. Ist toleranz >0, so werden alle Punkte gesucht, die einen Abstand von weniger als toleranz zu (x,y) haben. Wird anzahl vor dem Aufruf mit 0 initialisiert, so werden die Punkte nur gezählt und deren Anzahl wird in anzahl geschrieben. Ist anzahl >0, so werden die ersten anzahl Punkte in das Feld points geschrieben und die Zahl der gefundenen Punkte wird in anzahl zurückgegeben, nie jedoch mehr als zum Aufruf dort vorgegeben war. Parameter elem (PELEMENT) [IN] Handle auf beliebiges Element. x (DOUBLE) [IN] X-Koordinate des Referenzpunktes. y (DOUBLE) [IN] Y-Koordinate des Referenzpunktes. toleranz (DOUBLE) [IN] Abstand um den Referenzpunkt, in dem die Punkte gefunden werden sollen. Wenn toleranz=0 ist, wird der nächste Punkt ermittelt, wenn toleranz > 0 ist, werden alle Punkte ermittelt, deren Abstand von (x,y) nicht größer als toleranz ist. Ist toleranz < 0, so kann kein Punkt gefunden werden. anzahl (int *) [IN/OUT IN: Anzahl der Punkte im Feld points, die dort maximal hineinpassen. Werden mehr Punkte gefunden, so werden die überzähligen nicht zurückgegeben. Ist anzahl = 0, so werden die Punkte nur gezählt. OUT: Anzahl der wirklich zurückgegebenen Punkte. Dies ist bei toleranz = 0 immer 0 oder 1. points (T_PPOINTS *) [IN/OUT] Zeiger auf ein Feld, das die Zeiger der Punkte aufnehmen soll, die beim Identifizieren gefunden werden. Wenn die Punkte nur gezählt werden, dann ist dieser Zeiger irrelevant. Sonst muss er auf ein Feld mit ausreichend Speicherplatz zeigen. status (BYTE *) [IN/OUT] Zu jedem Lotpunktpaar gibt es einen Status, der die Lage zu den Stützpunkten beschreibt. Siehe Konstanten xLot (DOUBLE *) [IN/OUT] Liste von den X-Werten der gefundenen Lotpunkte. yLot (DOUBLE *) [IN/OUT] Liste von den Y-Werten der gefundenen Lotpunkte pIsHiddenL (int) [IN] Wird dieser Wert auf TRUE (!= 0) gesetzt, so werden alle P-Verbindungen in Linienzügen so behandelt, als seien es unsichtbare Linien. Ist der Wert FALSE (=0), so werden die Linienzüge bei einer P-Verbindung unterbrochen. parameterList (PIDENTIFY_PARAMETER) [IN] Die Struktur IDENTIFY_PARAMETER enthält eine Liste aller DKY, DKA und KEY-Werte. Die Werte können zuvor mit der Routine SYSmakeParameterList erzeugt werden. Ergebnis --- Deklaration #include "database.h"
void DLLENTRY DBidentifyPointsInElementUsingPath ( PELEMENT elem, DOUBLE x, DOUBLE y, DOUBLE toleranz, int * anzahl, T_PPOINTS * points, BYTE * status DOUBLE * xLot, DOUBLE * yLot, int pIsHiddenL, PIDENTIFY_PARAMETER parameterlist ); Konstanten IDENTIFY_PATH_STATUS_IS_PERPENDICULAR 1 IDENTIFY_PATH_STATUS_IS_EXACT 2 IDENTIFY_PATH_STATUS_IF_BEFORE 4 IDENTIFY_PATH_STATUS_IS_AFTER 8 IDENTIFY_PATH_STATUS_IS_SECOND_ARC_POINT 16 IDENTIFY_PATH_STATUS_IS_ARC_CENTER_POINT 32 IDENTIFY_PATH_STATUS_IS_ON_TEXT 64 Verwandte Funktionen DBidentifyPointsInElementUsingKnots
|