许可优化
产品
解决方案
服务支持
关于
软件库
当前位置:服务支持 >  软件文章 >  Matlab控制HFSS绘制不规则图形技巧

Matlab控制HFSS绘制不规则图形技巧

阅读数 6
点赞 0
article_banner

利用HFSS记录脚本的功能可以将HFSS的绘图过程以程序的方式记录下来,采用matlab对其进行修改,可用于大规模重复阵列的绘制。这里针对程序控制HFSS画不规则阵列的过程做简要的记录。

1,记录绘图过程

在HFSS的Tools下找到record script to file,将文件保存为vbs格式(该格式可用记事本打开)。点击后进行绘图操作,完成绘图操作后,在tools下选择 stop record,停止记录。

2,根据需求改写程序

在这里为了能够实现绘制尺寸变化的阵列的需求,利用matlab自带的num2str()函数来实现这个功能,该函数可以实现数字转字符的功能,结合循环,即可实现绘制尺寸变化的阵列的需求。基于上一步骤记录的程序,在matlab中引入循环。

图1,长度变化的阵列

为了实现图一所示的图形,编写matlab函数 如下:

clear;close all;clc
fid=fopen('MatlabControlHFSS_geometrydeform.txt','wt');
fprintf(fid,'Dim oAnsoftApp\n');
fprintf(fid,'Dim oDesktop\n');
fprintf(fid,'Dim oProject\n');
fprintf(fid,'Dim oDesign\n');
fprintf(fid,'Dim oEditor\n');
fprintf(fid,'Dim oModule\n');
fprintf(fid,'Set oAnsoftApp = CreateObject("Ansoft.ElectronicsDesktop")\n');
fprintf(fid,'Set oDesktop = oAnsoftApp.GetAppDesktop()\n');
fprintf(fid,'oDesktop.RestoreWindow\n');
fprintf(fid,'Set oProject = oDesktop.SetActiveProject("Project1")\n');
fprintf(fid,'Set oDesign = oProject.SetActiveDesign("HFSSDesign1")\n');
p0=2;%period
a0=1;%width of pitch
W0=8*p0;
fprintf(fid,['oDesign.ChangeProperty Array("NAME:AllTabs", Array("NAME:LocalVariableTab", Array("NAME:PropServers",  "LocalVariables"), Array("NAME:NewProps", Array("NAME:a", "PropType:=", "VariableProp", "UserDef:=", true, "Value:=", "',num2str(a0),'um"), Array("NAME:p", "PropType:=", "VariableProp", "UserDef:=",  true, "Value:=", "',num2str(p0),'um"), Array("NAME:W", "PropType:=", "VariableProp", "UserDef:=",  true, "Value:=", "',num2str(W0),'um"))))\n']);
for i=1:7
    A=ceil(W0*sin(2*pi/2/(5*p0)*i));
    fprintf(fid,'Set oEditor = oDesign.SetActiveEditor("3D Modeler")\n');
    fprintf(fid,['oEditor.CreateRectangle Array("NAME:RectangleParameters", "IsCovered:=", true, "XStart:=",  "0mm", "YStart:=", "',num2str((i-1)*p0),'um", "ZStart:=", "0mm", "Width:=", "0.7um", "Height:=",  "0.2um", "WhichAxis:=", "Z"), Array("NAME:Attributes", "Name:=", "Rectangle',num2str(i),'", "Flags:=",  "", "Color:=", "(143 175 143)", "Transparency:=", 0, "PartCoordinateSystem:=",  "Global", "UDMId:=", "", "MaterialValue:=", "" & Chr(34) & "vacuum" & Chr(34) & "", "SurfaceMaterialValue:=",  "" & Chr(34) & "" & Chr(34) & "", "SolveInside:=", true, "IsMaterialEditable:=",  true, "UseMaterialAppearance:=", false, "IsLightweight:=", false)\n']);
    fprintf(fid,['oEditor.ChangeProperty Array("NAME:AllTabs", Array("NAME:Geometry3DAttributeTab", Array("NAME:PropServers", "Rectangle',num2str(i),'"), Array("NAME:ChangedProps", Array("NAME:Name", "Value:=", "pitch',num2str(i),'"))))\n']);
    fprintf(fid,['oEditor.ChangeProperty Array("NAME:AllTabs", Array("NAME:Geometry3DCmdTab", Array("NAME:PropServers",  "pitch',num2str(i),':CreateRectangle:1"), Array("NAME:ChangedProps", Array("NAME:YSize", "Value:=", "a"), Array("NAME:XSize", "Value:=", "',num2str(A),'um"))))\n']);
end
fclose(fid);

3,图形绘制

将生成的txt文件另存为vbs格式,之后新建HFSS工程文件,在tools下找到run script,找到对应文件即可绘制图一所示的尺寸变化的阵列。

该解决过程借鉴了CSDN文章:HFSS学习笔记(四)利用MATLAB脚本进行HFSS快速建模_唯_ww的博客-CSDN博客,在这里对作者表示感谢。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空