c语言sscanf函数的用法是什么
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~