Clip2D (FPScript)
Beschneidet Oberflächen an den Kanten oder entlang eines geschlossenen Kurvenzugs.
Syntax
Clip2D(Surface, CuttingEdge, Mode)
Die Syntax der Clip2D-Funktion besteht aus folgenden Teilen:
Teil |
Beschreibung |
||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Surface |
Die zu beschneidende Oberfläche, die als Datenmatrix/Signalreihe oder als Raumkurve vorliegen kann. Wenn Sie eine Datenreihe oder Datenmatrix angeben, dann wird die X-Komponente und die Z-Komponente automatisch generiert. Erlaubte Datenstrukturen sind Datenmatrix, Signalreihe und Raumkurve. Es sind alle numerischen Datentypen erlaubt. Ist das Argument eine Liste, dann wird die Funktion für jedes Element der Liste ausgeführt und das Ergebnis ist ebenfalls eine Liste. |
||||||||||||||
CuttingEdge |
Gibt die Schnittkante an, entlang der geschnitten werden soll. Erlaubte Datenstrukturen sind Einzelwert und Signal. Es sind alle numerischen Datentypen erlaubt. Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt. |
||||||||||||||
Mode |
Gibt den Modus an, wie der Datensatz beschnitten werden soll. Das Argument Mode kann folgende Werte haben:
Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt. |
Anmerkungen
Ist Surface vom Datentyp Kalenderzeit oder Zeitdauer, dann gilt dies auch für das Ergebnis. Für alle anderen Datentypen von Surface ist der Datentyp des Ergebnisses 64-Bit Fließkommazahl.
Wird das Argument CuttingEdge als Einzelwert angegeben, so werden alle Y-Werte auf ungültig gesetzt, deren X-Werte größer ( CLIP2D_XMAX), kleiner (CLIP2D_XMIN) bzw. deren Z-Werte größer (CLIP2D_ZMAX) oder kleiner (CLIP2D_ZMIN) sind als der angegebene Grenzwert.
Wird das Argument CuttingEdge als Signal angegeben, so entspricht die Y-Komponente der Dimension der Oberfläche, die beschnitten werden soll, und die X-Komponente der jeweils anderen Dimension. Gegebenenfalls wird Interpoliert. Bei Mode gleich CLIP2D_XMAX oder CLIP2D_XMIN entspricht die Y-Komponente des Signals z. B. der X-Komponente der Oberfläche und die X-Komponente des Signals entspricht der Y-Komponente der Oberfläche.
Für die Modi CLIP2D_CURVEOUTSIDE und CLIP2D_CURVEINSIDE muss das Argument CuttingEdge als Signal angegeben werden. Die Y- und X-Werte des Signals müssen dann einen geschlossenen Kurvenzug bilden, entlang dem geschnitten werden soll. Die Y-Werte des Signals werden hierbei der Z-Komponente der Oberfläche zugeordnet und die X-Werte deren X-Komponente. Der durch das Signal vorgegebene Kurvenzug wird automatisch geschlossen, d. h. der erste Punkt im Signal muss nicht mit dem letzten übereinstimmen.
Konstante |
Verfahren |
---|---|
CLIP2D_XMAX |
Alle Y-Werte, deren zugeordneter X-Wert über der angegebenen Schnittkante liegt, werden ungültig gesetzt. |
CLIP2D_XMIN |
Alle Y-Werte, deren zugeordneter X-Wert unter der angegebenen Schnittkante liegt, werden ungültig gesetzt. |
CLIP2D_ZMAX |
Alle Y-Werte, deren zugeordneter Z-Wert über der angegebenen Schnittkante liegt, werden ungültig gesetzt. |
CLIP2D_ZMIN |
Alle Y-Werte, deren zugeordneter Z-Wert unter der angegebenen Schnittkante liegt, werden ungültig gesetzt. |
CLIP2D_CURVEOUTSIDE |
Alle Y-Werte, deren zugeordnete X-, Z-Koordinaten außerhalb des als Argument CuttingEdge übergebenen, geschlossenen Kurvenzugs liegen, werden ungültig gesetzt. |
CLIP2D_CURVEINSIDE |
Alle Y-Werte, deren zugeordnete X-, Z-Koordinaten innerhalb des als Argument CuttingEdge übergebenen, geschlossenen Kurvenzugs liegen, werden ungültig gesetzt. |
Bei komplexen Datentypen erfolgt eine Betragsbildung.
Verfügbarkeit
FlexPro Basic, Professional, Developer Suite
Beispiele
Dim d = Data
d = Clip2D(d, 2000, CLIP2D_XMIN)
d = Clip2D(d, 10000, CLIP2D_XMAX)
d = Clip2D(d, 50, CLIP2D_ZMIN)
d = Clip2D(d, Signal({200,50},{2000,10000}), CLIP2D_ZMAX)
Im folgenden Beispiel wird eine Oberfläche sowohl in X-Richtung als auch in Z-Richtung beschnitten.
Clip2D(Data, Signal({100,200,250,200,100,50},{2000,2000,6000,10000,10000,6000}), CLIP2D_CURVEINSIDE)
Clip2D(Data, Signal({100,200,250,200,100,50},{2000,2000,6000,10000,10000,6000}), CLIP2D_CURVEOUTSIDE)
Das folgende Beispiel zeigt, wie eine Kontur mit einem geschlossen Kurvenzug beschnitten wird.