module 10 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Macro Basics PowerPoint Presentation
Download Presentation
Macro Basics

Loading in 2 Seconds...

play fullscreen
1 / 16

Macro Basics - PowerPoint PPT Presentation


  • 226 Views
  • Uploaded on

Module 10. Macro Basics. 10. Macro Basics. One of the most powerful features of APDL (ANSYS Parametric Design Language) is the ability to create macros. A macro is a sequence of ANSYS commands stored in a file and executed just like a regular command. Some useful macro capabilities:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Macro Basics' - payton


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
10 macro basics
10. Macro Basics
  • One of the most powerful features of APDL (ANSYS Parametric Design Language) is the ability to create macros.
  • A macro is a sequence of ANSYS commands stored in a file and executed just like a regular command.
  • Some useful macro capabilities:
    • It can have arguments as in a standard ANSYS command.
    • Branching and looping to control the sequence of commands.
    • Interactive features such as graphical picking, prompting, and dialog boxes.
    • Nested macros — one macro calling a second one, which in turn calls a third one, etc. — up to 20 levels deep.

October 30, 2001

Inventory #001571

10-2

macro basics
...Macro Basics
  • In this chapter, we will present the basics of macro writing:

A. Creating a Macro

B. Macro with Arguments

C. Branching

D. Looping

E. General Guidelines

F. Workshop

  • For more details, please refer to your APDL Programmer’s Guide or the Programming in ANSYS seminar notes.

October 30, 2001

Inventory #001571

10-3

macro basics a creating a macro
Macro BasicsA. Creating a Macro
  • To create a macro, simply start a text editor, insert the desired sequence of commands, and save them to a file called name.mac.
    • name can be up to 32 characters, starting with a letter.
      • Spaces are not allowed in the name.
      • Also avoid special characters.
      • Make sure that name is not a valid ANSYS command by typing in name at Begin level and in all processors (PREP7, POST1, etc.). If you get the message … not a recognized command or macro… then the name is “safe.”
    • Extension .mac allows you to execute the macro as if it were a command by simply typing in name.

October 30, 2001

Inventory #001571

10-4

macro basics creating a macro
Macro Basics...Creating a Macro
  • Example:
    • A macro totvolume.mac to calculate the total volume of all elements:

esel,all ! Select all elements

etable,volume,volu ! Store volume in element table

ssum ! Sum element table items

*get,totvol,ssum,,item,volume ! totvol = sum of ‘volume’

*stat,totvol ! List totvol value

    • Issue totvolume in POST1 (after a solve) to calculate the total volume.

October 30, 2001

Inventory #001571

10-5

macro basics creating a macro1
Macro Basics...Creating a Macro
  • Search Path:
    • ANSYS will execute the first name.mac file it finds in the following search sequence:

1. /ansys60/docu

2. directory(ies) in ANSYS_MACROLIB environment variable

3. login directory (home directory on Windows systems)

4. current (working) directory

    • If the search finds both upper-case and lower-case files of the same name, the upper-case file is used.

October 30, 2001

Inventory #001571

10-6

macro basics b macro with arguments
Macro BasicsB. Macro with Arguments
  • By using special parameter names, you can create a macro with up to 20 arguments:
    • NAME, arg1, arg2, arg3, … , ar10, ar11, ar12, … , ar20
  • The arguments behave just like the fields on a standard ANSYS command and can accept:
    • numbers
    • alphanumeric characters (enclosed in single quotes)
    • parameters (scalar or array)
    • parametric expressions
  • The meaning of the arguments depends on how you want to design the macro.

October 30, 2001

Inventory #001571

10-7

macro basics macro with arguments
Macro Basics...Macro with Arguments
  • For example, we could design totvolume.mac to calculate the total volume for all elements of a specified type:
    • TOTVOLUME, TYPE
  • The macro would then look like this:

esel,s,type,,arg1 ! Select elements of specified type

etable,volume,volu ! Store volume in element table

ssum ! Sum element table items

*get,totvol,ssum,,item,volume ! totvol = sum of ‘volume’

*vwrite,arg1,totvol ! Write out arg1 and totvol

(‘Total volume for type ’, F4.0, ‘ elements = ’, F8.2)

  • Issuing totvolume,1 in POST1 after a solution will then result in:

October 30, 2001

Inventory #001571

10-8

macro basics macro with arguments1
Macro Basics...Macro with Arguments
  • Notes:
    • The special parameter names ARG1-ARG9 and AR10-AR99 are local parameters valid only within a macro.
      • They hold no meaning once the macro has finished execution and control is returned to “main” ANSYS.
      • Avoid using these names elsewhere in the model.
    • Whenever you use arguments, be sure to describe their meaning by including comments in the macro.

For example, the following comments at the beginning of totvolume.mac would be helpful.

! Macro TOTVOLUME.MAC to calculate total volume of elements

! Usage: TOTVOLUME, TYPE - valid only in POST1 after a solve

! TYPE = valid element type number

esel,s,type,,arg1 ! Select elements of specified type

October 30, 2001

Inventory #001571

10-9

macro basics c branching
By using an IF-THEN-ELSE construct, you can execute a command or block of commands only if certain conditions are met.

Additional comparison operation are available for the *IF and *ELSEIF commands with AND, OR, or XOR options.

*IF,A,EQ,B,AND,C,GT,D,THEN

Branching begins with *IF and ends with *ENDIF. *ELSEIF and *ELSE are also allowed in between:

*if, x, eq, y, then





*elseif, x, eq, z, then





*else





*endif

*IF constructs can be nested up to twenty levels

Macro BasicsC. Branching

October 30, 2001

Inventory #001571

10-10

macro basics branching
The condition can be:

x, EQ, y ! x = y

x, NE, y ! x  y

x, LT, y ! x < y

x, GT, y ! x > y

x, LE, y ! x  y

x, GE, y ! x  y

x, ABLT, y ! |x| < |y|

x, ABGT, y ! |x| > |y|

x and y can be numbers, parameters, or parametric expressions.

The action can be:

THEN to execute the subsequent block of commands

*EXIT to exit a do-loop

*CYCLE to skip to the end of a do-loop

The action takes place only if the condition is true. Otherwise, ANSYS will move on to *ELSEIF (if present), *ELSE (if present), and *ENDIF.

Macro Basics...Branching

*if, x, eq, y,then

October 30, 2001

Inventory #001571

10-11

macro basics branching1
Macro Basics...Branching
  • For example, you can add an if-test to totvolume.mac to test for valid values of the input argument:

*if,arg1,lt,1,then ! If arg1 < 1

*msg,warn ! Issue a warning...

Element type number must be 1 or greater

/eof ! … and exit the macro

*endif

esel,s,type,,arg1 ! Select elements of specified type

etable,volume,volu ! Store volume in element table

ssum ! Sum element table items

...

  • Issuing totvolume,-1 will now result in:

October 30, 2001

Inventory #001571

10-12

macro basics d looping
Macro BasicsD. Looping
  • Do-loops allow you to loop through a block of commands several times.
  • There is virtually no limit to what you can include in an ANSYS do-loop. You can loop through an entire analysis session — including preprocessing, solution, and postprocessing — if the situation warrants it.
  • *DO or *DOWHILE begins a loop, *ENDDO ends it.
    • You can control the looping using *EXIT, which exits the do-loop, and *CYCLE, which skips to the end of the do-loop.
    • Exit and cycle can also be done as a result of an if-test.
  • As an example, we can extend the totvolume.mac macro to loop through all element types in the model and store the volume for each type in an array parameter.

October 30, 2001

Inventory #001571

10-13

macro basics looping
Macro Basics...Looping

! -- Macro TOTVOLUME.MAC to calculate total element volume.

! -- Usage: Issue TOTVOLUME in POST1 after a solution.

! -- Result:

! -- a) evolume(i) = total volume for element type i

! -- b) totvol = grand total volume

!

*get,numtypes,etype,,num,count ! Get number of element types

*dim,evolume,array,numtypes ! Open a numtypes x 1 array

*do,i,1,numtypes ! For i = 1 - numtypes...

esel,s,type,,i ! Select elements of type i

etable,volume,volu ! Store volume in element table

ssum ! Sum element table items

*get,totvol,ssum,,item,volume ! totvol = sum of ‘volume’

evolume(i) = totvol ! Store totvol in evolume(i)

*enddo ! End of do-loop

*vscfun,totvol,sum,evolume(i) ! totvol = grand total volume

esel,all ! Activate full set of elements

October 30, 2001

Inventory #001571

10-14

macro basics e general guidelines
Macro BasicsE. General Guidelines
  • Start with small, simple macros.
  • As you create the macro, remember that you can cut and paste the commands into the ANSYS Input window to test and make sure that the command sequence is correct.
  • Use comments to describe the intent or expected outcome of commands.
  • Place your “personal” macros in your login directory.
  • Place company-wide macros in a directory that everyone can access, and include that directory in ANSYS_MACROLIB environment variable.

October 30, 2001

Inventory #001571

10-15

macro basics f workshop
Macro BasicsF. Workshop
  • This workshop consists of the following problem:

W9. Verifying Pressures

Please refer to your Workshop Supplement for instructions.

October 30, 2001

Inventory #001571

10-16