| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys |
Autor
|
Thema: Mit APDL sehr langsames Auslesen von Knotendaten (1289 mal gelesen)
|
Frequently Mitglied Student
Beiträge: 75 Registriert: 28.01.2006 Inventor 2009/2013 Ansys 18/19
|
erstellt am: 16. Mai. 2018 15:16 <-- editieren / zitieren --> Unities abgeben:
Hallo, Ich möchte von einem gelösten Modell in Mechanical die Knotenergebnisse wie Ursprungskoordinaten und Verschiebungsvektoren auslesen. Das ganze soll automatisch mit einem APDL-Befehl erfolgen. Ich nutze dafür folgenden Code:
Code: cm,point,node cmsel,s,point,node *get,nmax,node,,count*dim,A,array,7,nmax !array(Spalte, Zeile) nn=0 !Arbeitsknoten *do,j,1,nmax !Schleife mit nmax durchläufen !zur naechsten NodeNr. springen nn=ndnext(nn) nr=nn !nr = NodNr. set,last,last !Ergebnisse letzter Lastschritt A(1,j)=nr !NodeNr. 1.Spalte, j.Zeile !Knotenkoordinaten am Anfang *get,A(2,j),node,nr,loc,x *get,A(3,j),node,nr,loc,y *get,A(4,j),node,nr,loc,z !Verschiebungsvektoren *vget,A(5,j),node,nr,u,x *vget,A(6,j),node,nr,u,y *vget,A(7,j),node,nr,u,z *enddo !Textdatei erstellen *cfopen,dateiname,txt,_wb_userfiles_dir(1) *do,i,1,nmax *vwrite, A(2,i), A(3,i), A(4,i), A(5,i), A(6,i), A(7,i), (E12.4,4x,E12.4,4x,E12.4,4x,E12.4,4x,E12.4,4x,E12.4) *enddo *cfclose
Ich kriege damit zwar eine Textdatei mit korrekten Werten, das Problem ist aber, dass dieser Vorgang schon für kleine Modell sehr sehr lange dauert. Geschätzt werden nur 1000 Knoten pro Minute verarbeitet. Wenn ich das in der Workbench manuell exportiere, geht das in einer Sekunde. Warum dauert das mit dem APDL-Befehl so lange? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
farahnaz Ehrenmitglied V.I.P. h.c. Ing.
Beiträge: 2467 Registriert: 24.04.2007 CAE, FEM, Test, NPD
|
erstellt am: 16. Mai. 2018 22:25 <-- editieren / zitieren --> Unities abgeben: Nur für Frequently
Zitat: Original erstellt von Frequently:
nr=nn !nr = NodNr. set,last,last !Ergebnisse letzter Lastschritt
Sehe ich richtig? Du lädst Ergebnisse jedes mal erneut in der j-Schleife. ------------------ Grüße, Moe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RAL Mitglied koffeinbetriebender Taschenrechner
Beiträge: 238 Registriert: 10.01.2009 Geodreieck, Bleistift, Rechenschieber, Kaffeemaschine und Würfel
|
erstellt am: 17. Mai. 2018 21:23 <-- editieren / zitieren --> Unities abgeben: Nur für Frequently
moin. warum das so lange dauert? Mit Verlaub, weil es ******e gecodet ist. Besser: Array umbauen node1, x-KO,Y-KO,Z-KO,ux,uy,uz, (also N-knoten=anzahl Zeilen x 7 spalten. Gib deinem Array einen kurzen, aber SINNVOLLEN Namen. nicht A.Gleiches gilt für deine Laufvariablen. Den Lastschritt von Interesse VOR DEM loop einstellen, dann
Code:
*do,i_n,1,ANZ_KNOTEN,1 *GET,CURN,NODE,,num,min ! CURrent Node MY_ARRAY(i_N,1)=CURN MY_ARRAY(i_N,2)=NX(CURN) MY_ARRAY(i_N,3)=NY(CURN) MY_ARRAY(i_N,4)=NZ(CURN) MY_ARRAY(i_N,5)=UX(CURN) MY_ARRAY(i_N,6)=UY(CURN) MY_ARRAY(i_N,7)=UZ(CURN) NSEL,u,node,,CURN*ENDDO
Wegschreiben mit *MWRITE frohes schaffen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|