• 巧用HFSS脚本录制功能


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

    ​摘要:

    学个Antenna:HFSS脚本建模入门中,介绍了利用HFSS自带的Record Script To File功能进行脚本录制。但是大部分情况下,工程师们只是希望录制简单的后处理脚本。这期推文就来介绍下如何解放双手,一键式处理。

    本文使用的软件为AnsysEM 18.2

    HFSS脚本录制

    在HFSS官方Help文档(文末有PDF下载方式),详细介绍了Scripting功能模块。这节主要将有用的部分进行简单的翻译并进行相应的实操讲解。

    --------------录制脚本--------------

    一旦开始录制脚本,在HFSS软件中的所有后续操作都会添加到脚本中。脚本可以

    以.vbs (VBScript) 或者IronPython (*.py)的文件格式记录到下来。

    -----------------------------------

    1. 在菜单上的Tool选项下找到Record Script To File,单击即出现另存为对话框

    2. 使用文件浏览器找到要保存脚本的文件夹

    3.在文件名文本框中输入脚本名称,选择脚本类型为Visual Basic Script (.vbs) 或 IronPython (*.py),然后单击保存脚本文件到你选择的文件夹中

    --------------运行脚本--------------

    1. 单击菜单上的Tool选项下Run Script,出现打开对话框。

    2. 使用文件浏览器找到需要运行的脚本文件,然后单击选中打开,然后执行脚本命令

    下面是录制一个vbs脚本,将仿真的S11的数据导出到指定路径,并命名为S11.csv

    Dim oAnsoftApp

    Dim oDesktop

    Dim oProject

    Dim oDesign

    Dim oEditor

    Dim oModule

    Set oAnsoftApp = CreateObject("Ansoft.ElectronicsDesktop")

    Set oDesktop = oAnsoftApp.GetAppDesktop()

    oDesktop.RestoreWindow

    Set oProject = oDesktop.SetActiveProject("veedipole_simu")

    Set oDesign = oProject.SetActiveDesign("veeDipole_idealFeed")

    Set oModule = oDesign.GetModule("ReportSetup")

    oModule.ExportToFile "S11", "C:/Users/Administrator/Desktop/S11.csv"

    如果只是录制好,不需要二次修改,不会出现异常现象,但是!!!

    如果右键编辑vbs,想将路径修改下并保存,你会发现Run Script就会报错啦!

    ​个人猜测应该是修改后,其编码方式的问题。果然用txt打开该vbs脚本,点击另存为后发现,编码方式变为了支持中文字符的UTF-8。

    ​话不多说,直接将编码方式改为ANSI后保存,果然一切都正常了。

    ​当然,每次录制完都人为改一下也是挺麻烦的。这里可以直接录制为.py文件格式,修改后保存仍然不会出现第一行出现无效字符的报错现象!

    # ---------------------------------------------- #

    Script Recorded by ANSYS Electronics Desktop Version 2017.2.0

    # ----------------------------------------------

    import ScriptEnv

    ScriptEnv.Initialize("Ansoft.ElectronicsDesktop")

    oDesktop.RestoreWindow()

    oProject = oDesktop.SetActiveProject("veedipole_simu")

    oDesign = oProject.SetActiveDesign("veeDipole_idealFeed")

    oModule = oDesign.GetModule("ReportSetup")

    oModule.ExportToFile("S11", "C:/Users/Administrator/Desktop/S11_new.csv")

    脚本录制能干啥

    第一作用当然是数据后处理之类的啦,比如上面已经录制过的常见数据的导出。录制完后可以右键以写字板或者笔记本打开,对其中的一些参量进行私人化的修改。

    不过相比较CST的History List,HFSS在建模这块没有记录给开发者对应的脚本文件确实是硬伤。不过解决了Record Script To File功能的报错问题后,我们还是可以拼接化来实现建模的部分繁琐功能的。

    比如HFSS的Duplicate Along Line的可视化操作中,不支持输入变量,移动复制的总数仅仅支持写死的数字。要是想构建一个金属化通孔随着SIW结构长度自适应变化的模型,HFSS是没法像CST那样丝滑。

    ​不过通过录制脚本,在脚本里二次修改是可以设置平移距离为变量的。例如录制了下面的.py脚本,将Y向平移量设置为Design Properties里已存在的dist变量,这样修改其变量数值即可实现自适应不同的间距;对于不同项目和设计文件,需要修改下面两句代码中双引号中的名字,改为当前执行Run Script下的项目名和设计文件:

    oProject=oDesktop.SetActiveProject("Project3")

    oDesign=oProject.SetActiveDesign("HFSSDesign1")

    在"Selections:=" , "Box1,Cone1,Cylinder1"中增加需要平移复制的Object;XComponent,YComponent,ZComponent,NumClones分别代表往x,y,z方向平移的距离和复制的总个数(包括本体)

    # ----------------------------------------------

    # Script Recorded by ANSYS Electronics Desktop Version 2017.2.0

    # ----------------------------------------------

    import ScriptEnv

    ScriptEnv.Initialize("Ansoft.ElectronicsDesktop")

    oDesktop.RestoreWindow()

    oProject = oDesktop.SetActiveProject("Project3")

    oDesign = oProject.SetActiveDesign("HFSSDesign1")

    oEditor = oDesign.SetActiveEditor("3D Modeler")

    oEditor.DuplicateAlongLine(

    [

    "NAME:Selections",

    "Selections:=" , "Box1,Cone1,Cylinder1",

    "NewPartsModelFlag:=" , "Model"

    ],

    [

    "NAME:DuplicateToAlongLineParameters",

    "CreateNewObjects:=" , True,

    "XComponent:=" , "0mm",

    "YComponent:=" , "dist",

    "ZComponent:=" , "0mm",

    "NumClones:=" , "8"

    ],

    [

    "NAME:Options",

    "DuplicateAssignments:=", False

    ],

    [

    "CreateGroupsForNewObjects:=", False

    ])

    ​当然,你可以通过脚本,将Total Number修改为变量,但是在Design Properties中修改num的值,其平移复制的个数并不会产生变化。

    ​比如下面将num改为10,Modeler里显示的Num也变为了10个,但实际的模型里还是平移复制了20个。有兴趣的读者可以亲自试试!!!

    ​原文链接:巧用HFSS脚本录制功能 - RFASK射频问问

    作者:微波天线工程师

    应读者朋友们对这个系列文章的喜爱,也为了能够让老师更系统更全面地介绍MATLAB-HFSS-API相关知识,现推出该系列课程,共25课时,欢迎大家加入课程学习!https://www.rfask.net/kc/v/41.html

    ​关于RFASK射频问问

    射频问问 (www.rfask.net) 是在"微波射频网 (www.mwrf.net)”系列原创技术专栏基础上升级打造的技术问答学习平台,主要围绕射频芯片、微波电路、天线、雷达、卫星等相关技术领域,致力于为无线通信、微波射频、天线、雷达等行业的工程师,提供优质、原创的技术问答、专栏文章、射频课程等学习内容。更多请访问:http://www.rfask.net

  • 相关阅读:
    【java筑基】IO流进阶之文件随机访问、序列化与反序列化
    Appium+Pytest+Allure实现APP自动化测试,小试牛刀
    linux 网络命令
    C#中的 Attribute 与 Python/TypeScript 中的装饰器是同个东西吗
    C++ Reference: Standard C++ Library reference: C Library: cwchar: wcspbrk
    Ribbon 负载均衡原理和策略
    05【DAO开发的方式】
    分析Python爬虫设计
    【DVWA】19. Insecure CAPTCHA 不安全的验证码(全等级)
    浏览器缓存
  • 原文地址:https://blog.csdn.net/qizu/article/details/126521607