为了方便起见利用了一个外国朋友开发的HFSS和matlab的接口包HFSS-MATLAB-Scripting-API,前几年有个前辈在这个程序包之上完成了这个功能但是没有公开他的程序,我今天正好用到,自己编程搞定了,就发上来与大家共享。只要能用matlab的surf函数画出来的曲面都能用这个方法搞定,其它的没仔细研究。
其实很简单,只要用过HFSS脚本的人都能看懂,少废话,看程序(matlab): 放到附件程序包的examples文件夹下执行即可
clear all;% add paths to the required m-files.addpath('./3dmodeler/');addpath('./general/');addpath('./analysis/');addpath('./boundary/');tmpPrjFile = 'C:temptmp.hfss'; % 临时文件,要在C盘建一个temp文件夹tmpDataFile = 'C:temptmpData.m';tmpScriptFile = 'C:tempexample.vbs';% HFSS Executable Path.hfssExePath = 'D:AnsoftHFSS13.0hfss.exe'; % 每个人的路径不同,主要根据自己情况修改fid = fopen(tmpScriptFile, 'wt');% Create a new HFSS Project and insert a new design.hfssNewProject(fid);hfssInsertDesign(fid, 'without_balun');%hfssRectangle(fid, Name, Axis, Start, Width, Height, Units)t=linspace(-5, 5, 30);[x, y]=meshgrid(t, t);z = peaks(x, y);surf(x, y, z)% a:x的行数,b: x的列数[a, b] = size(x);figure%共(a-1)*(b-1)个4边空间多边形polygonfori = 1:a-1for j = 1:b-1rect((i-1)*a+j, :) = [(i-1)*a+j;(i-1)*a+j+1;i*a+j+1;i*a+j]; %多边形的4个顶点的索引 % 每次循环画一个polygonhold onplot3([x(i, j), x(i, j+1), x(i+1, j+1), x(i+1, j)], [y(i, j), y(i, j+1), y(i+1, j+1), y(i+1, j)], [z(i, j), z(i, j+1), z(i+1, j+1), z(i+1, j)])% 写命令HFSS画一个polygon的VBA命令,hfssPolygon(fid, '', [x(i, j),y(i, j),z(i, j);x(i, j+1),y(i, j+1),z(i, j+1);x(i+1, j+1),y(i+1, j+1),z(i+1, j+1);x(i+1, j),y(i+1, j),z(i+1, j);x(i, j),y(i, j),z(i, j)], 'mm')endendfclose(fid);%执行VBA脚本hfssExecuteScript(hfssExePath, tmpScriptFile);
hfssapi.rar (91 K)
牛逼
好心人真的不多了,非常感谢楼主
这个非常感谢
楼主是一代好人啦!
请教楼主,你用的那个版本的hfss,我用hfss11时,最后一条执行命令始终没法成功,不知道为什么,希望楼主能够指教一下
好东西,感谢楼主分享!
可能是路径设置问题,你把如下变量设置成你自己的路径
hfssExePath = 'D:AnsoftHFSS13.0hfss.exe'; % 每个人的路径不同,主要根据自己情况修改
还有就是需要在C盘添加一个文件夹:C:temp
[font=]有问题你再问我
侠之大者!
楼主好人,编程生么的我真是太菜了
声明:网友回复良莠不齐,仅供参考。如需更专业、系统的学习HFSS,可以购买本站资深专家讲授的HFSS视频培训课程。