Prezentarea unui program cu elemente finite capabil a fi folosit în ...
Prezentarea unui program cu elemente finite capabil a fi folosit în ... Prezentarea unui program cu elemente finite capabil a fi folosit în ...
Y(1) = Z(1) = SEL(1) = I= NNODE= /GO ! resume printout Cel de-al doilea exemplu numit bilinear.mac, evaluează tensiunile dintr-un model deja rulat static şi atribuie materialul 1 elementelor supuse la întindere şi materialul 2 elementelor supuse la compresiune (aceste două materiale trebuie să fie deja definite în model şi pot avea proprietăŃi diferite la întindere şi compresiune) apoi mai rulează problema pentru a corecta eventual selecŃia elementelor şi soluŃia problemei. Acest macrou este util a fi rulat după rezolvarea unei analize statice. ARG1 este numărul de iteraŃii (implicit este 2). /nop _niter = arg1 ! set number of iterations *if,_niter,lt,2,then _Niter = 2 *endif *do,iter,1,_niter ! loop on number of iterations /post1 set,1,1 *get,ar11,elem,,num,maxd ! Get number of elements *dim,_s1,,ar11 ! array for element s1 *dim,_s3,,ar11 ! array for element s3 etable,sigmax,s,1 ! s1 is in element table sigmax etable,sigmin,s,3 ! s3 is in element table sigmin *vget,_s1(1),elem,1,etab,sigmax ! get element maximum stress in s1 *vget,_s3(1),elem,1,etab,sigmin ! get element minimum stress in s3 *dim,_mask,,ar11 ! array for mask vector *voper,_mask(1),_s1(1),lt,0 ! true if max. stress < 0 *vcum,1 ! accumulate compression elements *vabs,0,1 ! absolute value of s3 *voper,_mask(1),_s3(1),gt,_s1(1) ! true if abs(minstr) > maxstr finish /prep7 material mods mat,1 properties emod,all ! go to prep7 for element ! set all materials to tension *vput,_mask(1),elem,1,esel ! select compression elements mat,2 ! change selected elements to compression emod,all esel,all finish _s1(1)= _s3(1)= _mask(1)= ! select all elements ! clean up all vectors (set to zero)
solve solve finish *enddo _niter= _iter= /gop ! rerun the analysis ! end of iterations ! clean up iteration counters 1.1.13. Aspecte de interfaŃă în lucrul GUI Atunci când se rulează un macrou în modul de lucru GUI, programul ANSYS asigură o serie de facilităŃi suplimentare pentru lucrul cu macrouri. Astfel este posibil să: • Se introducă un parametru scalar de la tastatură folosind comanda *ASK; • Se creeze o fereastră de dialog pentru a introduce mai multe valori pentru o serie de parametri; • Se afişeze un mesaj folosind comanda *MSG; • Se selecteze anumite entităŃi cu ajutorul mousului; • Se deschidă orice fereastră de dialog. InformaŃii suplimentare legate de comenzile care lucrează cu parametri se găsesc în manualul APDL Programmer's Guide.
- Page 1 and 2: Lab. 01. Prezentarea unui program c
- Page 3 and 4: atribuie parametrului XG5 coordonat
- Page 5 and 6: SIGN(x,y) Valoarea absolută a lui
- Page 7 and 8: Se menŃionează că elementele par
- Page 9 and 10: Lucrul interactiv este permis numai
- Page 11 and 12: 1.1.7. OperaŃii cu vectori şi mat
- Page 13 and 14: STDV (deviaŃia standard: radical d
- Page 15 and 16: SOLV (rezolvarea unui sistem de ecu
- Page 17 and 18: D = 2; L = 3, D c = 4; H = 1 atunci
- Page 19 and 20: Limbajul APDL permite până la 20
- Page 21: Programul ANSYS generează doi para
Y(1) =<br />
Z(1) =<br />
SEL(1) =<br />
I=<br />
NNODE=<br />
/GO<br />
! resume printout<br />
Cel de-al doilea exemplu numit bilinear.mac, evaluează tensiunile dintr-un model<br />
deja rulat static şi atribuie materialul 1 <strong>elemente</strong>lor supuse la întindere şi materialul 2<br />
<strong>elemente</strong>lor supuse la compresiune (aceste două materiale trebuie să <strong>fi</strong>e deja de<strong><strong>fi</strong>nite</strong> în model<br />
şi pot avea proprietăŃi diferite la întindere şi compresiune) apoi mai rulează problema pentru a<br />
corecta eventual selecŃia <strong>elemente</strong>lor şi soluŃia problemei. Acest macrou este util a <strong>fi</strong> rulat<br />
după rezolvarea unei analize statice. ARG1 este numărul de iteraŃii (implicit este 2).<br />
/nop<br />
_niter = arg1<br />
! set number of iterations<br />
*if,_niter,lt,2,then<br />
_Niter = 2<br />
*endif<br />
*do,iter,1,_niter ! loop on number of iterations<br />
/post1<br />
set,1,1<br />
*get,ar11,elem,,num,maxd ! Get number of elements<br />
*dim,_s1,,ar11<br />
! array for element s1<br />
*dim,_s3,,ar11<br />
! array for element s3<br />
etable,sigmax,s,1 ! s1 is in element table sigmax<br />
etable,sigmin,s,3 ! s3 is in element table sigmin<br />
*vget,_s1(1),elem,1,etab,sigmax ! get element maximum stress in<br />
s1<br />
*vget,_s3(1),elem,1,etab,sigmin ! get element minimum stress in<br />
s3<br />
*dim,_mask,,ar11 ! array for mask vector<br />
*voper,_mask(1),_s1(1),lt,0 ! true if max. stress < 0<br />
*v<strong>cu</strong>m,1<br />
! ac<strong>cu</strong>mulate compression elements<br />
*vabs,0,1<br />
! absolute value of s3<br />
*voper,_mask(1),_s3(1),gt,_s1(1) ! true if abs(minstr) > maxstr<br />
<strong>fi</strong>nish<br />
/prep7<br />
material mods<br />
mat,1<br />
properties<br />
emod,all<br />
! go to prep7 for element<br />
! set all materials to tension<br />
*vput,_mask(1),elem,1,esel ! select compression elements<br />
mat,2<br />
! change selected elements to compression<br />
emod,all<br />
esel,all<br />
<strong>fi</strong>nish<br />
_s1(1)=<br />
_s3(1)=<br />
_mask(1)=<br />
! select all elements<br />
! clean up all vectors (set to zero)