Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  ANSYS
  Mit APDL sehr langsames Auslesen von Knotendaten

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von Frequently an!   Senden Sie eine Private Message an Frequently  Schreiben Sie einen Gästebucheintrag für Frequently

Beiträge: 75
Registriert: 28.01.2006

Inventor 2009/2013
Ansys 18/19

erstellt am: 16. Mai. 2018 15:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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.


Sehen Sie sich das Profil von farahnaz an!   Senden Sie eine Private Message an farahnaz  Schreiben Sie einen Gästebucheintrag für farahnaz

Beiträge: 2467
Registriert: 24.04.2007

CAE, FEM, Test, NPD

erstellt am: 16. Mai. 2018 22:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Frequently 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von RAL an!   Senden Sie eine Private Message an RAL  Schreiben Sie einen Gästebucheintrag für RAL

Beiträge: 238
Registriert: 10.01.2009

Geodreieck, Bleistift, Rechenschieber, Kaffeemaschine und Würfel

erstellt am: 17. Mai. 2018 21:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Frequently 10 Unities + Antwort hilfreich

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz