[Ironpython-users] Scripting Ansys with IronPython - Unable to call values from dictionary

Ossi Heinonen ossi.heinonen at tut.fi
Fri Nov 25 08:12:36 CET 2011


Hi again

Could it be possible to use some sort of wildcard method in this one? Like

     verifiedValues['*P1*']

or

     verifiedValues['?P1?']

Just a thought that seems intuitive, but is it doable?

Best regards
Ossi Heinonen


On 24.11.2011 10:54, Ossi Heinonen wrote:
> 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
>
> _______________________________________________
> Ironpython-users mailing list
> Ironpython-users at python.org
> http://mail.python.org/mailman/listinfo/ironpython-users


More information about the Ironpython-users mailing list