Photo by James Owen on Unsplash A surprisingly popular blog-post written here is Exporting Stiffness Matrix from Ansys . A sensible follow up question is what can one do with the exported stiffness matrix? In a recent Xansys Forum post, a question was raised on how we can edit the stiffness matrix of a superelement and use it for our model. An approach presented below is to first create a superelement that has the same number of DOF and nodal location that will serve as a template. An APDL script can then be written to edit the stiffness matrix entries as desired before exporting to a new superelement *.SUB file for use in future models. The self-contained script below demonstrates this. /prep7 et ,1, 185 mp , ex, 1, 200e3 mp , prxy, 1, 0.33 w = 0.1 ! single element (note nodal locations) n , 1, w, -w, -w n , 2, w, w, -w n , 3, -w, w, -w n , 4, -w, -w, -w n , 5, w, -w, w n , 6, w, w, w n , 7, -w, w, w n , 8, -w, -w, w e , 1, 2, 3, 4, 5, 6, 7, 8 /solu antype , substr ! analy
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 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