This is an expansion of a previous question I asked:
I have stress results in an output set in 7033. Plate Top Von Mises output vector. I would like to get results of Average Element stress.
Previously, in order to get nodal average, I was told to use a Result Browsing Object to load the elements I wanted to consider, and then call AddConversionColumn to get the nodal stress averages from the elemental stresses. This works great!
Now I am looking to convert the elemental stresses to element averages.
To do this without the API:
In Select Contour Options, Contour Type = Elemental, Data Conversion = Average, User Corner Data = [checked]
AddColumn does not give me an option for Data Conversion, so I believe it must be AddConversionColumn. The Femap Documentation states that AddConversionColumn can "convert existing Nodal results to Elemental, or vice versa", yet since it requires loading and element set prior with DataNeeded, it always seems to convert to nodal (since it starts with elements).
How do I use AddConversionColumn to get Average Element Stress data?
Here is what looks like when I get averaged nodal stresses instead of averaged elemental stresses (I do want to consider corner data as well):
rc = myResultBrowsingObject.DataNeeded(FT_ELEM, myElementSet.ID) rc = myResultBrowsingObject.AddConversionColumn(myOutSetID, myOutVectID, FRC_AVG, resultingColumnIndex) rc = myResultBrowsingObject.Populate() rc = myResultBrowsingObject.SendToDataTable
Solved! Go to Solution.
The conversion columns always work on an Element selection but the type of conversion is based on the type of results that you select. So, if you add a results vector that is elemental the column will be populated with nodal values. If you pick nodal results, it will have elemental values. When you are doing the "Element to Nodal" conversion that you want, you really don't have precise control over which nodes you will get. The column will contain results for all of the nodes connected to the selected elements. It works this way because the averaging being done depends on the selected elements so it needs to know which elements you want to include or exclude in the average at each node.
You can see the results of this by adding a call to SendToDataTable() after you Populate() the object.