求关注
求转发
![0818c8be7f3562ad0d104a28fe432824.png](https://i-blog.csdnimg.cn/blog_migrate/0e0b27f3cdaf9d0fc87baef25bb991e7.png)
![234b153a98d9b5bbd6912101f8789604.png](https://i-blog.csdnimg.cn/blog_migrate/5a1fa6d53546f9aa016a6546facf17f3.png)
最近仿真时觉得建模比较麻烦,又想起了CST的macro脚本,于是将读研时做的一些当时觉得没啥用的代码拿出来再加工改进下,做个有点中二的东西自娱自乐。
0 1实现思路%具体思路是这样的:%1.MATLAB读取图片的信息:%2.调用提前编写好的function将每个像素点的位置和RGB值填入读写的bas文件中%3.打开CST macro,用记事本打开bas文件,复制粘贴覆盖,然后点击运行即可%读入图片数据image = imread('C:\Users\Administrator\Desktop\matlabcode\Test.jpg');[m,n,~]=size(image);%cst画图脚本生成W=0.1;L=0.1;% Create a new temporary CST Macro_file.fid = fopen('1.mcr', 'wt');fprintf(fid, 'Sub Main ()\n');for ii=1:m for jj=1:n R=image(ii,jj,1);G=image(ii,jj,2);B=image(ii,jj,3); RGB=[R,G,B]; Patch_name=strcat('Patch',num2str(ii),'_',num2str(jj)); Brick(fid,Patch_name,'component1','PEC',{num2str(L*(ii-1)),num2str(L*(ii));... num2str(W*(jj-1)),num2str(W*(jj));num2str(0),num2str(0)},1); ChangeColor(fid,Patch_name,'component1',RGB); endendfprintf(fid, ' EndHide\n');fprintf(fid, 'End Sub\n');%%% Close the CST Macro_file.fclose(fid);
打开CST macro
粘贴代码、运行
0 2运行效果最后CST先卡一下,然后慢慢在这龟速“画画”。耗时是真的久,画一个像素点然后改颜色竟然后面要1s,还好只选了64*48像素的图片,不然得等到天荒地老。不过一般建模也不会画两千多单元吧?
0 3结果预览CST重绘图片
CST可以干这事,HFSS肯定不甘示弱,因为网上都有现成的hfssapi,因此就画rectangle,然后修改贴片颜色,生成vbs脚本,将下面代码的文件路径改为自己想要的就OK了。
友情提升:耗时较久,谨慎玩哈!
代码资料在文末,也可以公众号里回复我的资源,在总更新包里根据发文日期找
oProject.SaveAs _ "C:\Users\Administrator\Desktop\temp\Image_plot.hfss", _ true
HFSS重绘图片
当然了,以上只是些花里胡哨地操作,实际可以应用在繁琐复杂性建模设计中。比如下面这种超材料表面,每个单元的尺寸不一样,但是单元的建模是一样的。这种情况用脚本可以建立全参量模型,哪里要改动哪里,优化设计起来也方便一点。除此之外,在日常的建模仿真中,如果都养成代码建模的习惯,适当添加注释交互起来就底层化了。
想想别人给你一个HFSS模型,其可读性比较低,修改模型也比较麻烦。
留言区:MATLAB与CST_HFSS联合仿真之“抛砖引玉”
提取码:dtby
关于HFSS脚本和CST脚本,有时间的话慢慢出文吧,毕竟比较耗时,这不是主业?!
![903c0c807735a0ae8426482f231453a9.gif](https://i-blog.csdnimg.cn/blog_migrate/b1100bf02862665b886150d14ca1b12c.gif)
走过路过,打赏、点赞、在看,给作者加加油
![2f5763c6b5c998ad7bd629e20134f0ad.png](https://i-blog.csdnimg.cn/blog_migrate/9cec930e6849a939faf2bdca9aa53e47.png)
![27300fdea8206405dd9a11c6652ed12d.png](https://i-blog.csdnimg.cn/blog_migrate/6c1278668509ebaf6abb7aee75f835fb.png)