大数跨境
0
0

vbs脚本一键导入导出HFSS的Local Variables

vbs脚本一键导入导出HFSS的Local Variables 微波射频网
2022-02-20
0
导读:CST支持Parameters的导入导出,这在调试参量的过程中极为方便。不过HFSS中没有Local Variables的导入导出功能咋办呢?本次推文来教你用vbs脚本实现,最后还有一个彩蛋(低版本H

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


摘要:

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


0 1
CST参量导入/导出



在人工优化结构参量时,导出调试过程中较优结果对应的参量和写材料时及时Ctrl+S一样重要。毕竟万一调过头,正好赶上软件抽风导致数据崩了,又得进入新一轮苦逼的调参。
在CST软件中,我们可以在Parameter List区域点击标右键,通过Save Parameters to File和Load Parameters to File实现参量的导出和导入,不时需。

0 2
HFSS参量导入/导出



CST中自带了参量的导入导出功能,那么HFSS有么?我们打开HFSS的Design Properties,在Local Variables区域右键。嗯,找到了参量数据复制功能!

复制粘贴到记事本,参量名称、数据值和单位确实都能保存出来,但是如何像CST那样再导入外部的参量进行数据值的更新呢?
这里提供了vbs脚本的方法——基于HFSS自带的HFSS Scripting。

导出参量主要使用到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 Number  str1=local_var_array(count) & "=" & Cstr(oDesign.GetVariableValue(local_var_array(count)))  oDesktop.AddMessage oProject.GetName(), oDesign.GetName(), 0, str1  fid.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!"

更新参量主要使用到SetVariableValue()这个函数,通过vbs脚本读取目标路径下的txt文件数据,然后通过分隔符来分割分别获取所有变量名和变量值,最后oDesign.SetVariableValue函数进行参量的一键更新,整段代码如下(文末二维码附有下载链接):
' ----------------------------------------------' 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 <> True  content=fid.ReadLine  pos=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!"
这两段vbs代码使用前需要根据个人电脑进行FileDir路径进行重新赋值,然后右键以记事本打开,通过文件->另存为视查是否以ANSI格式保存。

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

操作视频如下:

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

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


0 3
低版本HFSS打开高版本文件



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

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

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

不过需要注意的是高低版本兼容的是变量和建模信息,对于高版本新增的一些边界条件,激励等设置,低版本软件不兼容,也会出现打不开的现象,这里就需要发送方提前删除一些不兼容的高版本设置。操作视频如下:


END


原创不易,多多点赞转发,给作者点个喜欢赞赏呗!

代码资源在下面的总文件夹进行更新:

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

下载文件

微波通信工程师最新课程《MATLAB-HFSS-API入门教程》已更新到第19讲,通过学习该课程可以系统地了解MATLAB-HFSS-API脚本开发的基本原理、框架搭建及函数的使用方法和具体调用规则。掌握如何在实践中通过MATLAB-HFSS-API进行代码式3D建模开发,使用MATLAB与HFSS进行联合仿真优化及仿真设计微波传输线、微带贴片天线、微带耦合线滤波器、基片集成波导、Vivaldi宽频带微带天线等。


射频产学研技术交流平台

射频技术问题到“射频问问” 互助互学

最新会议:

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

最新原创:

射频问问课程讲师和专栏作者邀请函
原创射频干货资源汇总

关于射频同轴连接器的功率容量探讨

原创干货:浅析晶体管放大电路的负载线

2021年天线领域10大热门论文 作者都是华人

【声明】内容源于网络
0
0
微波射频网
专注无线通信、微波射频、天线、卫星通信、雷达、半导体等领域。微波射频产学研交流平台 - 射频行业知名媒体
内容 2527
粉丝 0
微波射频网 专注无线通信、微波射频、天线、卫星通信、雷达、半导体等领域。微波射频产学研交流平台 - 射频行业知名媒体
总阅读1.2k
粉丝0
内容2.5k