[Ironpython-users] Scripting Ansys with IronPython - Unable to call values from dictionary
Ossi Heinonen
ossi.heinonen at tut.fi
Thu Nov 24 09:54:15 CET 2011
Hi all!
I have a problem with scripting the FEA software Ansys Workbench with
IronPython. I need to come up with a script that gets the variable
values in an optimum point that I have found using the optimization tools.
I found some help for this with "VerifyCandidate" in the scripting guide
in the Ansys manual and did this in the Ansys Workbench command window:
IronPython 2.6.10920.0 on .NET 2.0.50727.3625
system1 = GetSystem(Name="GDO")
optimization1 = system1.GetContainer(ComponentName="Optimization")
optimizationModel1 = optimization1.GetModel()
verifiedValues = optimizationModel1.VerifyCandidate(Index=0)
print verifiedValues
{'/Optimization/OutputParameter:P3': '-0.035979796200990677 [mm]',
'/Optimization/InputParameter:P1': '5.5 [mm]',
'/Optimization/OutputParameter:P2': '0.07417053282883164 [kg]'}
Now I have a dictionary with my one design variable P1 and two responses
P2 and P3 with their values at the optimum. Looking good so far. So now
I only need to get my hands on the values and I'm home free.
I think this should give me the value of the design variable P1:
verifiedValues['/Optimization/InputParameter:P1']
KeyNotFoundException: /Optimization/InputParameter:P1
But no, I get an error saying that there is no such key. But when I list
the keys, it's right there:
dict.keys(verifiedValues)
['/Optimization/OutputParameter:P3',
'/Optimization/OutputParameter:P2', '/Optimization/InputParameter:P1']
So this is my problem. I've tried calling it without the quotes or with
double quotes and any other variation that I've come up with. If I make
a new dictionary manually with the exact same keys and values copied
from the screen it works just fine. But I can't get anything out of the
original dictionary.
Any ideas on how to get it working or what could be done to debug this?
The only idea I've had is that for some reason the keys are printed
incorrectly and some characters are actually missing from their names,
but I might be totally off with this.
Needless to say that I'm a total newbie with Python. Probably the right
people to ask are other Ansys users, but I've had no luck finding one
that could help me. Maybe my luck will chance with you Python gurus :)
All help is greatly appreciated!
Best regards
Ossi Heinonen
Researcher
Tampere University of Technology
Finland
More information about the Ironpython-users
mailing list