| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys | | |  | Welches ist die richtige Schweißgeschwindigkeit?, ein Fachartikel
|
Autor
|
Thema: Mappen mit APDL (2614 mal gelesen)
|
DV01 Mitglied

 Beiträge: 40 Registriert: 13.08.2013
|
erstellt am: 11. Nov. 2013 09:56 <-- editieren / zitieren --> Unities abgeben:         
Hallo allerseits, ich habe nun übers Wochenende mich dran versucht einen Code zu schreiben. Kennt sich jemand aus? Wo ist mein Fehler? Ich hole zuerst die Knotenpunkte sowie aktuellen Fließgrenzen aus der aktuellen Simulation (fließgrenzen=0, Material jungfräulich) ndata Danach lade ich dei Koordianten der anderen Fließgrenzen sowie die FLießgrenzenwerte (8279) in einen neuen Array. flgr die Werte sind dabei in einer CSV datei (x;y;z;fliessgrenze) eingetragen Danach mappe ich die Fließgrenzenwerte auf die Knotenpunkte von flgr auf ndata.
*get,mpmax,mat,0,num,max !Knotenanzahl !Knotenpunkte *dim,nadata,array,mpmax,4 !Def. von Array ndata *vget,nadata(1,1),node,0,loc,x !laden der x koordinaten *vget,nadata(1,2),node,0,loc,y !laden der y koordinaten *vget,nadata(1,3),node,0,loc,z !laden der z koordinaten *vget,nadata(1,4),node,0,stress !laden der Fließgrenzenwerte !Fließgrenzen *dim,flgr,array,8779,4 !Def. von Array flgr *vread,flgr(1,0)=1,fliessgrenze,csv,0,1,8279 !laden der x koordinaten aus Datei *vread,flgr(1,1)=1,fliessgrenze,csv,0,2,8279 !laden der y koordinaten aus Datei *vread,flgr(1,2)=1,fliessgrenze,csv,0,3,8279 !laden der z koordinaten aus Datei *vread,flgr(1,3)=1,fliessgrenze,csv,0,4,8279 !laden der Fließgrenzwerte aus Datei *moper,nadata(1,4),map,flgr,3 !mappen der Daten von flgr auf ndata
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DV01 Mitglied

 Beiträge: 40 Registriert: 13.08.2013
|
erstellt am: 11. Nov. 2013 14:27 <-- editieren / zitieren --> Unities abgeben:         
so ists glaub richtiger: *get,mpmax,mat,0,num,max !Knotenanzahl !Knotenpunkte *dim,nadata,array,mpmax,3 !Def. von Array ndata *vget,nadata(1,1),node,0,loc,x !laden der x koordinaten *vget,nadata(1,2),node,0,loc,y !laden der y koordinaten *vget,nadata(1,3),node,0,loc,z !laden der z koordinaten *dim,yielstr,array,mpmax,1 *vget,yielstr(1,1),node,0,sx !laden der Fließgrenzenwerte !neue Fließgrenzen *dim,flgr,array,9000,3 !Def. von Array flgr
*vread,flgr(1,0)=1,fliessgrenze,csv,0,1,9000 !laden der x koordinaten aus Datei *vread,flgr(1,1)=1,fliessgrenze,csv,0,2,9000 !laden der y koordinaten aus Datei *vread,flgr(1,2)=1,fliessgrenze,csv,0,3,9000 !laden der z koordinaten aus Datei *dim,Yiel,array,mpmax,1 *vread,yiel(1,1)=1,fliessgrenze,csv,0,4,9000 !laden der Fließgrenzwerte aus Datei *moper,yielstr(1,1),nadata(1,1),map,yiel(1,1),flgr(1,1),3 !mappen der Daten von flgr auf ndata
[Diese Nachricht wurde von DV01 am 11. Nov. 2013 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: 11. Nov. 2013 14:39 <-- editieren / zitieren --> Unities abgeben:          Nur für DV01
|
DV01 Mitglied

 Beiträge: 40 Registriert: 13.08.2013
|
erstellt am: 11. Nov. 2013 17:43 <-- editieren / zitieren --> Unities abgeben:         
Hallo, erst einmal Danke dass du versuchst mir zu helfen =) Im Anhang habe ich mal den Teil aus den Lösungsinformationen die sich auf meine Berechnung bezieht. 1.) meiner meinung nach scheint da was mit den Dimensionen der arrays nicht zu stimmen,oder? 2.)ich will durch *vget,yielstr(1,1),node,0,sx meine aktuellen fließwerte auslesen (der geometrie vor ansetzen der Last,müsste also 0 sein), geht nicht. 3.) er findet meine csv-datei gar nicht 4.) ist der weg den ich gehe der richtige? weist ansys nach der moper funktion meiner geometrie die jeweilige interpolierte fliessgrenze dem jeweiligen punkt zu?
[Diese Nachricht wurde von DV01 am 11. Nov. 2013 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: 12. Nov. 2013 09:14 <-- editieren / zitieren --> Unities abgeben:          Nur für DV01
Zitat: Original erstellt von DV01: *vget,yielstr(1,1),node,0,sx !laden der Fließgrenzenwerte
Wenn die Fließgrenze ohnehin am Anfang 0 ist, warum setzt Du sie dann nicht gleich so? Dann entfällt auch die erste Warnung. Zitat: Original erstellt von DV01: *vread,flgr(1,0)=1,fliessgrenze,csv,0,1,9000 !laden der x koordinaten aus Datei
Wie die Fehlermeldung sagt: Du greifst auf das Element (1,0) zu, das erste Element befindet sich jedoch bei (1,1). Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DV01 Mitglied

 Beiträge: 40 Registriert: 13.08.2013
|
erstellt am: 12. Nov. 2013 10:13 <-- editieren / zitieren --> Unities abgeben:         
Okey, ich hab das nun geändert... aber nach dem mappen hab ich ja zu jedem punkt eine interpolierte fliessgrenze. woher weiss nun ansys dass die fliessgrenzen fliessgrenzen sind? ich muss doch den array irgendwie einlesen,oder? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ChristophN Mitglied Berechnungsingenieur
  
 Beiträge: 773 Registriert: 13.12.2008
|
erstellt am: 12. Nov. 2013 11:19 <-- editieren / zitieren --> Unities abgeben:          Nur für DV01
Zitat: Original erstellt von DV01: woher weiss nun ansys dass die fliessgrenzen fliessgrenzen sind? ich muss doch den array irgendwie einlesen,oder?
Das hat Dir doch cgebhardt bei deiner anderen Frage erklärt: Zitat: Original erstellt von cgebhardt: Hm, man könnte per Script jedem Element eine eigene Materialdefinition mit eigener Fließgrenze übergeben. Die bereits vorliegenden Dehnungen sind dann allerdings nicht erfasst. Der Werkstoff ist sozuagen noch "jungfräulich".
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DV01 Mitglied

 Beiträge: 40 Registriert: 13.08.2013
|
erstellt am: 12. Nov. 2013 11:41 <-- editieren / zitieren --> Unities abgeben:         
mein neuer code: *get,mpmax,mat,0,num,max !Knotenanzahl !Knotenpunkte *dim,nadata,array,mpmax,3 !Def. von Array ndata *vget,nadata(1,1),node,0,loc,x !laden der x koordinaten *vget,nadata(1,2),node,0,loc,y !laden der y koordinaten *vget,nadata(1,3),node,0,loc,z !laden der z koordinaten *dim,yielstr,array,mpmax,1 !*vget,yielstr(1,1),node,0,sx !laden der Fließgrenzenwerte !neue Fließgrenzen *dim,flgr,array,8278,3 !Def. von Array flgr
*vread,flgr(1,1)=1,fliessgrenze,csv,0,1,8278 !laden der x koordinaten aus Datei *vread,flgr(1,2)=1,fliessgrenze,csv,0,2,8278 !laden der y koordinaten aus Datei *vread,flgr(1,3)=1,fliessgrenze,csv,0,3,8278 !laden der z koordinaten aus Datei *dim,yiel,array,mpmax,1 *vread,yiel(1,1)=1,fliessgrenze,csv,0,4,8278 !laden der Fließgrenzwerte aus Datei *moper,yielstr(1,1),nadata(1,1),map,yiel(1,1),flgr(1,1),3 !mappen der Daten von flgr auf ndata ---> Fehlerdatei wieder im anhang also ich seh 2 (3) probleme,
1. er findet nicht die maximale knotenanzahl (kann ich beheben in dem ich statt der getfunktion einfach mpmax=6822 eingebe. (kommt ja im text davor wieviel knoten erzeugt wurden) 2. er kann nicht aus meiner fliessgrenze.csv - datei lesen.. aber warum? 3. wie setze ich auf jedes element ein *anderes* material? nr=1 *DO,nr,1,6822
MPTEMP,,,,,,,, MPTEMP,1,20 MPDATA,EX,1,,212000 ! Elastic modulus for material 1 MPDATA,PRXY,1,,.3 ! poissons ratio for material 1 TB,PLAS,1,1,22,MISO ! Data table for nonlinear material properties: Material 1 elasto plastic von Mises isotropic hardening TBTEMP,20 ! temperature TBPT,,umfromgrad.yielstr(1.nr) ! St�tzpunkte auf Fliesskurve -> ich müsste dann noch den umformgrad mappen?!
*ENDDO ach, der ganze code steht bei mir unter Statisch-mechanisch- Befehle (apdl) drin. ist richtig,oder? [Diese Nachricht wurde von DV01 am 12. Nov. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DV01 Mitglied

 Beiträge: 40 Registriert: 13.08.2013
|
erstellt am: 12. Nov. 2013 17:47 <-- editieren / zitieren --> Unities abgeben:         
Okey zur Übersicht: --> Bild auch im Ahnhang
Jetzt noch die Fragen  1. wie schließe ich von meinen Knoten auf die Elemente? woher weiss man dass zb. Element 12 durch die Knoten 1043,1205, 89 und 78 entsteht? 2. Materialdefinieren: ich nehme den Mittelwert als Fliessgrenze der Knoten die das Element bilden. also fliessgrenze von knoten (1 + knoten 2 + knoten 3 + knoten 4)/4. dann muss ich definieren dass mein streckgrenze (fliessgrenze) in diesem Element dem mittelwert entspricht. wie kann man zu einem element ein bestimmtes streckgrenze zuweisen? (das gleiche gilt fürs tangentenmodul) [Diese Nachricht wurde von DV01 am 13. Nov. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DV01 Mitglied

 Beiträge: 40 Registriert: 13.08.2013
|
erstellt am: 15. Nov. 2013 07:52 <-- editieren / zitieren --> Unities abgeben:         
|
DV01 Mitglied

 Beiträge: 40 Registriert: 13.08.2013
|
erstellt am: 15. Nov. 2013 10:44 <-- editieren / zitieren --> Unities abgeben:         
so... ich hab in den letzten tagen mich nochmal dahintergeklemmt und bin nun soweit. mein Probleme sind noch: 1. wie schließ ich von den Elementen auf die Knoten 2. wie definiere ich ein Material mit bilinearen Verfestigung?(durch angabe Streckgrenze + Tangentenmodul) 3. wie setze ich den Materialzeiger von Material J richtig auf mein Element J ist der Ablauf so realisierbar? hier nun der apdl-code (im anhang ist er auch): !Apdl-Code zum Mappen !Knoten des Netzes ermitteln
*get,mpmax,node,,num,max !Knotenanzahl
*dim,nadata,array,mpmax,3 !Def. von Array ndata
*vget,nadata(1,1),node,0,loc,x !laden der x koordinaten *vget,nadata(1,2),node,0,loc,y !laden der y koordinaten *vget,nadata(1,3),node,0,loc,z !laden der z koordinaten *dim,yielstr,array,mpmax,1 !Def. von Array yielstr !Einlesen der externen Koordinaten
defanzahl=8278 *dim,flgr,array,defanzahl,3 !Def. von Array flgr *vread,flgr(1,1),koord,txt,,,,defanzahl,1 !laden der x koordinaten aus Datei (F8.6)
*vread,flgr(1,2),koord,txt,,,,defanzahl,1 !laden der y koordinaten aus Datei (9xF8.6) *vread,flgr(1,3),koord,txt,,,,defanzahl,1 !laden der z koordinaten aus Datei (18xF8.6) !Einlesen der externen Fliessgrenzen *dim,yiel,array,mpmax,1 !Def. von Array yiel
*vread,yiel(1,1),fliessgrenze,txt,,,,defanzahl,1 !Laden der Fließgrenzwerte aus Datei (27xF8.6) !Mappen der Daten von flgr auf yielstr *moper,yielstr(1,1),nadata(1,1),map,yiel(1,1),flgr(1,1),3 !Mappen der Daten von flgr auf ndata
*get,enum,elem,,num,max !Elementgesamtanzahl
!DO-SCHLEIFE !von Knoten auf Elemente Schliessen *DO,J,1,enum,1 !DO-Schleife,beginnt bei J=1,elemno-fach,J+1/Durchgang *dim,elemno,array,8,1 !Element-Knoten-Zusammenhang elemno = knotennummer der Knoten !Knotennummer von ELement J !Material J Definieren a=yielstr(1,elemno(1,1)) !Fliessgrenze in jedem Knoten aus mapping b=yielstr(1,elemno(1,2)) c=yielstr(1,elemno(1,3)) d=yielstr(1,elemno(1,4)) e=yielstr(1,elemno(1,5)) f=yielstr(1,elemno(1,6)) g=yielstr(1,elemno(1,7)) h=yielstr(1,elemno(1,8))
m=(a+b+c+d+e+f+g+h)/8 !gemittelte Fliessgrenze von Material J in ELement J MPTEMP,J,20 !Temperatur von Material J MP,EX,J,210000 !E-Modul von Material J MP,PRXY,J,0.3 !Poisson-Zahl von Material J
!Material mit Bilinearen isotropen Verfestigung MP,tangmod,J,2954.2708 !Tangentenmodul von Material J MP,yldstrs,J,m !Streckgrenze/Fließgrenze von Material J !Materialzeiger zu Element zuweisen
MAT,1,,0,, !Materialdatenzeiger auf Element J
*Enddo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |