How do I export pictures for multiple design points?
I am running a simulation for which I create figures for various results. I want to export them for each design point. How can I do this?
Comments
-
Here's a sample code to use in a Python Code object. For this to work, you will have to use version 23.1 and above as picture export in batch mode did not work in earlier versions.
Small bonus: you'll see how to retrieve the design point number and the user_files folder without the need for executing a script at project page level.
- def after_post(this, solution):# Do not edit this line
- """
- Called after post processing.
- Keyword Arguments :
- this -- the datamodel object instance of the python code object you are currently editing in the tree
- solution -- Solution
- """
- figures=ExtAPI.DataModel.GetObjectsByType(DataModelObjectCategory.Figure)
- import os
- cmd = 'returnValue(GetUserFilesDirectory())'
- wd=this.Parent.Parent.WorkingDir
- dp=wd.split('\\')[-4]
- user_dir=os.path.join(wd,'..\\..\\..\\user_files')
- for fig in figures:
- ExtAPI.DataModel.Tree.Activate(fig)
- filename=user_dir+'\\'+'Figure - '+fig.Parent.Name+'_'+dp+'.jpg'
- ExtAPI.Graphics.ExportImage(filename)
1 -
Hello @Pierre Thieffry ,
thank you for the post, it is really helpful!
I am trying to do some modifications on the legend text, to increase it.
I've tried something like this based on the documentation which I found on the web, but it is not working:
ExtAPI.Graphics.ExportImage(filename, GraphicsImageExportFormat('png'), GraphicsImageExportSettings.FontMagnification(1.3))
Can you help me please with this ?
0 -
Figures in this example mean static generated images and not the dynamic Ansys plots. .AddFigure() will add the figure below any selected result.
I have an adaptation that will generate the image if it doesn't already exist and write that image to file:
- def after_post(this, solution):# Do not edit this line
- """
- Called after post processing.
- Keyword Arguments :
- this -- the datamodel object instance of the python code object you are currently editing in the tree
- solution -- Solution
- """
- import wbjn
- import os
- dpn = wbjn.ExecuteCommand(ExtAPI,"returnValue(a+Parameters.GetActiveDesignPoint().Name)",a="DP")
- user_dir = wbjn.ExecuteCommand(ExtAPI,"returnValue(GetUserFilesDirectory())")
- results = ExtAPI.DataModel.GetObjectsByType(DataModelObjectCategory.Result)
- for result in results:
- ExtAPI.Log.WriteMessage('bob')
- children = result.Children
- if not any(i for i in children if 'Figure' in i.ToString()):
- children = result.AddFigure()
- elif 'Figure' in children[0].ToString():
- children = children[0]
- children.Activate()
- filename = os.path.join(user_dir,'Figure - '+children.Parent.Name+'_'+dpn+'.jpg' )
- ExtAPI.Log.WriteMessage(filename)
- ExtAPI.Graphics.ExportImage(filename,GraphicsImageExportFormat.JPG)
0