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

2022-01-12 16:09发布

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

摘要:

今天我们正式拉开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模型按下图统一进行配色。

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

到此为止,这5个函数足以让我们在编写vbs脚本,实现在HFSS中任意画参量化的Box了。(代码在文末下载链接对应的examples文件夹内)

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

 

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

Script。

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

代码分享区

hfssapi-by-Jianhui Huang

下载链接(后续代码持续在下面链接更新):

https://pan.baidu.com/s/1N0EE3Uv7krkypfzi9vxCvg

提取码:o5p5

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

 

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

END

*本文的图片部分来自AnsysEM 18.2软件

*欢迎左侧一键转发至朋友圈,同时右侧在看与点赞

本期原创工程师:94巨蟹座少年

本文为MWRF.NET原创文章,未经允许不得转载,如需转载请联系market#mwrf.net(#换成@)

赞赏支持