HFSS-API入門第二彈:基本形狀和操作
學(xué)個(gè)Antenna是以天線仿真和調(diào)試為主,理論原理為輔的干貨天線技術(shù)專欄,包括天線入門知識(shí)以及各類天線的原理簡介、仿真軟件建模、設(shè)計(jì)、調(diào)試過程及思路。如有想看到的內(nèi)容或技術(shù)問題,可以在文尾寫下留言。
摘要:
上節(jié)HFSS-API入門第一彈:畫個(gè)Box主要是分享了調(diào)用改良hfssapi新建工程和設(shè)計(jì)文件并插入變量畫一個(gè)參數(shù)化的Box,本期推文將推送常用的基本形狀和布爾操作函數(shù)。歡迎小伙伴們閱讀、分享、再看,轉(zhuǎn)發(fā)給更多有需要的人!喜歡的小伙伴可贊賞下作者哦。
本文使用的軟件為MATLAB2019a和AnsysEM 18.2
簡單介紹
常規(guī)模型大家只需要用到畫方塊、柱子、矩形片、圓形,并對(duì)其進(jìn)行Unite和Subtract之類的布爾操作即可。上次推文已經(jīng)介紹了hfssBox的函數(shù)用法,下節(jié)將先對(duì)hfssCylinder,hfssRectangle,hfssCircle進(jìn)行函數(shù)使用講解,然后介紹hfssUnite和hfssSubtract的加減操作函數(shù)。
拉到文末有下載改良后的hfssapi,建議收藏鏈接,后續(xù)新出的函數(shù)會(huì)不定期在該文件夾內(nèi)更新。文件也不大,幾百kB,每次有更新重新下載覆蓋即可。
- 先提醒下matlab打開有中文注釋代碼亂碼問題,按下圖所示將Editor的Font改為Monospaced即可。
- 對(duì)于設(shè)置Color,有的人想花里胡哨地配色的話,可以進(jìn)行RGB三色的顏色查詢:https://www.sojson.com/rgb.html。沒有絕對(duì)顏感的人不要輕易嘗試,否則配出來會(huì)是下圖這種樣子。可能你覺得很絢麗,但是真的很鄉(xiāng)村風(fēng)啊!!!本人還是習(xí)慣用上次推文的三種配色,極簡最好。
函數(shù)使用教程
接下來先介紹三個(gè)建模常用的函數(shù):hfssCylinder,hfssRectangle,hfssCircle。
1 % hfssCylinder(fid, CylinderName, Axis, Center, Radius, Height, Units, Color, Material, Transparency, flag) 2 % CylinderName:圓柱的名字;Axis:圓柱建模的中心軸向('X','Y'或'Z',大小寫均可);Center:圓柱底面的圓心坐標(biāo); 3 % Radius:圓柱底面的圓半徑;Height:圓柱的高度;Units:單位 4 % Color:圓柱的顏色(RGB);Material:材料名字(不要隨便自己整個(gè)名字,必須是HFSS材料庫里的名字); 5 % Transparency:顯示的透明度;flag:值為1時(shí)Center, Radius, Height只支持?jǐn)?shù)字,值為2時(shí)value支持元胞數(shù)組表達(dá)式 6 % 實(shí)例: 7 % hfssCylinder(fid, 'Cy1', 'Z', {'Cy_dx', 'Cy_dy', 'Cy_dz'}, 'Cy_R','Cy_H', 'mm',... 8 % "(132 132 193)", "FR4_epoxy", 0, 2); 9 % hfssCylinder(fid, 'Cy1', 'Z', [0,0,0], 0.5,2, 'mm',... 10 % "(132 132 193)", "FR4_epoxy", 0, 1); |
1 % hfssRectangle(fid, RectangleName, Axis, Start, Width, Length, Units, Color, Transparency,flag) 2 % RectangleName:矩形片的名字;Axis:矩形片的法向軸向('X','Y'或'Z',大小寫均可); 3 % Start:矩形片的起始基點(diǎn);% Width:矩形片的寬;Length:矩形片的長;Units:單位 4 % Color:矩形片的顏色(RGB);% Transparency:顯示的透明度; 5 % flag:值為1時(shí)Start, Width, Length只支持?jǐn)?shù)字,值為2時(shí)value支持元胞數(shù)組表達(dá)式 6 % HFSS中的Rectangle只可設(shè)置邊界條件,不可設(shè)置材料屬性 7 % 實(shí)例: 8 % hfssRectangle(fid, 'Rec1', 'Z', {'Rec_dx', 'Rec_dy', 'Rec_dz'}, 'Rec_W','Rec_L', 'mm',... 9 % "(132 132 193)", 0, 2); 10 % hfssRectangle(fid, 'Rec1', 'Z', [0,0,0], 1, 2, 'mm',... 11% "(132 132 193)", 0, 1)
|
1 % hfssCircle(fid, CircleName, Axis, Center, Radius, Units, Color, Transparency,flag) 2 % CircleName:圓形片的名字;Axis:圓形片的法向軸向('X','Y'或'Z',大小寫均可);Center:圓形片的圓心坐標(biāo); 3 % Radius:圓形片的半徑;Units:單位 4 % Color:圓形片的顏色(RGB);% Transparency:顯示的透明度; 5 % flag:值為1時(shí)Center, Radius只支持?jǐn)?shù)字,值為2時(shí)value支持元胞數(shù)組表達(dá)式 6 % HFSS中的Circle只可設(shè)置邊界條件,不可設(shè)置材料屬性 7 % 實(shí)例: 8 % hfssCircle(fid, 'Cir1', 'Z',{'Cir_dx', 'Cir_dy', 'Cir_dz'}, 'Cir_R', 'mm',... 9 % "(128 128 128)", 0, 2) 10 % hfssCircle(fid, 'Cir1', 'Z',[0,0,0], 1, 'mm',... 11 % "(128 128 128)", 0, 1) |
需要注意上面的hfssRectangle,當(dāng)坐標(biāo)軸分別選取'X','Y'或'Z'時(shí),按下面代碼建立三個(gè)Rectangle模型。
1 hfssRectangle(fid, 'Rec1', 'X', {'Rec_dx', 'Rec_dy', 'Rec_dz'}, 'Rec_W','Rec_L', 'mm',... 2 "(255 128 0)", 0, 2); 3 hfssRectangle(fid, 'Rec2', 'Y', {'Rec_dx', 'Rec_dy', 'Rec_dz'}, 'Rec_W','Rec_L', 'mm',... 4 "(255 128 0)", 0, 2); 5 hfssRectangle(fid, 'Rec3', 'Z', {'Rec_dx', 'Rec_dy', 'Rec_dz'}, 'Rec_W','Rec_L', 'mm',... 6 "(255 128 0)", 0, 2) |
逐個(gè)點(diǎn)擊這三個(gè)Rectangle,查看其屬性會(huì)發(fā)現(xiàn):若坐標(biāo)軸選'X',則'Rec_W','Rec_L'分別賦值給Ysize和Zsize;若坐標(biāo)軸選'Y',則'Rec_W','Rec_L'分別賦值給Zsize和Xsize;若坐標(biāo)軸選'Z',則'Rec_W','Rec_L'分別賦值給Xsize和Ysize;即按著'X','Y','Z'順序進(jìn)行輪換式賦值。
在建模過程中,往往需要Unite和Subtract這兩種加減型的布爾操作,這時(shí)候hfssUnite和hfssSubtract函數(shù)就派上用場了。
1 % hfssUnite(fid, ObjectList) 2 % ObjectList:待Unite的物體名字 3 % 實(shí)例: 4 % hfssUnite(fid, {'Object1Name', 'Object2Name', 'Object3Name'}); |
1 % hfssSubtract(fid, BigParts, SmallParts, KeepOriginals) 2 % BigParts:待減物品名字;SmallParts:被減的物體名字 3 % KeepOriginals:為false時(shí)不保留被減物,為true時(shí)則保留被減物 4 % 實(shí)例: 5 % hfssSubtract(fid, {'Object1Name'}, {'Object2Name'}, false); |
通過下面的視頻可以直觀感受下以上五個(gè)函數(shù)的建模作用,以及hfssSubtract的KeepOriginals為false和true時(shí)的差異:
上面視頻的兩段代碼文件在文末的鏈接內(nèi),按個(gè)人情況按圖索驥地修改tmpPrjFile,tmpScriptFile ,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
*本文的圖片部分來自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(#換成@)