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

HFSS-API入門第一彈:畫(huà)個(gè)Box

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

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

摘要:

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

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

入門級(jí)函數(shù)

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

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

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

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

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

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

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

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

fid = fopen(tmpScriptFile, 'wt');

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

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

%fid:新建vbs腳本的一個(gè)文件標(biāo)識(shí)符

hfssNewProject(fid)

 

%插入一個(gè)新的設(shè)計(jì)文件

%Design_name:設(shè)計(jì)名稱

hfssInsertDesign(fid, Design_name);

 

%保存項(xiàng)目文件到指定路徑

%tmpPrjFile:vbs腳本的路徑,

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

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

%缺省或者為0則默認(rèn)不覆蓋

hfssSaveProject(fid, tmpPrjFile,Overwrite);

畫(huà)個(gè)參數(shù)化的Box

接下來(lái)兩個(gè)函數(shù)分別用來(lái)變量建立和畫(huà)Box的:hfssVariableInsert,hfssBox。

% DesignName:設(shè)計(jì)名稱;variableName:變量名字

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

% flag:值為1時(shí)value只支持?jǐn)?shù)字,值為2時(shí)value支持表達(dá)式

hfssVariableInsert(fid,DesignName,variableName, value, units,flag)

 

% hfssBox(fid, BoxName, Start, Size, Units, Color, Material, Transparency, flag)

% BoxName:Box的名字;Start:初始點(diǎn)(基點(diǎn))坐標(biāo);Size:沿著x,y,z軸的尺寸;Units:?jiǎn)挝?/span>

% Color:Box的顏色(RGB);Material:材料名字(不要隨便自己整個(gè)名字,必須是HFSS材料庫(kù)里的名字);

% Transparency:顯示的透明度;flag:值為1時(shí)Start, Size只支持向量數(shù)字,值為2時(shí)value支持元胞數(shù)組表達(dá)式

% 實(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);

對(duì)于RGB三色的選取,可以在Color里面自己根據(jù)自己喜好挑選,并記錄下RGB三色數(shù)值。

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

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

到此為止,這5個(gè)函數(shù)足以讓我們?cè)诰帉憊bs腳本,實(shí)現(xiàn)在HFSS中任意畫(huà)參量化的Box了。(代碼在文末下載鏈接對(duì)應(yīng)的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或者h(yuǎn)fss(安裝hfss15以下的后綴名為.hfss)項(xiàng)目文件的路徑名
    % 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)建一個(gè)可讀寫vbs腳本文件.
    fid = fopen(tmpScriptFile, 'wt');

    %創(chuàng)建一個(gè)新的HFSS項(xiàng)目并插入一個(gè)新的設(shè)計(jì)文件.
    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);

    % 畫(huà)一個(gè)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);
    % 保存項(xiàng)目文件到指定路徑
    hfssSaveProject(fid, tmpPrjFile,1);

    % Close the HFSS Script File.
    fclose(fid);
    disp('vbs腳本已生成!');
catch
    disp('程序出現(xiàn)異常!');
    fclose(fid);
end

 

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

Script。

基礎(chǔ)性地寫代碼編注釋還是挺費(fèi)時(shí)間和精力的,希望大家多點(diǎn)贊分享。

代碼分享區(qū)

hfssapi-by-Jianhui Huang

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

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

提取碼:o5p5

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

 

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

END

*本文的圖片部分來(lái)自AnsysEM 18.2軟件

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

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

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

主題閱讀:入門級(jí)函數(shù)        fopen函數(shù)  
主站蜘蛛池模板: 哈尔滨市| 金乡县| 新安县| 马公市| 衡南县| 宜春市| 那坡县| 滨州市| 山阳县| 乡城县| 西充县| 会理县| 明星| 盈江县| 栖霞市| 无为县| 两当县| 康马县| 永吉县| 武穴市| 新源县| 登封市| 大冶市| 普兰县| 沙河市| 龙山县| 平南县| 铜川市| 中卫市| 西宁市| 肇州县| 五大连池市| 黄骅市| 外汇| 铁岭市| 乐东| 陇西县| 遵义市| 探索| 大埔县| 资源县|