| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys |
Autor
|
Thema: Arrays erzeugen (2143 mal gelesen)
|
Bkg Mitglied Student
Beiträge: 8 Registriert: 05.05.2010
|
erstellt am: 05. Mai. 2010 19:01 <-- editieren / zitieren --> Unities abgeben:
Hallo Community, ich mach eine FE-Untersuchung mit Ansys Classic für meine Diplomarbeit und habe folgendes Problem. Ich habe ein FE-Modell eines viertelrohrs und ich möchte einzelne Knoten eines Winkels, sortiert nach der Y-Koordinate in einem Array speichern. Anschließend sollen die dazugehörigen Hauptspannungen in den selben Array gespeichert werden. Ich bin soweit gekommen, dass ich den Array erstellt hab. NSLA,S,1 !Fläche auswählen NPLOT !Knoten ploten NSEL,S,ANG,XY,-94.5 !Knoten beim winkel -94.5 auswählen NPLOT *get,kanzahl,node,0,count !Anzahl der Knoten bestimmen *dim,Winkel_001,array,kanzahl,5 !Array für Nodenummer,Y,S1,S2,S3 Wie kann ich die entsprechenden Werte in den Array einfügen? ich bin für jede Hilfe dankbar...... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ChristophN Mitglied Berechnungsingenieur
Beiträge: 773 Registriert: 13.12.2008
|
erstellt am: 05. Mai. 2010 19:48 <-- editieren / zitieren --> Unities abgeben: Nur für Bkg
Code: *get, knoten, node, 0, num, min i = 1 *dowhile, knoten Winkel_001(i, 1) = knoten Winkel_001(i, 2) = ny(knoten) *get, s1, node, knoten, s, 1 *get, s2, node, knoten, s, 2 *get, s3, node, knoten, s, 3 Winkel_001(i, 3) = s1 Winkel_001(i, 4) = s2 Winkel_001(i, 5) = s3 knoten = ndnext(knoten) i = i + 1 *enddo *dim, oldorder, array, kanzahl *moper, oldorder(1), Winkel_001(1,1), sort, Winkel_001(1,2)
könnte funktionieren...Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bkg Mitglied Student
Beiträge: 8 Registriert: 05.05.2010
|
erstellt am: 05. Mai. 2010 20:19 <-- editieren / zitieren --> Unities abgeben:
|
Bkg Mitglied Student
Beiträge: 8 Registriert: 05.05.2010
|
erstellt am: 05. Mai. 2010 22:14 <-- editieren / zitieren --> Unities abgeben:
|
ChristophN Mitglied Berechnungsingenieur
Beiträge: 773 Registriert: 13.12.2008
|
erstellt am: 05. Mai. 2010 23:22 <-- editieren / zitieren --> Unities abgeben: Nur für Bkg
Code: *cfopen, Ausgabe, txt *vwrite, Winkel_001(1, 1), Winkel_001(1, 2), Winkel_001(1, 3), Winkel_001(1, 4), Winkel_001(1, 5) (F12.6,' ',F5.0,' ',F12.6,' ',F12.6,' ',F12.6) *cfclos
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bkg Mitglied Student
Beiträge: 8 Registriert: 05.05.2010
|
erstellt am: 06. Mai. 2010 11:39 <-- editieren / zitieren --> Unities abgeben:
ich hab den export des Arrays in die dowhile Schleife eingefügt, aber ich bekomme eine Fehlermeldung, dass der Befehl *create nicht in einer do-Schleife verwendet werden kann. Wie kann ich trotzdem alle Arrays in Abängigkeit des Winkels in je eine Datei schreiben? Code:
LSEL,S, , ,3 !Radius wählen NSLL,S,1 !Knoten am Radius wählen *get,kradius,node,0,count !Knoten zählen am Radius NPLOT ALLSEL,ALL !Alles auswählenb=(kradius-1) !Anzahl der GEsamtdurchläufe mit y-Koordinate a=90/b !Teilung j=90 !Startwinkel jname=j*10 !Winkel für die Bezeichnung, da . nicht zugelassen *dowhile,b NSLA,S,1 !Fläche auswählen NPLOT !Knoten ploten NSEL,S,ANG,XY,-%j% !Knoten beim winkel -%j% auswählen NPLOT *get,kanzahl,node,0,count !Anzahl der Knoten bestimmen *dim,Winkel_%jname%,array,kanzahl,5 !Array für Nodenummer,Y,S1,S2,S3 *get, knoten, node, 0, num, min i = 1 *dowhile, knoten winkel_%jname%(i, 1) = knoten winkel_%jname%(i, 2) = ny(knoten) *get, s1, node, knoten, s, 1 *get, s2, node, knoten, s, 2 *get, s3, node, knoten, s, 3 winkel_%jname%(i, 3) = s1 winkel_%jname%(i, 4) = s2 winkel_%jname%(i, 5) = s3 knoten = ndnext(knoten) i = i + 1 *enddo *dim, oldorder_%jname%, array, kanzahl *moper, oldorder_%jname%(1), winkel_%jname%(1,1), sort, winkel_%jname%(1,2) !Daten speichern *CREATE,ansuitmp *CFOPEN,'Winekl_%jname%','txt','Auswertung\' *vwrite,WINKEL_%jname%(1,1),Winkel_%jname%(1,2),Winkel_%jname%(1,3),Winkel_%jname%(1,4),Winkel_%jname%(1,5) (F12.6,F12.6,F12.6,F12.6,F12.6) *CFCLOS *END /INPUT,ansuitmp b=b-1 j=j+a jname=j*10 *enddo
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ChristophN Mitglied Berechnungsingenieur
Beiträge: 773 Registriert: 13.12.2008
|
erstellt am: 06. Mai. 2010 11:49 <-- editieren / zitieren --> Unities abgeben: Nur für Bkg
Ich würde es so machen: Code: LSEL,S, , ,3 !Radius wählen NSLL,S,1 !Knoten am Radius wählen *get,kradius,node,0,count !Knoten zählen am Radius NPLOT ALLSEL,ALL !Alles auswählenb=(kradius-1) !Anzahl der GEsamtdurchläufe mit y-Koordinate a=90/b !Teilung j=90 !Startwinkel jname=j*10 !Winkel für die Bezeichnung, da . nicht zugelassen *dowhile,b NSLA,S,1 !Fläche auswählen NPLOT !Knoten ploten NSEL,S,ANG,XY,-%j% !Knoten beim winkel -%j% auswählen NPLOT *get,kanzahl,node,0,count !Anzahl der Knoten bestimmen *dim,Winkel_%jname%,array,kanzahl,5 !Array für Nodenummer,Y,S1,S2,S3 *get, knoten, node, 0, num, min i = 1 *dowhile, knoten winkel_%jname%(i, 1) = knoten winkel_%jname%(i, 2) = ny(knoten) *get, s1, node, knoten, s, 1 *get, s2, node, knoten, s, 2 *get, s3, node, knoten, s, 3 winkel_%jname%(i, 3) = s1 winkel_%jname%(i, 4) = s2 winkel_%jname%(i, 5) = s3 knoten = ndnext(knoten) i = i + 1 *enddo *dim, oldorder_%jname%, array, kanzahl *moper, oldorder_%jname%(1), winkel_%jname%(1,1), sort, winkel_%jname%(1,2) !Daten speichern *CFOPEN,'Winkel_%jname%','txt','Auswertung\' *vwrite,Winkel_%jname%(1,1),Winkel_%jname%(1,2),Winkel_%jname%(1,3),Winkel_%jname%(1,4),Winkel_%jname%(1,5) (F12.6,F12.6,F12.6,F12.6,F12.6) *CFCLOS b=b-1 j=j+a jname=j*10 *enddo
Mit *create erstellst du eine Datei, die du gleich im Anschluss wieder einlesen möchtest. Das kannst du dir ja eigentlich sparen, oder?Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bkg Mitglied Student
Beiträge: 8 Registriert: 05.05.2010
|
erstellt am: 06. Mai. 2010 12:57 <-- editieren / zitieren --> Unities abgeben:
Ok es funktioniert ohne den create Befehl, aber es kommt beim ersten Durchlauf zur folgenden Fehlermeldung: " (F12.6,F is not a recognized BEGIN command, abbreviat or macro. This command will be ignored. " Es wird zu jedem Array die paasende Datei erzeugt, nur die erste bei der die Fehlermedlung auftaucht ist leer.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
arnd13 Mitglied Dipl. Ing.
Beiträge: 735 Registriert: 05.11.2008
|
erstellt am: 06. Mai. 2010 13:00 <-- editieren / zitieren --> Unities abgeben: Nur für Bkg
|
Bkg Mitglied Student
Beiträge: 8 Registriert: 05.05.2010
|
erstellt am: 06. Mai. 2010 13:07 <-- editieren / zitieren --> Unities abgeben:
|
ChristophN Mitglied Berechnungsingenieur
Beiträge: 773 Registriert: 13.12.2008
|
erstellt am: 06. Mai. 2010 13:20 <-- editieren / zitieren --> Unities abgeben: Nur für Bkg
PSPad ist klasse, damit hatte ich nie Probleme und er macht einem das Leben wirklich einfacher. Kann es denn sein, dass die Parameter hinter *vwrite nicht alle auf einer Zeile stehen, also ein Zeilenumbruch eingefügt wurde? Da gibt es beim Windows-Editor eine Option, mit der man automatische Zeilenumbrüche ausschaltet, das könnte bei dir vielleicht helfen. Außerdem würde ich zwischen die einzelnen Ausgabewerte Leerzeichen oder Tabulatoren einfügen, damit wird der Import in EXCEL deutlich vereinfacht. Dazu einfach (F12.6,' ',F12.6,' ',F12.6,' ',F12.6,' ',F12.6) statt (F12.6,F12.6,F12.6,F12.6,F12.6) einfügen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bkg Mitglied Student
Beiträge: 8 Registriert: 05.05.2010
|
erstellt am: 06. Mai. 2010 13:25 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|