Skip to main content

ACT Console

The Humble Hammer

Not being very handy around the house, I own a cheap low cost hammer. But as any pro would tell you, no one uses a hammer for roofing. It is very inefficient and gives you a sore arm.

We all want to avoid repeated stress-related injuries (physical and emotional). "Mouse Finger" injury is very real! To mitigate this, Ansys Mechanical has this really cool Automation API. Though intended for ACT debugging and creation, the ACT Console allows the user to input commands that is immediately reflected inside Mechanical. This functions like the Input Line in Ansys Classic! Unfortunately Mechanical only speaks Python and not APDL; so I'm just starting to learn a new language which is hard for an old guy like me. The potential benefits are enormous. Here are some examples:

  1. Say you do non-linear analysis 60% of the time and use the the same settings from a mental checklist. Now you could create Python script to automate those clicks. 
  2. If you have many time steps and wish to set "carry over time step" to "On" for all solution steps in one go
  3. Create boundary condition objects automatically with name selection created in geometry (e.g. Fixed Support)

ACT Console
The ACT Console can be activated by the little button with a Chevron symbol.
View ACT Console

It is an IronPython 2.7* interpreter so space indentation is important. After you refined your code, you could click on the three little dots to "Add snippet". After naming it, the snippet is easily retrieved on the left panel for future projects with a simple click-Enter.
ACT Console in Action

Some examples below...

Automatic Setup for Selected Nonlinear Analysis Parameters
analysis_settings = ExtAPI.DataModel.Project.Model.Analyses[0].AnalysisSettings             
analysis_settings.LargeDeflection = True    # Large Deflection
analysis_settings.SaveMAPDLDB = True   # Save MAPDL DB model
analysis_settings.NodalForces = Ansys.ACT.Automation.Mechanical.Enums.OutputControlsNodalForcesType.Yes  # Save Nodal Force Results

Set carry over time step for second till last solution step to be "On"
analysis_settings = ExtAPI.DataModel.Project.Model.Analyses[0].AnalysisSettings
n = analysis_settings.NumberOfSteps
for ct in range(n-1):
    ct2 = ct+2

Create Fixed Support automatically with name selection that has 'fix' in it
num = ExtAPI.DataModel.Project.Model.NamedSelections.Children.Count
for ct in range(num):
   nmtmp = ExtAPI.DataModel.Project.Model.NamedSelections.Children[ct].Name   
   nm = nmtmp.lower() # lowercase for comparison
   if nm.find('fix')>=0:
      cker = nmtmp+' is fixed'   # found one that mets criteria
      print cker
      fixfix = ExtAPI.DataModel.Project.Model.Analyses[0].AddFixedSupport()
      fixfix.Location = ExtAPI.DataModel.Project.Model.NamedSelections.Children[ct]
      fixfix.Name = nmtmp+'_auto'

Other Resources
Additional examples can be found here: Link
The Reference Manual is especially useful in finding commands: Link
ACT Developer's Guide: Link

This and Other Related Posts
ACT Console: Link
Text List of Named Selection: Link
ACT to Automate Post-Processing: Link


  1. Thank you for a helpful post!
    You mentioned that the reference manual is especially useful in finding commands, I on the other hand am struggling with getting a grasp of the logic behind it. When should one for example use "ExtAPI.Datamodel..." and when should one use "Ansys.ACT.Automation..."?

    1. I agree it's not straightforward. I usually try to start out with a given example that is close to what I want, then use the online help to search for the right keywords.

  2. I am getting and error running this code. Can anyone suggests?
    The error is as follows:
    " 'NoneType' object has no attribute 'Children':line 24"

  3. Please could you help me with the command to get to the Object Generator by the ACT Console?


Post a Comment

Popular posts from this blog

ANSYS User Defined Results

There is an abundant of options in ANSYS classic when one wishes to post process results. ANSYS workbench default pull down menu post processing options are more limited but they can still be accessed via the User Defined Results. One way not commonly used but can come in handy is as follows: Zeroth: Under Analysis Settings, there is "Output Controls" where you can toggle to "Yes" what you would like to save before the solution starts. This is like OUTRES in APDL. Output Controls First: After solving the model, click on Solution in the tree to highlight it. Solution Second: Click on Worksheet in the toolbar. Worksheet Third: In the worksheet, you will see list of results that are saved. Right click on it to create the User Defined Results. Create User Defined Results So here we have it. You could of look up the different expressions in the help document but I find this method of accessing the results convenient.  Example: Aspec

Export Stiffness Matrix from Ansys

It is sometimes useful to extract the mass and stiffness matrix from Ansys.     *SMAT, MatK, D, IMPORT, FULL, file.full, STIFF       *PRINT, matk, matk, txt Exporting mass matrix would be similar:       *SMAT, MatM, D, import, full, file.full, MASS The above script uses APDL Math to get the job done. (Please see previous post for another example). The ordering of the matrix is unfortunately not concurrently exported. To verify the sequencing is as expected, we will work to replicate a truss example in the  Finite Element Trusses course notes by Bob Greenlee. Figure 1: Truss Problem Setup Model Creation Script to create model: /prep7 !! Creates Model to reflect course notes ! Properties et ,1,1  mp , ex, 1, 29.5e6 r , 1, 1 ! Geometry n ,1 $  n ,2, 40 $  n ,3, 40, 30 $  n ,4, 0, 30 e ,1,2 $  e ,2,3 $  e ,1,3 $  e ,3,4 ! Boundary Conditions d ,1,ux,0 $  d ,1,uy,0 d ,2,uy,0 d ,4,ux,0 $  d ,4,uy,0 f ,2,fx,20e3 f ,3,fy,-25e3 ! solves /solu eqslv , sparse

ANSYS APDL Syntax Highlighting editor

Notepad++ with APDL User Defined Language The editor of my choice is Notepad++  with the available User Defined Language Files for APDL . You can install it without administrative privileges via the zip file. The best part of it is, it's FREE! After installing Notepad++, go to "Language>Define Your Language..." then "Import" the XML file downloaded from the above link. Remember to restart Notepad++ so that the language changes will take into effect. Opening up any *.inp or *.ans files should automatically switch highlighting to APDL. I made some minor edits. Here's my XML file: LINK . I also heard Sublime Text and  Ultraedit  has more advance features but they aren't (totally) free.