Example HFSS Scripts ==================== Below are a variety of scripts that you can reference to do different things in HFSS. These scripts are only compatible with HFSS 16, but each script is completely self-contained. You can copy the script to a file and either run it from the (:ref:`command line `) or run the script in HFSS by clicking ``Tools → HFSS`` in the GUI. Creating a New Project ---------------------- Create a new project; this is the base for many scripts from the command line. If you would rather open an existing script, see `Opening an Existing Project`_. .. code-block:: python """Create a new project""" import ScriptEnv ScriptEnv.Initialize("Ansoft.ElectronicsDesktop") oDesktop.RestoreWindow() oProject = oDesktop.NewProject() Opening an Existing Project --------------------------- Often you'll want to open an existing project (e.g., a template file) and make changes to it. The following script can open a project in HFSS. .. note:: For this script to work for you, you will need to change line 5 to open a project that exists on your computer. .. code-block:: python """Open an existing project""" import ScriptEnv ScriptEnv.Initialize("Ansoft.ElectronicsDesktop") oDesktop.RestoreWindow() oDesktop.OpenProject("C:/Users/pier3595/Desktop/Project1.aedt") .. note:: The rest of the code samples requires the file AntennaTemplate_ to be on your desktop in order tok run. You can download it and save it to your desktop, and the following examples will "just work." .. _setup-change: Changing a setup frequency and sweep frequency ---------------------------------------------- .. include:: requires_antenna_template.rst .. code-block:: python """"Change sweep solution frequency and a sweep frequency""" # Locate the project file on your desktop # These three lines are just plain Python, and have *nothing* to do with HFSS. import os project_file = os.path.join(os.path.expanduser('~'), 'Desktop') project_file = os.path.join(project_file, 'AntennaTemplate.aedt') import ScriptEnv ScriptEnv.Initialize("Ansoft.ElectronicsDesktop") oDesktop.RestoreWindow() oDesktop.OpenProject(project_file) oProject = oDesktop.SetActiveProject("AntennaTemplate") oDesign = oProject.SetActiveDesign("HFSSDesign1") oDesign.ChangeProperty(["NAME:AllTabs", ["NAME:HfssTab", ["NAME:PropServers", "AnalysisSetup:Setup8"], ["NAME:ChangedProps", [ "NAME:Solution Freq", "MustBeInt:=", False, "Value:=", "500MHz"]]]]) oDesign.ChangeProperty([ "NAME:AllTabs", ["NAME:HfssTab", ["NAME:PropServers", "AnalysisSetup:Setup8:Sweep1"], ["NAME:ChangedProps", [ "NAME:Start", "MustBeInt:=", False, "Value:=", "460MHz"]]]]) oDesign.ChangeProperty([ "NAME:AllTabs", [ "NAME:HfssTab", [ "NAME:PropServers", "AnalysisSetup:Setup8:Sweep1" ], [ "NAME:ChangedProps", [ "NAME: Stop", "MustBeInt:=", False, "Value:=", "540MHz"]]]]) This script changes ``Setup8``'s solution frequency to 500 MHz, and changes Sweep1's start frequency to 460 MHz and stop frequency to 540 MHz. But it also does something a little more: it uses some normal Python functions to find *your* desktop and open the file there. This makes the script much more powerful; as long as you have the AntennaTemplate_ project on your desktop, *this script will run*. Being able to use generic Python functions makes scripting HFSS very powerful. This script uses the os module; you can `check out its docs `_ if you want to. Changing a Design Property -------------------------- .. include:: requires_antenna_template.rst This script will open the `AntennaTemplate`_ project and change the variable ``ws`` to the value ``2mm``. .. code-block:: python """"Change a design property.""" # Locate the project file on your desktop # These three lines are just plain Python, and have *nothing* to do with HFSS. import os project_file = os.path.join(os.path.expanduser('~'), 'Desktop') project_file = os.path.join(project_file, 'AntennaTemplate.aedt') import ScriptEnv ScriptEnv.Initialize("Ansoft.ElectronicsDesktop") oDesktop.RestoreWindow() oDesktop.OpenProject(project_file) oProject = oDesktop.SetActiveProject("AntennaTemplate") oDesign = oProject.SetActiveDesign("HFSSDesign1") oDesign.ChangeProperty(["NAME:AllTabs", ["NAME:LocalVariableTab", ["NAME:PropServers", "LocalVariables"], ["NAME:ChangedProps", ["NAME:ws", "Value:=", "2mm"]]]]) .. include:: references.rst .. _os docs: https://docs.python.org/3/library/os.html