• HFSS-API入门第一弹:画个Box


    摘要:

    今天我们正式拉开HFSS-API入门的帷幕,欢迎小伙伴们阅读、分享、再看,转发给更多有需要的人!本次推文将教大家利用MATLAB调用本人改良后的HFSS-API包,编写调用HFSS的vbs脚本,文内有用法注释。

    本文使用的软件为MATLAB2019a和AnsysEM 18.2

    入门级函数

    大家可以先拉到文末,下载改良后的hfssapi。建议收藏链接,后续新出的函数会不定期在该文件夹内更新。文件也不大,几百kB,每次有更新重新下载覆盖即可。

    使用前须知:如果MATLAB已安装了其他版的hfssapi,建议先将其移除出Set Path中的路径,然后选择改良后的hfssapi将其Add with Subfolders。

    或者将编写的MATLAB生成vbs脚本的.m文件与hfssapi-by-Jianhui Huang放在同一个总文件夹内。(初学者建议采用此方法)

    然后通过下面的MATLAB代码实现路径的添加。

    path = mfilename('fullpath');
    i=strfind(path,'\');
    path=path(1:i(end));
    cd(path);
    addpath(genpath(strcat(path,'hfssapi-by-Jianhui Huang')));

    至于vbs脚本文件进行代码的写入可以使用MATLAB自带的fopen函数:

    % 创建一个可读写vbs脚本文件.
    % tmpScriptFile:vbs脚本的路径,例如F:\test\a.vbs
    fid = fopen(tmpScriptFile, 'wt');

    接下来介绍3个基本函数及其用法:hfssNewProject,hfssInsertDesign,hfssSaveProject。

    %创建一个新的HFSS项目
    %fid:新建vbs脚本的一个文件标识符
    hfssNewProject(fid)

    %插入一个新的设计文件
    %Design_name:设计名称
    hfssInsertDesign(fid, Design_name);

    %保存项目文件到指定路径
    %tmpPrjFile:vbs脚本的路径,
    %例如F:\test\Helloworld.aedt或者F:\test\Helloworld.hfss
    %Overwrite:如果设置为1将覆盖与tmpPrjFile指定的名称相同的任何现存文件
    %缺省或者为0则默认不覆盖
    hfssSaveProject(fid, tmpPrjFile,Overwrite);

    画个参数化的Box

    接下来两个函数分别用来变量建立和画Box的:hfssVariableInsert,hfssBox。

    % DesignName:设计名称;variableName:变量名字
    % value:变量的值;units:单位;
    % flag:值为1时value只支持数字,值为2时value支持表达式
    hfssVariableInsert(fid,DesignName,variableName, value, units,flag)

    % hfssBox(fid, BoxName, Start, Size, Units, Color, Material, Transparency, flag)
    % BoxName:Box的名字;Start:初始点(基点)坐标;Size:沿着x,y,z轴的尺寸;Units:单位
    % Color:Box的颜色(RGB);Material:材料名字(不要随便自己整个名字,必须是HFSS材料库里的名字);
    % Transparency:显示的透明度;flag:值为1时Start, Size只支持向量数字,值为2时value支持元胞数组表达式% 实例:
    % hfssBox(fid, 'Sub1', [0,0,0], [1,2,3], 'mm',...
    % "(132 132 193)", "FR4_epoxy", 0, 1);
    % hfssBox(fid, 'Sub1', {'0mm', '0mm', '0mm'}, {'Box_W', 'Box_L', 'Box_H'}, 'mm',...
    % "(132 132 193)", "FR4_epoxy", 0, 2);

    ​对于RGB三色的选取,可以在Color里面自己根据自己喜好挑选,并记录下RGB三色数值。

    ​不过对于笔者而言,通常将HFSS模型按下图统一进行配色。

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== 编辑

    ​基板Material名字在HFSS材料库里面找到,然后复制Material Name就行。

    ​到此为止,这5个函数足以让我们在编写vbs脚本,实现在HFSS中任意画参量化的Box了。

    clear;clc;
    path = mfilename('fullpath');
    i=strfind(path,'\');
    path=path(1:i(end));
    cd(path);
    addpath(genpath(strcat(path,'hfssapi-by-Jianhui Huang')));
    try
        % 填写路径
        % tmpPrjFile:生成的aedt或者hfss(安装hfss15以下的后缀名为.hfss)项目文件的路径名
        % tmpScriptFile:生成的vbs脚本文件的路径名
        tmpPrjFile = 'F:\vbsScript\First_demo.aedt';
        tmpScriptFile = 'F:\vbsScript\Helloworld.vbs';

        % hfssExePath:HFSS软件的路径
        hfssExePath = 'D:\software\HFSS15\AnsysEM18.2\Win64\ansysedt.exe';

        % 创建一个可读写vbs脚本文件.
        fid = fopen(tmpScriptFile, 'wt');

        %创建一个新的HFSS项目并插入一个新的设计文件.
        hfssNewProject(fid);
        Design_name='Draw_a_box';
        hfssInsertDesign(fid, Design_name);

        Box_H=1;Box_W=2;Box_L=3;
        % hfssVariableInsert(fid,DesignName,variableName, value, units,flag)
        hfssVariableInsert(fid,Design_name,'Box_H', Box_H, 'mm',1);
        hfssVariableInsert(fid,Design_name,'Box_W', Box_W, 'mm',1);
        hfssVariableInsert(fid,Design_name,'Box_L', 'Box_H+Box_W', 'mm',2);

        % 画一个Box
        % hfssBox(fid, BoxName, Start, Size, Units, Color, Material, Transparency, flag)
        hfssBox(fid, 'Sub1', {'0mm', '0mm', '0mm'}, {'Box_W', 'Box_L', 'Box_H'}, 'mm',...
            "(132 132 193)", "FR4_epoxy", 0, 2);
    %     hfssBox(fid, 'Sub1', [0,0,0], [1,2,3], 'mm',...
    %         "(132 132 193)", "FR4_epoxy", 0, 1);
        % 保存项目文件到指定路径
        hfssSaveProject(fid, tmpPrjFile,1);

        % Close the HFSS Script File.
        fclose(fid);
        disp('vbs脚本已生成!');
    catch
        disp('程序出现异常!');
        fclose(fid);
    end

     按个人情况修改tmpPrjFile,tmpScriptFile ,hfssExePath这几个路径和Design_name,将编写的MATLAB生成vbs脚本的.m文件与下载的hfssapi-by-Jianhui Huang放在同一个总文件夹内,点击运行即可生成vbs脚本(在自行赋值的tmpScriptFile的这个路径下)。vbs脚本可以直接点击运行,或者在HFSS软件中Run

    Script。

    基础性地写代码编注释还是挺费时间和精力的,希望大家多点赞分享。

    代码分享区

    hfssapi-by-Jianhui Huang

    下载链接(后续代码持续在下面链接更新):射频问问原文末尾自取

    来源:HFSS-API入门第一弹:画个Box - RFASK射频问问

    代码已封装好打包为p文件不可修改,每次重新下载覆盖,按函数注释进行掉包即可!

    ​注释事项:MATLAB生成vbs脚本的.m文件与hfssapi-by-Jianhui Huang放在同一个总文件夹内。不要再examples文件夹内运行.m文件!

    ​作者:微波天线工程师

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

    ​关于RFASK射频问问

    射频问问 (RFASK.NET) 主要围绕射频芯片、微波电路、天线、雷达、卫星等相关技术领域,致力于为无线通信、微波射频、天线、雷达等行业的工程师,提供优质、原创的技术问答、专栏文章、射频课程等学习内容。更多请访问:www.rfask.net

  • 相关阅读:
    记一次字符串末尾空白丢失的排查 → MySQL 是会玩的!
    操作系统第三章习题及答案(汤子瀛第四版)
    蚂蚁集团SQLess 开源,与内部版有何区别?
    流程图用什么软件做比较好?这几个实用软件了解下
    eachers地图的配置
    kafka源码阅读之MacBook Pro M1搭建Kafka2.7版本源码运行环境
    如何使用sr2t将你的安全扫描报告转换为表格格式
    实现艾尔登法环中的大卢恩效果
    【Mysql】数据库第二讲(数据库中数据类型的介绍)
    上传图片并显示#Vue3#后端接口数据
  • 原文地址:https://blog.csdn.net/qizu/article/details/126058609