| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys | | | | Engineering-Talk mit Festo, Continental, Rauch, Globe: Vorsprung durch Innovation - mit Digital Engineering?, eine Pressemitteilung
|
Autor
|
Thema: Ansys APDL Table erweitern (895 / mal gelesen)
|
TW-Ansys Mitglied
Beiträge: 22 Registriert: 08.03.2017
|
erstellt am: 12. Apr. 2018 10:16 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, ich bin dabei ein APDL Snippet für Mechanical zu schreiben. leider fehlen mir die passenden Befehle. Ich möchte zu einem Table einer Randbedingung eine Zeile hinzufügen. Ein Workaround wäre dies über Schleifen zu realisieren: Erzeuge neues Table und schreibe Werte aus dem alten in die entsprechenden Felder. Gibt es dafür einen eleganteren Weg? Ausgangssituation: *DIM,_loadvari81uy,TABLE,2,1,1,TIME, ! Time values _loadvari81uy(1,0,1) = 0. _loadvari81uy(2,0,1) = 1. ! Load values _loadvari81uy(1,1,1) = 0. _loadvari81uy(2,1,1) = 0. Ziel: *DIM,_loadvari81uy,TABLE,3,1,1,TIME, ! Time values _loadvari81uy(1,0,1) = 0. _loadvari81uy(2,0,1) = 1. _loadvari81uy(3,0,1) = 2. ! Load values _loadvari81uy(1,1,1) = 0. _loadvari81uy(2,1,1) = 0. _loadvari81uy(3,1,1) = 0.1 Ich freue mich über Tipps und Hinweise.
Viele Grüsse Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TW-Ansys Mitglied
Beiträge: 22 Registriert: 08.03.2017
|
erstellt am: 16. Apr. 2018 09:27 <-- editieren / zitieren --> Unities abgeben:
|
RAL Mitglied koffeinbetriebender Taschenrechner
Beiträge: 241 Registriert: 10.01.2009 Geodreieck, Bleistift, Rechenschieber, Kaffeemaschine und Würfel
|
erstellt am: 16. Apr. 2018 21:26 <-- editieren / zitieren --> Unities abgeben: Nur für TW-Ansys
hi. vorsicht bei TABLE im Gegensatz zu ARRAY, da wird die indizierung manchmal fummelig. hier nur Konzept. Syntax mit der Hilfe prüfen. Gemacht für Arrays, sollte ähnlich mit TABLE funktionieren. vorhandener Array (MY_START) sei 3x2, der Zielarray logischerweise größer
Code:
*DIM,ZIEL,ARRAY,10,10 E_ROW=2 ! Einfuegemarke Zeile E_COL=3 ! Einfuegemarke Spalte *GET, ANZ_ROW, PARM, MY_START, DIM, 1, ! Anz Zeilen auslesen *GET, ANZ_COL, PARM, MY_START, DIM, 2, ! Anz Spalten auslesen *DO,i_row,1,ANZ_ROW,1 *DO,i_col,1,ANZ_COL,1 ZIEL(i_row-1+E_row,i_col-1+E_col)=MY_START(i_row,i_col) *ENDDO *ENDDO
ist nicht probegelaufen; ergo Fehler!!! Ansonsten gibt es noch die *VOPER, *VFUN Reihe. Ggfs ist da was Eleganteres zwischen. Falls du wirklich mit TABLE arbeiten mußt, gibt es nur *TOPER und das kann nur addieren und das nur, wenn gleiche Dimensionen, Variablen etc.... also eher eingeschränkt. Ansonsten hast du noch folgenden Umweg: TABLE in ARRAY konvertieren, *Vxxx anwenden oder das von oben, ARRAY wieder in TABLE zurückkonvertieren.... wird vermutlich wenig spaßig. Achja: bei TABLE willst du wahrscheinlich die Einfügemarke auf 0 setzen, dann in der Schlaufe auf das "-1" aufpassen. frohes schaffen ral PS: variablen, die mit _ anfangen oder aufhören sind meist ANSYS intern vorbelegt. also Vorsicht mit der Nomenklatur.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|