学个Antenna是以天线仿真和调试为主,理论原理为辅的干货天线技术专栏,包括天线入门知识以及各类天线的原理简介、仿真软件建模、设计、调试过程及思路。如有想看到的内容或技术问题,可以在文尾写下留言。

CST支持Parameters的导入导出,这在调试参量的过程中极为方便。不过HFSS中没有Local Variables的导入导出功能咋办呢?本次推文来教你用vbs脚本实现,最后还有一个彩蛋(低版本HFSS打开高版本的文件),精彩不要错过!



导出参量主要使用到GetVariables()这个函数,通过oDesign.GetVariables()读取当前激活的设计文件下的所有Local Variables,然后分别获取所有变量的数目,变量名和变量值,最后每行数据按变量名分割符变量值的顺序依次写入到目标路径下的txt文件中,整段代码如下(文末二维码附有下载链接):
' ----------------------------------------------' ExportVariables,适用于ANSYS ElectronicsDesktop Version(2017, 2)及以上' ----------------------------------------------Dim oAnsoftAppDim oDesktopDim oProjectDim oDesignDim oEditorDim oModuleSet oAnsoftApp = CreateObject("Ansoft.ElectronicsDesktop")Set oDesktop = oAnsoftApp.GetAppDesktop()oDesktop.RestoreWindowSet oProject = oDesktop.GetActiveProject()Set oDesign = oProject.GetActiveDesign()FileDir="C:\Users\Administrator\Desktop\VBS\test.txt"local_var_array=oDesign.GetVariables()Number=Ubound(local_var_array)Set Object = CreateObject("Scripting.FileSystemObject")Set fid=Object.CreateTextFile(FileDir,True)for Count=0 To Numberstr1=local_var_array(count) & "=" & Cstr(oDesign.GetVariableValue(local_var_array(count)))oDesktop.AddMessage oProject.GetName(), oDesign.GetName(), 0, str1fid.WriteLine(str1)NextoDesktop.AddMessage oProject.GetName(), oDesign.GetName(), 0, "----------------------------------------------------------"oDesktop.AddMessage oProject.GetName(), oDesign.GetName(), 0, FileDiroDesktop.AddMessage oProject.GetName(), oDesign.GetName(), 0, "Export variables complete!"

' ----------------------------------------------' ImportVariables,适用于ANSYS ElectronicsDesktop Version(2017, 2)及以上' ----------------------------------------------Dim oAnsoftAppDim oDesktopDim oProjectDim oDesignDim oEditorDim oModuleSet oAnsoftApp = CreateObject("Ansoft.ElectronicsDesktop")Set oDesktop = oAnsoftApp.GetAppDesktop()oDesktop.RestoreWindowSet oProject = oDesktop.GetActiveProject()Set oDesign = oProject.GetActiveDesign()FileDir="C:\Users\Administrator\Desktop\VBS\test.txt"Set Object = CreateObject("Scripting.FileSystemObject")Set fid=Object.OpenTextFile(FileDir,1,True)Do While fid.AtEndOfLine <> Truecontent=fid.ReadLinepos=InStr(1,content,"=")Number=Len(content)VariableName=left(content,pos-1)VariableValue=right(content,Number-pos)oDesign.SetVariableValue VariableName,VariableValueloopfid.CloseoDesktop.AddMessage oProject.GetName(), oDesign.GetName(), 0, "----------------------------------------------------------"oDesktop.AddMessage oProject.GetName(), oDesign.GetName(), 0, FileDiroDesktop.AddMessage oProject.GetName(), oDesign.GetName(), 0, "Import variables complete!"

接下来需要打开一个工程文件,点击高亮以激活需要操作的设计文件,通过Run Script去执行参量导入和导出功能。

需要注意的是,本vbs代码需要在HFSS17.2版本及以上运行!如果HFSS15想运行此代码,需要将ExportVariables.vbs和ImportVariables中的Ansoft.ElectronicsDesktop替换为AnsoftHfss.HfssScriptInterface,并且注释掉oDesktop.AddMessage开头的几处代码,如下图所示。

上面代码相关的函数其实都来自HFSS自带的Scripting Guide,Help文档是第一生产力
!

接下来是本次推文的小彩蛋。大家肯定很恼火装了HFSS17,别人转一个HFSS2020 R2版本建立的aedt文件,就死活打不开,太不方便了。

HFSS15想打开HFSS17的工程文件,改后缀名.aedt为.hfss也会提示软件是以2017.2版本保存的,最后还是打不开。



这里提供一个解决办法,还是祭出我们的记事本。通过打开一个后缀名为.aedt的HFSS17文件和后缀名为.hfss的HFSS15文件,对比前几行的差异,可以发现Product和Version有出入。因此收到别人发送的高版本工程文件时,右键记事本将这两处改为自己版本所能打开的再保存,即可实现低版本软件打开高版本工程文件。

不过需要注意的是高低版本兼容的是变量和建模信息,对于高版本新增的一些边界条件,激励等设置,低版本软件不兼容,也会出现打不开的现象,这里就需要发送方提前删除一些不兼容的高版本设置。操作视频如下:
END
原创不易,多多点赞转发,给作者点个喜欢赞赏呗
!

识别或扫码二维码,提取码:q8ra

下载文件

射频技术问题到“射频问问” 互助互学
最新会议:
模拟雷达信号以进行RWR雷达接收机测试(3月9日)
毫米波频段应用PTFE板材类型和加工流程及结果评估(3月1日)
5G无线CPE设备技术发展及测试(2月25日)
一种基于新型金属介质混合一体化打印的双波束超表面透射阵设计(3月14日)
5G通信与物联网HFSS仿真技术应用(从天线、系统到环境仿真)


