| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys |
Autor
|
Thema: Daten in Array schreiben (2889 mal gelesen)
|
magerhirn Mitglied Dipl.-Ing.
Beiträge: 25 Registriert: 15.10.2010
|
erstellt am: 21. Dez. 2010 23:26 <-- editieren / zitieren --> Unities abgeben:
Hallo Experten! Ich möchte von bestimmten Knoten Werte auslesen und diese zusammen mit den Knotennummern in eine Textdatei schreiben. Habe dazu die gewünschten Knoten selektiert und dann mit vget, vmask und vwrite alles in eine txt-Datei ausgegeben. Es passiert folgendes: Das gewünschte Array wird mit der richtigen Anzahl an Zeilen und Spalten gebildet. Nur leider scheint das mit dem *vmask nicht zu funktionieren. Es werden alle Knoten abgefragt, ganz gleich, ob ich sie selektiert habe oder nicht (Selektieren der Knoten funktioniert einwandfrei), bis das Array voll ist. Hat jemand eine Antwort? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
M.Seidler Mitglied Dipl. Ing.
Beiträge: 600 Registriert: 08.01.2007 ABAQUS CAE 6.10 Ansys 13 Hyper Works 11
|
erstellt am: 22. Dez. 2010 17:55 <-- editieren / zitieren --> Unities abgeben: Nur für magerhirn
Mir sind 2 Sachen aufgefallen: 1. *get,nmax,node,0,count ! Anzahl Knoten 2. Super umständlich und somit zu lang und unübersichtlich Ich würde mit ner Schleife arbeiten die einen selektierten Knoten nach dem anderen Anspricht (ndnext).
------------------ *********************** Gruß Der Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
magerhirn Mitglied Dipl.-Ing.
Beiträge: 25 Registriert: 15.10.2010
|
erstellt am: 22. Dez. 2010 21:05 <-- editieren / zitieren --> Unities abgeben:
zu 1. - ja, es soll natürlich nicht die größte Knotennummer ausgewählt werden sondern die Anzahl der selektierten Knoten. zu 2. - habe deinen Rat befolgt und die input-Datei wie folgt umgeschrieben:
Code:
ALLS !Knoten um Loch LSEL,S,LOC,Z,L1 ASLL,S,ALL NSLA,S,1 *get,nmax,node,0,count !Knotenanzahl *get,nmin,node,0,num,min !kleinste Knotennummer narb=nmin *vwrite,LF !Laststellung in (F6.0) *dim,_arr,array,nmax,3 *cfopen,'Werte','txt',,append !Werte.txt öffnen *do,i,nmin,nmax !Schleifenan *get,S1,node,narb,s,1 *get,MIS,node,narb,s,eqv _arr(i,1)=narb _arr(i,2)=S1 _arr(i,3)=MIS narb=ndnext(narb) *enddo *cfclos
Ansys schreibt folgendes in die LOG-file und scheint sich dann aufzuhängen. Dabei läuft die Festplatte auf Hochtouren, bis ich Ansys stoppe.
Code:
SELECT ALL ENTITIES OF TYPE= ALL AND BELOW SELECT FOR ITEM=LOC COMPONENT=Z BETWEEN 135.00 AND 135.00 KABS= 0. TOLERANCE= 0.675000 4 LINES (OF 362 DEFINED) SELECTED BY LSEL COMMAND. SELECT ALL AREAS HAVING ANY LINE IN LINE SET. 4 AREAS (OF 166 DEFINED) SELECTED FROM 4 SELECTED LINES BY ASLL COMMAND. SELECT ALL NODES (INTERIOR TO AREA, INTERIOR TO LINES, AND AT KEYPOINTS) RELATED TO SELECTED AREA SET. 624 NODES (OF 92052 DEFINED) SELECTED FROM 4 SELECTED AREAS BY NSLA COMMAND. *GET NMAX FROM NODE ITEM=COUN VALUE= 624.000000 *GET NMIN FROM NODE ITEM=NUM MIN VALUE= 105.000000 PARAMETER NARB = 105.0000000 44. SET PARAMETER DIMENSIONS ON _ARR TYPE=ARRA DIMENSIONS= 624 3 1 OPENED FILE= Werte.txt FOR COMMAND FILE DATA FILE OPENED FOR APPEND *DO LOOP ON PARAMETER= I FROM 105.00 TO 624.00 BY 1.0000
[Diese Nachricht wurde von magerhirn am 22. Dez. 2010 editiert.]
[Diese Nachricht wurde von magerhirn am 22. Dez. 2010 editiert.] 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: 23. Dez. 2010 10:03 <-- editieren / zitieren --> Unities abgeben: Nur für magerhirn
Ob sich Ansys tatsächlich "aufhängt" kann kontrolliert werden, indem in die *do-Schleife ein /com,loop %i%/%nmax% eingefügt wird. In jedem Schleifendurchlauf wird dann im Output-Fenster angezeigt, wo die Rechnung steht. Wahrscheinlich ist die Rechnung nur langsam. In Deinem Fall würde ich doch eher *vget verwenden. Das ist deutlich schneller als *do, besonders bei vielen Knoten, also einer großen Anzahl von Schleifendurchläufen. Klappt denn das Schreiben in die Datei Werte.txt? ------------------ Gruß, A. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
magerhirn Mitglied Dipl.-Ing.
Beiträge: 25 Registriert: 15.10.2010
|
erstellt am: 23. Dez. 2010 17:34 <-- editieren / zitieren --> Unities abgeben:
|
wosch Ehrenmitglied V.I.P. h.c. Elektrotechniker im Ruhestand
Beiträge: 2607 Registriert: 16.12.2004 Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.
|
erstellt am: 25. Dez. 2010 12:56 <-- editieren / zitieren --> Unities abgeben: Nur für magerhirn
|
magerhirn Mitglied Dipl.-Ing.
Beiträge: 25 Registriert: 15.10.2010
|
erstellt am: 25. Dez. 2010 14:26 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke für die Mühen, nur leider geht dies nicht. Ich muss alles innerhalb einer *do Schleife aufrufen (mehrere Lastfälle, wir befinden uns in einer shell-Datei) und der *create Befehl funktioniert leider nicht in einer Schleife. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wosch Ehrenmitglied V.I.P. h.c. Elektrotechniker im Ruhestand
Beiträge: 2607 Registriert: 16.12.2004 Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.
|
erstellt am: 25. Dez. 2010 15:39 <-- editieren / zitieren --> Unities abgeben: Nur für magerhirn
Wenn am Ende der Rechnung die Ergebnisse in einem oder mehreren Arrays stehen, kann der Array-Inhalt so herausgeschrieben werden. Dazu braucht es dann keine Schleife mehr. ------------------ Viel Erfolg wünscht Wolfgang Schätzing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
magerhirn Mitglied Dipl.-Ing.
Beiträge: 25 Registriert: 15.10.2010
|
erstellt am: 25. Dez. 2010 19:20 <-- editieren / zitieren --> Unities abgeben:
|
| CAE-Berechnungsingenieur für Kunststoffteile (m/w/d) | EMS-GRIVORY ist ein Teil des Geschäftsbereichs Hochleistungspolymere der EMS-Gruppe und beschäftigt weltweit über 1000 Mitarbeiter. Das größte Entwicklungs- und Produktionszentrum befindet sich in Domat/Ems in der Schweiz. Weitere Produktionsstätten liegen in Deutschland, China, Taiwan und den USA. Die Stärken von EMS-GRIVORY liegen in der Entwicklung und Herstellung der Hochleistungskunststoffe und Erarbeitung innovativer Systemlösungen mit Kunden auf der ganzen Welt.... | Anzeige ansehen | Kunststofftechnik |
|
wosch Ehrenmitglied V.I.P. h.c. Elektrotechniker im Ruhestand
Beiträge: 2607 Registriert: 16.12.2004 Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.
|
erstellt am: 26. Dez. 2010 09:48 <-- editieren / zitieren --> Unities abgeben: Nur für magerhirn
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|