Skip to main content

ACT to Automate Post-Processing


I gushed about the ACT console in a previous post. Here's another example of automatically populating some post processing objects for all time steps inside Mechanical after a solve. Copy-and-paste it in Mechanical ACT Console Command Line, then hit the Enter key.

Text file of script: Link.

# Extracts at each time step...
# x, y, z stress components, von Mises stress, max principal stress, total deformation, and x, y, z normal deformation components

numsteps = ExtAPI.DataModel.Project.Model.Analyses[0].AnalysisSettings.NumberOfSteps

for ct in range(numsteps):
   setTime = str(ct+1) + " [s]"
   nowTime = str(ct+1) + "s"

   # Normal Stresses
   sx=ExtAPI.DataModel.Project.Model.Analyses[0].Solution.AddNormalStress()
   sx.NormalOrientation =NormalOrientationType.XAxis
   sx.DisplayTime=Quantity(setTime)
   sx.Name = "Normal Stress X at "+nowTime
   sy=ExtAPI.DataModel.Project.Model.Analyses[0].Solution.AddNormalStress()
   sy.NormalOrientation =NormalOrientationType.YAxis
   sy.DisplayTime=Quantity(setTime)
   sy.Name = "Normal Stress Y at "+nowTime
   sz=ExtAPI.DataModel.Project.Model.Analyses[0].Solution.AddNormalStress()
   sz.NormalOrientation =NormalOrientationType.ZAxis
   sz.DisplayTime=Quantity(setTime)
   sz.Name = "Normal Stress Z at "+nowTime

   # Equivalent Stress
   se=ExtAPI.DataModel.Project.Model.Analyses[0].Solution.AddEquivalentStress()
   se.DisplayTime=Quantity(setTime)
   se.Name = "Equivalent Stress at "+nowTime

   # Maximum Principal Stress
   sm = ExtAPI.DataModel.Project.Model.Analyses[0].Solution.AddMaximumPrincipalStress()
   sm.DisplayTime=Quantity(setTime)
   sm.Name = "Maximum Principal Stress at "+nowTime

   # Total Deformation
   dt = ExtAPI.DataModel.Project.Model.Analyses[0].Solution.AddTotalDeformation()
   dt.DisplayTime=Quantity(setTime)
   dt.Name = "Total Deformation at "+nowTime

   # Directional Deformation
   dx = ExtAPI.DataModel.Project.Model.Analyses[0].Solution.AddDirectionalDeformation()
   dx.NormalOrientation=NormalOrientationType.XAxis
   dx.DisplayTime=Quantity(setTime)
   dx.Name = "Directional Deformation X at "+nowTime
   dy = ExtAPI.DataModel.Project.Model.Analyses[0].Solution.AddDirectionalDeformation()
   dy.NormalOrientation=NormalOrientationType.YAxis
   dy.DisplayTime=Quantity(setTime)
   dy.Name = "Directional Deformation Y at "+nowTime
   dz = ExtAPI.DataModel.Project.Model.Analyses[0].Solution.AddDirectionalDeformation()
   dz.NormalOrientation=NormalOrientationType.ZAxis
   dz.DisplayTime=Quantity(setTime)
   dz.Name = "Directional Deformation Z at "+nowTime

# Evaluates All Results
ExtAPI.DataModel.Project.Model.Analyses[0].Solution.EvaluateAllResults()

# End of Script


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

Comments

  1. This is really nice, unfourtunately you don't get proper documentation on this from ANSYS. Is there a way to not only generate thse objects but also to export the values? Similar like right click -> export data, but programmatically.

    ReplyDelete

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.