10.06.2014 Views

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 ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Programul ANSYS generează doi parametri interni _STATUS şi _RETURN care pot<br />

<strong>fi</strong> folosiŃi în macrouri. De exemplu funcŃiile de modelare solidă generează parametrul<br />

_RETURN care conŃine rezultatul exe<strong>cu</strong>tării funcŃiei. De exemplu exe<strong>cu</strong>tarea unei comenzi<br />

de generare a <strong>unui</strong> Keypoint <strong>cu</strong> comanda K atribuie parametrului _RETURN numărul acelui<br />

Keypoint. Exe<strong>cu</strong>Ńia unei comenzi oarecare (inclusiv un macro) generează parametrul<br />

_STATUS. Acest parametru prin valoarea lui reflectă starea exe<strong>cu</strong>tării, adică:<br />

0 (fără eroare);<br />

1 (o notă explicativă);<br />

2 (un warning);<br />

3 (<strong>cu</strong> eroare).<br />

1.1.12. Exemple simple de macrouri<br />

Primul exemplu de macrou numit offset.mac, deplasează setul nodurilor selectate în<br />

cadrul preprocesorului PREP7. Acest macrou este prezentat numai din considerente<br />

demonstrative deoarece comanda NGEN este mai e<strong>fi</strong>cientă. Deoarece toate comenzile<br />

inclusiv comentariile unor macrouri prede<strong><strong>fi</strong>nite</strong> sunt în limba engleză, următorul exemplu se<br />

prezintă aşa <strong>cu</strong>m este descris în manualul APDL din ANSYS:<br />

! Macro to offset selected nodes in PREP7<br />

! The below <strong>fi</strong>le is saved as: offset.mac<br />

! Usage: OFFSET,DX,DY,DZ<br />

/NOP<br />

! suppress printout for this macro<br />

*GET,NNODE,NODE,,NUM,MAX ! get number of nodes<br />

*DIM,X,,NNODE<br />

*DIM,Y,,NNODE<br />

*DIM,Z,,NNODE<br />

*DIM,SEL,,NNODE<br />

! set up arrays for node locations<br />

! set up array for select vector<br />

*VGET,X(1),NODE,1,LOC,X ! get coordinates<br />

*VGET,Y(1),NODE,1,LOC,Y<br />

*VGET,Z(1),NODE,1,LOC,Z<br />

*VGET,SEL(1),NODE,1,NSEL ! get selected set<br />

*VOPER,X(1),X(1),ADD,ARG1 ! offset locations<br />

*VOPER,Y(1),Y(1),ADD,ARG2<br />

*VOPER,Z(1),Z(1),ADD,ARG3<br />

! *DO,I,1,NNODE ! store new positions<br />

! *IF,SEL(I),GT,0,THEN ! this form takes 98 sec for 100,000 nodes<br />

! N,I,X(I),Y(I),Z(I)<br />

! *ENDIF<br />

! *ENDDO<br />

*VMASK,SEL(1) ! takes 3 seconds for 100,000 nodes<br />

N,(1:NNODE),X(1:NNODE),Y(1:NNODE),Z(1:NNODE)<br />

X(1) =<br />

! delete parameters (cleanup)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!