跑马灯是什么 如何用HFSS来跑马灯

网友投稿 248 2022-11-22

跑马灯是什么 如何用HFSS来跑马灯

摘要:

0 1简单介绍

在HFSS-API入门第一弹:画个Box中对hfssBox函数的使用进行了详细介绍,如果再加上修改Box的颜色的透明度,加上延时操作,就可以利用MATLAB编写vbs脚本,在HFSS中Run Script实现“跑马灯”效果。

0 2修改颜色和透明度函数

接下来先介绍修改物体颜色和透明度的函数:hfssSetColor,hfssSetTransparency。

% hfssSetColor(fid, ObjectName, Color)% ObjectName:需要修改颜色的物体对应的名字.% Color:RGB三色值.% 实例:% hfssSetColor(fid, ‘Box1’, [255, 255, 0]);

% hfssSetTransparency(fid, ObjectName, Value)% ObjectName:需要修改颜色的物体对应的名字.% Value:透明度值,在0到1之间;0代表完全不透明,1代表完全透明.% 实例:% hfssSetTransparency(fid,‘Box1’, 0)

这两个函数的使用自然是很简单。压缩的GIF动图预览如下:

那么这个效果是如何实现的呢?

首先需要解决的延时问题,网络上随手搜索关键词vbs延时函数,可以找到wscript.sleep这个函数用法:

新建一个txt文件,将后缀改为vbs,然后用记事本打开复制粘贴下面代码:

wscript.sleep 1000msgbox(“Hello”)wscript.sleep 1000msgbox(“This World!”)

单独运行时正常可用的。

说明HFSS的vbs脚本中不支持该函数方法,联想到单片机中的delay函数都是自己写的,于是也在MATLAB里手撸了一个大概的延时函数:

% 延时函数的编写fprintf(fid, ‘Sub delay(ms)

’);fprintf(fid, ‘ Dim i,value

’);fprintf(fid, ‘ for i=1 to 7500*ms

’);fprintf(fid, ‘ value=i+1

’);fprintf(fid, ‘ next

’);fprintf(fid, ‘End Sub

’);

经过拆解分析后,转化为自己可使用的封装代码。

由于这段代码过长,直接在MATLAB中用fprintf写入到vbs脚本得一行一行处理,于是将其单独复制到一个mouse_control.txt文件里,通过MATLAB的读写文件操作,将这段代码追加写入到vbs脚本文末,作为可调用的函数进程。

上面代码第8行之所以是双斜杠,是为了将单斜杠写入到vbs脚本中。

reg_key = “HKEY_CURRENT_USER\Software\Microsoft\Office\$\Excel\Security\AccessVBOM”

fprintf(fid, ‘Set mouse=New SetMouse

’);fprintf(fid, ‘% move后面是电脑鼠标需要移动的坐标点,通过mousexy确定坐标点fprintf(fid, ’mouse.move 1678,575

‘);fprintf(fid, ’delay(500)

‘);fprintf(fid, ’mouse.clik “dbclick”

‘);fprintf(fid, ’delay(500)

‘);fprintf(fid, ’

‘);

% hfssExePath:HFSS软件的路径 hfssExePath = ’D:softwareHFSS15AnsysEM18.2Win64ansysedt.exe‘;

% 创建一个可读写vbs脚本文件。 fid = fopen(tmpScriptFile, ’wt‘);

‘); fprintf(fid, ’Set mouse=New SetMouse

‘); fprintf(fid, ’mouse.getpos x,y

‘); fprintf(fid, ’mouse.move 1678,575

‘); fprintf(fid, ’delay(500)

‘); fprintf(fid, ’mouse.clik “dbclick”

‘); fprintf(fid, ’delay(500)

‘); fprintf(fid, ’

‘); % 跑马灯 for num=0:20 hfssSetColor(fid, ’Box1‘, [randi(255,1), randi(255,1), randi(255,1)]); fprintf(fid, ’delay(100)

‘); end % 保存项目文件到指定路径 hfssSaveProject(fid, tmpPrjFile,1); % 延时函数的编写 fprintf(fid, ’Sub delay(ms)

‘); fprintf(fid, ’ Dim i,value

‘); fprintf(fid, ’ for i=1 to 7500*ms

‘); fprintf(fid, ’ value=i+1

‘); fprintf(fid, ’ next

‘); fprintf(fid, ’End Sub

‘); % 鼠标控制 fid1=fopen(’mouse_control.txt‘); %打开文本文件 INDEX=0; while ~feof(fid1) strdata = fgetl(fid1); % 读取一行, strdata是字符串 fprintf(fid, strdata); fprintf(fid, ’

‘); end fclose(fid1); % Close the HFSS Script File. fclose(fid); disp(’vbs脚本已生成!‘);catch disp(’程序出现异常!‘); fclose(fid);end

基础性地写代码编注释还是挺费时间和精力的,希望大家多点赞分享。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:#yyds干货盘点# hadoop hdfs写数据的流程
下一篇:#yyds干货盘点# hadoop hdfs API基础操作整理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~