Tabellenspalte filtern und extrahieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
herttim
User
Beiträge: 19
Registriert: Mittwoch 8. Dezember 2021, 14:18

Hallo zusammen,

ich arbeite gerade mit dem Python-Modul PyANSYS zur FEM-Berechnung. Um mein Modell weiter aufzubauen bräuchte ich die genaue Bezeichnung von Knotenpunkten, die ich bereits in einem ersten Schritt automatisiert erstellt habe. Bei ANSYS APDL gibt es die Möglichkeit, sich diese ausgewählten Knoten als Tabelle auszugeben. Nun würde ich gerne die Knotennummern (Node) aus der Tabelle in eine Liste überführen.
Leider ist dies für mich nicht so einfach möglich, wenn ich den folgenden Befehl nutze, werden alle Buchstaben in eine Liste überführt. :cry:

Code: Alles auswählen

plots = mapdl.nlist(node1="ALL", lcoord="COORD", sort1="NODE")
x1 = []
for row in plots:
                    x1.append((row[0]))
Ich hätte aber gerne nur die 30 Knoten-Nummern (Node)

Das ist der entsprechende Output im Ausgabefenster, der die Knotennummern zeigt:

Code: Alles auswählen

LIST ALL SELECTED NODES.   DSYS=      0
 SORT TABLE ON  NODE            

 *** ANSYS - ENGINEERING ANALYSIS SYSTEM  RELEASE 2020 R2          20.2     ***
 DISTRIBUTED ANSYS Mechanical Enterprise Solver                

 00219954  VERSION=WINDOWS x64   13:33:12  MAY 12, 2022 CP=     46.828

                                                                               
   NODE        X                   Y                   Z
    18727   0.318980000000E-001   0.556100000000E-001    0.00000000000     
    20324   0.310310000000E-001   0.554320689655E-001    0.00000000000     
    20325   0.301640000000E-001   0.552541379310E-001    0.00000000000     
    20326   0.292970000000E-001   0.550762068966E-001    0.00000000000     
    20327   0.284300000000E-001   0.548982758621E-001    0.00000000000     
    20328   0.275630000000E-001   0.547203448276E-001    0.00000000000     
    20329   0.266960000000E-001   0.545424137931E-001    0.00000000000     
    20330   0.258290000000E-001   0.543644827586E-001    0.00000000000     
    20331   0.249620000000E-001   0.541865517241E-001    0.00000000000     
    20332   0.240950000000E-001   0.540086206897E-001    0.00000000000     
    20333   0.232280000000E-001   0.538306896552E-001    0.00000000000     
    20334   0.223610000000E-001   0.536527586207E-001    0.00000000000     
    20335   0.214940000000E-001   0.534748275862E-001    0.00000000000     
    20336   0.206270000000E-001   0.532968965517E-001    0.00000000000     
    20337   0.197600000000E-001   0.531189655172E-001    0.00000000000     
    20338   0.188930000000E-001   0.529410344828E-001    0.00000000000     
    20339   0.180260000000E-001   0.527631034483E-001    0.00000000000     
    20340   0.171590000000E-001   0.525851724138E-001    0.00000000000     
    20341   0.162920000000E-001   0.524072413793E-001    0.00000000000     
    20342   0.154250000000E-001   0.522293103448E-001    0.00000000000     
    20343   0.145580000000E-001   0.520513793103E-001    0.00000000000     
    20344   0.136910000000E-001   0.518734482759E-001    0.00000000000     
    20345   0.128240000000E-001   0.516955172414E-001    0.00000000000     
    20346   0.119570000000E-001   0.515175862069E-001    0.00000000000     
    20347   0.110900000000E-001   0.513396551724E-001    0.00000000000     
    20348   0.102230000000E-001   0.511617241379E-001    0.00000000000     
    20349   0.935600000000E-002   0.509837931034E-001    0.00000000000     
    20350   0.848900000000E-002   0.508058620690E-001    0.00000000000     
    20351   0.762200000000E-002   0.506279310345E-001    0.00000000000     
    20438   0.675500000000E-002   0.504500000000E-001    0.00000000000
Könnt Ihr mir eventuell helfen wie ich die Spalte selektieren und die Zeilennummern mit den Knoten erhalten kann?

Vielen Dank!

Beste Grüße
herttim
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Bei so unbekannten Paketen, wäre ein Verweis, was Du da verwendest, ganz nett, dann muß man nicht raten: https://mapdldocs.pyansys.com/mapdl_com ... nlist.html
Und wenn man die Dokumentation liest, dann sieht man, dass es ein node1 und ein node2 gibt, mit dem man die Nodes so einschränken kann, wie Du Dir das wünschst.
Die Dokumentation verrät sonst nicht viel, so dass man nicht wirklich helfen kann, wenn man das System nicht hat.
Was ist denn `plots` für ein Objekt und warum heißt das so?
Was ist dann `row` und was landet in `x1`?
herttim
User
Beiträge: 19
Registriert: Mittwoch 8. Dezember 2021, 14:18

Die Frage hat ja auch im Prinzip nichts mit dem PyANSYS Modul zu tun. Viel mehr geht es mir darum, die erste Spalte der Knoten aus dem Output zu extrahieren bzw in eine Liste umzuwandeln.
Gibt es da keine Möglichkeit?
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Doch hat es, da Du hier eine Funktion von PyANSYS benutzt, und die hat bestimmte Rückgabewerte, die man weiter verwenden sollte, wenn sie die Information schon ohne Text-Parsen anbietet.
Aus dem Code-Fragment wird nicht klar, wie Deine Ausgabe zustande kommt.
Antworten