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


Post a Comment