abapys.auswahl

auswahl.py   v0.3 (2020-09)

 
Functions
       
BedingteAuswahl(elemente, bedingung='True', var=[])
Erstelle eine Sequenz aller uebergebenen elemente, die bedingung erfuellen. Alle Variablen aus
bedingung muessen global lesbar oder optional in var uebergeben und als var[...] bezeichnet sein,
sonst kann die bedingung nicht korrekt ausgewertet werden. Gibt die Sequenz der ausgewaehlten
Elemente zurueck.
 
In der Bedingung kann mit elem auf ein einzelnes Element zugegriffen werden. Auf die
Basiskoordinaten eines Elementes kann mit elem.pointOn[0][#] zugegriffen werden, wobei die Raute
fuer 0, 1 oder 2 und somit eine der drei Bezugsrichtungen steht.
 
Fuer mathematische Zusammenhaenge stehen die Funktionen pi, sqrt, sin, cos, tan, asin, acos, atan
zur Verfuegung.
ElementAuswahl(elemente, punktliste, bedingung='True', var=[], listenhilfe=[])
Gib eine Sequenz an Elementen aus den uebergebenen elemente zurueck, die bzw. deren Punkte die
bedingung erfuellen. Fuer die Zuordnung der einzelnen Punkte zu den Elementen muss eine
punktliste uebergeben werden, die alle Punkte aller elemente enthaelt.
Gibt die Sequenz der ausgewaehlten Elemente zurueck.
 
In der Bedingung kann mit elem auf ein einzelnes Element und mit punkt auf einen Punkt des
Elements zugegriffen werden. Die Koordinaten eines Punktes koennen mit punkt.coordinates[#]
erhalten werden, wobei die Raute fuer 0, 1 oder 2 und somit eine der drei Bezugsrichtungen steht.
 
Optional kann die korrekte Zuordnung der Labels der Punkte bei odb-elementen durch Uebergabe
einer listenhilfe beschleunigt werden.
 
Fuer mathematische Zusammenhaenge stehen die Funktionen pi, sqrt, sin, cos, tan, asin, acos, atan
zur Verfuegung.
 
WICHTIG: Wenn Elemente einer mdb statt einer odb untersucht werden sollen, sollte entweder keine
         oder die folgende listenhilfe uebergeben werden:
 
listenhilfe = [idx for idx in range(len(punktliste))];
ElementAuswahlLabelliste(elemente, punktliste, sortierung=0, aufsteigend=True, listenhilfe=[])
Sortiert alle uebergebenen elemente nach der Koordinatenrichtung sortierung basierend auf den
Koordinaten des Elementmittelpunktes. Fuer die Berechnung der Mittelpunktkoordinaten werden die
Knoten der Elemente benutzt. Fuer die Zuordnung der einzelnen Punkte zu den Elementen muss eine
punktliste uebergeben werden, die alle Punkte aller elemente enthaelt. Gibt eine Liste der Labels
aller uebergebenen elemente zurueck, deren Mittelpunkte nach der Koordinatenrichtung sortierung
sortiert ist.
 
Fuer die sortierung ist die jeweilige Richtung (0, 1 oder 2) anzugeben. Die Reihenfolge wird
ueber die Koordinaten der Mittelpunkte der Elemente bestimmt. Die Werte koennen entweder
aufsteigend oder absteigend sortiert werden.
 
Optional kann die korrekte Zuordnung der Labels der Punkte bei odb-elementen durch Uebergabe
einer listenhilfe beschleunigt werden.
 
WICHTIG: Wenn Elemente einer mdb statt einer odb untersucht werden sollen, sollte entweder keine
         oder die folgende listenhilfe uebergeben werden:
 
listenhilfe = [idx for idx in range(len(punktliste))];
KnotenAuswahlLabelliste(knoten, sortierung=0, aufsteigend=True)
Sortiert alle uebergebenen knoten nach der Koordinatenrichtung sortierung basierend auf den
jeweiligen Koordinaten.
 
Fuer die sortierung ist die jeweilige Richtung (0, 1 oder 2) anzugeben. Die Reihenfolge wird
ueber die Koordinaten der Mittelpunkte der Elemente bestimmt. Die Werte koennen entweder
aufsteigend oder absteigend sortiert werden.
LabelAuswahl(elemente, labelliste, elementhilfsliste=[])
Erstelle eine Sequenz aller uebergebener elemente, deren Label sich in labelliste befindet.
Optional kann eine elementhilfsliste vorab erzeugt und uebergeben werden, was vorallem bei
mehrmaligen Aufrufen einer LabelAuswahl fuer gleiche elemente deutlich schneller ist.
Falls keine elementhilfsliste uebergeben worden ist, wird (jedes mal) intern eine erstellt.
Gibt die Sequenz der ausgewaehlten Elemente zurueck.
ZweifachbedingteKantenAuswahl(elemente, bedingung1='True', bedingung2='True', bedingung3='True', var=[])
Erstelle eine Sequenz aller Kanten aus elemente, die bedingung1 und bedingung2 erfuellen.
Die Rueckgabe der Kanten ist sortiert nach bedingung3. Alle Variablen aus bedingung1, bedingung2
und bedingung3 muessen global lesbar oder optional in var uebergeben und als var[...] bezeichnet
sein, sonst koennen die Bedingungen nicht korrekt ausgewertet werden.
 
In der ersten Bedingung kann mit edge auf eine einzelne Kante zugegriffen werden (bspw.
edge.pointOn[0][#], wobei die Raute fuer 0, 1 oder 2 und somit eine der drei Bezugsrichtungen
steht). In der zweiten und dritten Bedingung kann zusaetzlich auch auf die beiden Endpunkte vert1
sowie vert2 zugegriffen werden (ebenfalls vert.pointOn[0][#] mit Raute als 0, 1 oder 2).
 
Die ersten beiden Bedingungen sind zur Auswahl der der Kanten. Kanten die eine der ersten beiden
Bedingungen nicht erfuellen, werden ignoriert. Die restlichen Kanten werden sortiert, abhaengig
davon, ob sie die letzte Bedingung erfuellen oder nicht. Gibt eine Liste mit zwei Sequenzen der
ausgewaehlten Kanten [kanten_bedingung3_True, kanten_bedingung3_False] zurueck.
 
Fuer mathematische Zusammenhaenge stehen die Funktionen sqrt, sin, cos, tan, asin, acos, atan
zur Verfuegung.