| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys | | | | CADFEM Conference 2025 Hannover - Schwerpunkte: Fluid, Thermal, Elektrotechnik, Digital Twin, Multiphysik, eine Veranstaltung am 07.05.2025
|
Autor
|
Thema: Daten in Array speichern (2119 mal gelesen)
|
batzen83 Mitglied Ingenieur
Beiträge: 184 Registriert: 05.01.2011 Ansys 13 und 14 Hypermesh 11
|
erstellt am: 07. Feb. 2012 12:44 <-- editieren / zitieren --> Unities abgeben:
Hey Leute, möchte die equivalente Spannung eines Beam188 über eine Schleife in eine Matritze schreiben. Bekomme aber nur eine leere Textdatei. Habe zum probieren einfach folgendes aufgesetzt. Das entscheidende steht am Ende. fini /clear /prep7 /prep7
k,1,0 k,2,100 l,1,2 et,1,188 mp,ex,1,210000 mp,nuxy,1,0.3 sectype,1,beam,rect secdata,20,20,5,5 type,1 secnum,1 mat,1 lesize,1,0.1 lmesh,1 d,1,all f,2,fy,1000 f,2,fx,1000 f,2,fz,1000 /solu solve /post1
*get,elnr,elem,,count *dim,vmmax(i,2),,elnr,2 *do,i,1,elnr *get,vmmax(i,2),secr,i,s,eqv,max *enddo
*cfopen,stressarray,txt vwrite
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ChristophN Mitglied Berechnungsingenieur
Beiträge: 773 Registriert: 13.12.2008
|
erstellt am: 07. Feb. 2012 15:14 <-- editieren / zitieren --> Unities abgeben: Nur für batzen83
Die letzten Zeilen müssten irgendwie so heißen: Code: *get,elnr,elem,,count *dim,vmmax,array,elnr,2 *do,i,1,elnr *get,vmmax(i,2),secr,i,s,eqv,max *enddo *cfopen, stressarray, txt *vwrite, vmmax(1,2) (F9.5) *cfclos
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
batzen83 Mitglied Ingenieur
Beiträge: 184 Registriert: 05.01.2011 Ansys 13 und 14 Hypermesh 11
|
erstellt am: 08. Feb. 2012 10:22 <-- editieren / zitieren --> Unities abgeben:
|
ChristophN Mitglied Berechnungsingenieur
Beiträge: 773 Registriert: 13.12.2008
|
erstellt am: 08. Feb. 2012 10:40 <-- editieren / zitieren --> Unities abgeben: Nur für batzen83
Das ist das Format, in dem die Zahl herausgeschrieben wird: F bedeutet floating point, die 9 ist die Länge der gesamten Zahl (inklusive Vorzeichen und Dezimalpunkt) und die 5 die Anzahl der Nachkommastellen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
batzen83 Mitglied Ingenieur
Beiträge: 184 Registriert: 05.01.2011 Ansys 13 und 14 Hypermesh 11
|
erstellt am: 08. Feb. 2012 10:53 <-- editieren / zitieren --> Unities abgeben:
Nee, das klappt auch nicht. Bekomme folgende Meldungen *** WARNING *** CP = 26.973 TIME= 10:54:03 In the graphical user interface, the *VWRITE command can only be executed from an external file such as /INPUT or *USE. The command is ignored. *** WARNING *** CP = 26.988 TIME= 10:54:03 Error in format, not enough data format specifiers Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
batzen83 Mitglied Ingenieur
Beiträge: 184 Registriert: 05.01.2011 Ansys 13 und 14 Hypermesh 11
|
erstellt am: 08. Feb. 2012 10:55 <-- editieren / zitieren --> Unities abgeben:
Achso, hab hier auch ne Vorlage, nur da versteh ich noch weniger. /post1 SET,LAST ESEL,S,ENAM,,188 ! Select beam elements *GET,ELEMNR,ELEM,,COUNT ! Get the number of beam elements *DIM,EMAXSEQV,,ELEMNR,2 ! Initialize the storage array: column(1) -> elem number; column(2) -> max EQV stress ENEXT = 0 ! Loop over beam elements *DO,II,1,ELEMNR ENEXT = ELNEXT(ENEXT) EMAXSEQV(ii,1) =ENEXT *GET,EMAXSEQV(ii,2),SECR,ENEXT,S,EQV, MAX *ENDDO *CFOPEN, STRESSARRAY,TXT ! Save the stress array in the file "STRESSARRAY,TXT" in the current directory *VWRITE ('Elm. Nr:',3X,' MAX EQV:') *VWRITE,EMAXSEQV(1,1), EMAXSEQV(1,2) (F6.0,TL1,' ',3X,E12.6) *CFCLOSE Die Zeilen die ich nicht verstehe, habe ich kenntlich gemacht. Habe probiert das zu übernehmen, aber klappt nicht, deswegen habe ich von vorne angefangen [Diese Nachricht wurde von batzen83 am 08. Feb. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ChristophN Mitglied Berechnungsingenieur
Beiträge: 773 Registriert: 13.12.2008
|
erstellt am: 08. Feb. 2012 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für batzen83
Das funktioniert natürlich nur im Rahmen von Inputfiles, per Hand kann man diese Befehle nicht eingeben (wie die Fehlermeldung schon sagt). Zu deinem vorgefertigten Code: ENEXT = ELNEXT(ENEXT): einfach in der Hilfe den Befehl Elnext() suchen. EMAXSEQV(ii,1) =ENEXT speichert aktuelle Elementnummer in dem Feld EMAXSEQV ('Elm. Nr:',3X,' MAX EQV:') schreibt als Kopf in die Ausgabedatei "Elm. Nr: MAX EQV:" (F6.0,TL1,' ',3X,E12.6) schreibt die Werte des Feldes EMAXSEQV nach Format aus meinem vorherigen Beitrag in die Ausgabedatei. Dabei wird automatisch eine Schleife über den ersten Feldindex ausgeführt, es werden also alle Daten (nicht nur die ersten Einträge) herausgeschrieben. Die Formatangaben TL1, ' ' und 3X sind Tabulatoren und Leerzeichen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
batzen83 Mitglied Ingenieur
Beiträge: 184 Registriert: 05.01.2011 Ansys 13 und 14 Hypermesh 11
|
erstellt am: 09. Feb. 2012 17:03 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|