ANSYS HFSS 可以批量導出工程 () 其中一個設計 () 中的所有變量,但是卻缺乏批量導入變量的功能,這一點遜色于 CST,但是,我們可以利用 HFSS 的腳本功能來二次開發,實現向 HFSS 批量導入變量。
本文介紹實現的方法。大家可下載文中的腳本文件來使用。
1. HFSS 批量導出變量
HFSS 本身便支持變量導出。舉個例子,打開一個名為「model」的HFSS 工程,工程下有一個名為「input」的設計,在這個設計中我制作了一個矩形波導轉懸置微帶線的模型。這個模型的所有變量都顯示在左側的 「」欄里。
把鼠標放在上面然后點擊右鍵,然后左鍵選擇彈出的「Copy to 」命令,即可將所有變量復制到粘貼板中。
或者,我們可以選擇上方菜單欄中的「HFSS > ...」,在彈出的變量列表中,同樣把鼠標放在上面然后點擊右鍵,然后左鍵選擇彈出的「Copy to 」命令,將所有變量復制到粘貼板中。
然后我們在一個空白的表格文件中,ctrl+v 粘貼,即可將「input」設計中的所有變量導出到表格文件中了。
2. HFSS 批量導入變量
我們使用 ANSYS HFSS 建模和仿真,通常是圖形化界面上用鼠標點擊來操作。其實 ANSYS 支持 Basic 腳本,在18.0版本后更支持 腳本,用戶在圖形化界面上的每一個操作都可以通過運行對應的腳本指令來實現。通過編寫并運行腳本指令,就可以完成一些重復的人工操作。
因此,我們可以利用 HFSS 的腳本功能來實現變量的批量導入,思路是:
使用腳本錄制功能,獲得「在 HFSS 中新建一個變量」的操作所對應的腳本指令。編寫腳本,實現「在 HFSS 中新建多個變量」的操作。在 HFSS 中運行腳本,即可實現變量的批量導入。
本文用的是 腳本。
2.1 錄制腳本
我們仍以矩形波導轉懸置微帶線的 HFSS 工程為例,錄制腳本,來看看「在 HFSS 中新建一個變量」所對應的腳本指令是怎么樣的。
啟動 ANSYS,但先不打開工程。
選擇上方菜單欄中的「Tools > To File...」,在彈出的「另存為」窗口中,選擇腳本文件的保存目錄、名稱,選擇「*.py」的腳本格式,保存。現在我們在 HFSS 中的每一步操作都會被記錄到所保存的這個 腳本文件中。
點擊「Open」,打開「model」工程。
在「model」工程的「input」設計里易語言超級列表框導入cvs教程,選擇上方菜單欄中的「HFSS > ...」,在彈出的變量列表中,點擊「Add...」來新增一個變量。在彈出的窗口中設置:
確認,保存工程。
現在選擇「Tools > Stop 」,結束腳本錄制。現在可以去查看所錄制的腳本了。
2.2 編寫腳本
在剛才保存的目錄中打開「.py」腳本,查看代碼。
這就是剛才的操作,即「在 ANSYS 中打開一個 HFSS 工程,并在其中一個設計里添加一個變量」所對應的代碼了:
# ----------------------------------------------
# Script Recorded by ANSYS Electronics Desktop Version 2018.2.0
# 18:47:49 4月 09, 2022
# ----------------------------------------------
import ScriptEnv
ScriptEnv.Initialize("Ansoft.ElectronicsDesktop")
oDesktop.RestoreWindow()
oDesktop.OpenProject("D:/files/Desktop/model.aedt")
oProject = oDesktop.SetActiveProject("model")
oDesign = oProject.SetActiveDesign("input")
oDesign.ChangeProperty(
[
"NAME:AllTabs",
[
"NAME:LocalVariableTab",
[
"NAME:PropServers",
"LocalVariables"
],
[
"NAME:NewProps",
[
"NAME:myVar",
"PropType:=" , "VariableProp",
"UserDef:=" , True,
"Value:=" , "0.1mm"
]

]
]
])
oProject.Save()
我們來解讀代碼。
這是一些初始化操作,無需理會或改動:
import ScriptEnv
ScriptEnv.Initialize("Ansoft.ElectronicsDesktop")
oDesktop.RestoreWindow()
這三句代碼對應我們打開「model.aedt」工程文件、激活「model」工程、激活「input」設計的操作:
oDesktop.OpenProject("D:/files/Desktop/model.aedt")
oProject = oDesktop.SetActiveProject("model")
oDesign = oProject.SetActiveDesign("input")
這些代碼就對應我們添加變量的操作,其中 ”NAME:myVar“ 和 ”0.1mm“ 對應變量的名稱、數值和單位:
oDesign.ChangeProperty(
[
"NAME:AllTabs",
[
"NAME:LocalVariableTab",
[
"NAME:PropServers",
"LocalVariables"
],
[
"NAME:NewProps",
[
"NAME:myVar",
"PropType:=","VariableProp",
"UserDef:=",True,

"Value:=","0.1mm"
]
]
]
])
那么,我們在腳本代碼中設置 for 循環,在循環中賦予變量名稱和數值等,就可以實現向 HFSS 工程添加多個變量了。
據此,我編寫了「向 HFSS 工程批量導入變量」的腳本:
# ----------------------------------------------
# Script author:Nan_beta.
# 2022-04-09
# ----------------------------------------------
import ScriptEnv
import csv
# set paths and names
variables_path = "D:/myVariables.csv"
project_path = "D:/model.aedt"
project_name = "model"
design_name = "input"
# read variables list
variables_data = open(variables_path)
variables_csvreader = csv.reader(variables_data)
variables_list = list(variables_csvreader)
# initialize
ScriptEnv.Initialize("Ansoft.ElectronicsDesktop")
oDesktop.RestoreWindow()

oDesktop.OpenProject(project_path)
oProject = oDesktop.SetActiveProject(project_name)
oDesign = oProject.SetActiveDesign(design_name)
# add variables
for i in range(1,len(variables_list)):
name = variables_list[i][0]
value= variables_list[i][1]
unit = variables_list[i][2]
oDesign.ChangeProperty(
[
"NAME:AllTabs",
[
"NAME:LocalVariableTab",
[
"NAME:PropServers",
"LocalVariables"
],
[
"NAME:NewProps",
[
"NAME:"+name,
"PropType:=","VariableProp",
"UserDef:=",True,
"Value:=",value+unit
]
]
]
])

# save project
oProject.Save()
我將想要導入到 HFSS 工程的變量保存在 csv 文件里,腳本會讀取 csv 文件中的變量名稱、數值和單位,然后以添加新變量的方式,在一個 for 循環中逐一將變量添加到指定的 HFSS 工程的指定設計中。
使用此腳本時,需要在開頭「# set paths and names」注釋下的代碼中設置保存變量信息的 csv 文件的路徑、HFSS 工程文件的路徑、工程名稱和設計名稱。其他代碼無需改動。
2.3 使用腳本
現在來演示腳本的使用方法。
step1:獲取 腳本文件和 csv 文件。
此腳本需要配合一個 csv 文件使用。文末會提供 腳本文件和 csv 文件的下載方式。
step2:編輯 csv 文件和 腳本文件
將準備導入到 HFSS 工程的變量輸入到 csv 文件中,變量的名稱、數值和單位逐行輸入。
注意:每一列的列頭「Name」、「Value」和「Unit」不要刪除。
用 vs code等編輯器或者記事本即可打開 腳本文件。留意,腳本是由 ANSYS 來運行的,因此本計算機上并不需要配置 運行環境,我們只需要打開腳本文件來稍作修改而已。
在腳本中設置 csv 文件的路徑、準備導入變量的HFSS 工程文件的路徑、工程名稱和設計名稱,腳本的其他代碼無需改動。
# set paths and names
variables_path = "D:/myVariables.csv"
project_path = "D:/model.aedt"
project_name = "model"
design_name = "input"
step3:在 ANSYS 中運行腳本
打開 ANSYS易語言超級列表框導入cvs教程,無需打開 HFSS 工程文件,點擊「Tools > Run ...」。
在彈出的文件選擇窗口中找到并選中腳本文件,點擊確認,即可讓 ANSYS 運行該腳本。
腳本運行完畢后,查看 「model」工程下的「input」設計的變量,可以看到,我們的8個變量已經順利添加到設計中了。
如此,我們就實現了向 HFSS 工程批量導入變量啦。