This is one of those questions that comes up every once in a while that is not so obvious at first glance, but that is simple once you understand how ANSYS Mechanical interacts with ANSYS Mechanical APDL. After a couple of email exchanges around a tech support question, we thought it would be good to share with everyone.
Before we get started, if you need a refresher on Command Objects in ANSYS Mechanical, the way in which you send APDL commands to the ANSYS Mechanical APDL solver, here is a seminar from a couple of years ago that covers the whole deal:
The basic problem is this: you have an APDL script you execute as a command object that does some sort of model interrogation or stores the result of some calculation, and you want to use that parameter in the parameter manager or in DesignXplorer. If you look at the details view for a command object you will notice that it only supports input parameters: ARG1-ARG9.
If you look at the example (silly) macro you will see that it:
- Grabs component (named selection) END1
- Figures out how many nodes are attached to END1 (NMND)
- Takes ARG1 as the total load applied load
- Calculates the per node load by dividing the total load by the number of loads.
- Applies that per node load
- Reselects all the nodes
If I want to know how many nodes I put the load on and what the per node load is I’m kind of stuck here. Any command object you add to the tree above the Solution branch only allows input parameters.
But a command snippet applied in the Solution branch is different, it allows you to pull parameters back and share them through the parameter manager.
When you first insert a command object you only get input parameters (ARG1-ARG9) as usual, and an empty section called “Results”
The way you get result parameters, or what I think should be called “Output Parameters” is you create a parameter in the command object’s APDL script that starts with “my_” When you click outside the text input window the program parses you script and if it finds any “my_” parameters in the text, it sticks them in the Results section:
Note, the default is “my_” but you can change it n the “Output Search Prefix” line in the Definition block.
Initially they will show up pinkish because the model has not been run and they are not defined. Click on the box to make them parameters that get passed outside of the program and then run:
If you pop back out to the project view you will see that we now have a Parameter Set bar with both input and output parameters:
And if you open the parameter manager up you can see the input and output parameters:
This works because all ANSYS mechanical is doing is making one big batch input file for ANSYS MAPDL. That file contains any command objects you insert into the tree and extracts any parameters that you tagged in a post processing command object for return to ANSYS Mechanical.