国产专区欧美精品,911国产精品,国产精品人人爽人人做我的可爱,欧美午夜影院一区

HFSS-API入門第一彈:畫個Box

2022-01-12 來源:微波射頻網(wǎng) 作者:94巨蟹座少年 字號:

學個Antenna是以天線仿真和調(diào)試為主,理論原理為輔的干貨天線技術專欄,包括天線入門知識以及各類天線的原理簡介、仿真軟件建模、設計、調(diào)試過程及思路如有想看到的內(nèi)容或技術問題,可以在文尾寫下留言。

摘要:

今天我們正式拉開HFSS-API入門的帷幕,歡迎小伙伴們閱讀、分享、再看,轉(zhuǎn)發(fā)給更多有需要的人!本次推文將教大家利用MATLAB調(diào)用本人改良后的HFSS-API包,編寫調(diào)用HFSS的vbs腳本,文內(nèi)有用法注釋。喜歡的小伙伴可贊賞下作者哦。

本文使用的軟件為MATLAB2019a和AnsysEM 18.2

入門級函數(shù)

大家可以先拉到文末,下載改良后的hfssapi。建議收藏鏈接,后續(xù)新出的函數(shù)會不定期在該文件夾內(nèi)更新。文件也不大,幾百kB,每次有更新重新下載覆蓋即可。

使用前須知:如果MATLAB已安裝了其他版的hfssapi,建議先將其移除出Set Path中的路徑,然后選擇改良后的hfssapi將其Add with Subfolders。

或者將編寫的MATLAB生成vbs腳本的.m文件與hfssapi-by-Jianhui Huang放在同一個總文件夾內(nèi)。(初學者建議采用此方法

然后通過下面的MATLAB代碼實現(xiàn)路徑的添加。

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

至于vbs腳本文件進行代碼的寫入可以使用MATLAB自帶的fopen函數(shù):

% 創(chuàng)建一個可讀寫vbs腳本文件.

% tmpScriptFile:vbs腳本的路徑,例如F:\test\a.vbs

fid = fopen(tmpScriptFile, 'wt');

接下來介紹3個基本函數(shù)及其用法:hfssNewProject,hfssInsertDesign,hfssSaveProject。

%創(chuàng)建一個新的HFSS項目

%fid:新建vbs腳本的一個文件標識符

hfssNewProject(fid)

 

%插入一個新的設計文件

%Design_name:設計名稱

hfssInsertDesign(fid, Design_name);

 

%保存項目文件到指定路徑

%tmpPrjFile:vbs腳本的路徑,

%例如F:\test\Helloworld.aedt或者F:\test\Helloworld.hfss

%Overwrite:如果設置為1將覆蓋與tmpPrjFile指定的名稱相同的任何現(xiàn)存文件

%缺省或者為0則默認不覆蓋

hfssSaveProject(fid, tmpPrjFile,Overwrite);

畫個參數(shù)化的Box

接下來兩個函數(shù)分別用來變量建立和畫Box的:hfssVariableInsert,hfssBox。

% DesignName:設計名稱;variableName:變量名字

% value:變量的值;units:單位;

% flag:值為1時value只支持數(shù)字,值為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只支持向量數(shù)字,值為2時value支持元胞數(shù)組表達式

% 實例:

% 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里面自己根據(jù)自己喜好挑選,并記錄下RGB三色數(shù)值。

不過對于筆者而言,通常將HFSS模型按下圖統(tǒng)一進行配色。

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

到此為止,這5個函數(shù)足以讓我們在編寫vbs腳本,實現(xiàn)在HFSS中任意畫參量化的Box了。(代碼在文末下載鏈接對應的examples文件夾內(nèi))

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';

    % 創(chuàng)建一個可讀寫vbs腳本文件.
    fid = fopen(tmpScriptFile, 'wt');

    %創(chuàng)建一個新的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('程序出現(xiàn)異常!');
    fclose(fid);
end

 

按個人情況修改tmpPrjFiletmpScriptFile ,hfssExePath這幾個路徑和Design_name,將編寫的MATLAB生成vbs腳本的.m文件與下載的hfssapi-by-Jianhui Huang放在同一個總文件夾內(nèi),點擊運行即可生成vbs腳本(在自行賦值的tmpScriptFile的這個路徑下)。vbs腳本可以直接點擊運行,或者在HFSS軟件中Run

Script。

基礎性地寫代碼編注釋還是挺費時間和精力的,希望大家多點贊分享。

代碼分享區(qū)

hfssapi-by-Jianhui Huang

下載鏈接(后續(xù)代碼持續(xù)在下面鏈接更新):

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

提取碼:o5p5

代碼已封裝好打包為p文件不可修改,每次重新下載覆蓋,按函數(shù)注釋進行掉包即可!

 

注釋事項:MATLAB生成vbs腳本的.m文件與hfssapi-by-Jianhui Huang放在同一個總文件夾內(nèi)。不要再examples文件夾內(nèi)運行.m文件!

END

*本文的圖片部分來自AnsysEM 18.2軟件

*歡迎左側(cè)一鍵轉(zhuǎn)發(fā)至朋友圈,同時右側(cè)在看與點贊

本期原創(chuàng)工程師:94巨蟹座少年

本文為MWRF.NET原創(chuàng)文章,未經(jīng)允許不得轉(zhuǎn)載,如需轉(zhuǎn)載請聯(lián)系market#mwrf.net(#換成@)

主題閱讀:入門級函數(shù)        fopen函數(shù)  
主站蜘蛛池模板: 许昌市| 陆良县| 山丹县| 邵东县| 双牌县| 龙川县| 黄梅县| 松江区| 磐石市| 阳江市| 勃利县| 江西省| 东城区| 雅江县| 郁南县| 泾川县| 胶南市| 探索| 侯马市| 谢通门县| 新津县| 武义县| 茂名市| 定结县| 斗六市| 静安区| 安徽省| 咸丰县| 南充市| 潞西市| 甘洛县| 万州区| 宜章县| 兰考县| 嘉定区| 水城县| 方正县| 花莲市| 南漳县| 常熟市| 商南县|