zongshideshui 发表于 2018-6-11 17:15

将Maxwell VBS代码转化成MATLAB代码

本帖最后由 zongshideshui 于 2018-6-11 17:28 编辑

使用脚本语言控制Maxwell进行仿真,可以实现MAXWELL全自动化,如:
https://bbs.simol.cn/thread-28895-1-1.html

但Maxwell自身支持的脚本语言是VBS,因此写了个matlab工具,能将常见的命令转换成Matlab代码,分享给有需要的人
        (1)MAXWELL vbs代码用宏录制
        (2)MAXWELL版本:16
        (3)Matlab版本:2018


function newstr=MaxwellVBS2Matlab(f)
% 用法:MaxwellVBS2Matlab('E:\dd.vbs')
fpn = fopen (f, 'rt');
newstr='';
tmpstr='';
while feof(fpn) ~= 1
    str = fgetl(fpn);
    str=strtrim(str);
    if ~strcmp(str(1),'''') && ~strcmp(str(1:4),'Dim ') && ~isempty(str)
      if strcmp(str(end),'_')
            if isempty(tmpstr)
                tmpstr=str;
            else
                tmpstr=; %#ok<AGROW>
            end
      else
            if isempty(tmpstr)
                newstr=; %#ok<AGROW>
            else
                tmpstr=; %#ok<AGROW>
                newstr=; %#ok<AGROW>
            end            
      end
    end
end
newstr=;
fclose(fpn);

function str=fun(str)
str=strrep(str,'"" & Chr(34) & "vacuum" & Chr(34) & ""','"vacuum"');
for ii=1:20
    expr='Array\(.+\)(?!")';
    =regexp(str,expr);
    if isempty(startIndex)
      break
    end
    str=;
end
str=strrep(str,'), Array(','},{');
str=strrep(str,'"','''');
str=strrep(str,' _','...');
=regexp(str,'''MaterialValue:='', ''\w*''');
if ~isempty(iind)
    str=;
end
if strcmp(str(1:4),'Set ')
    str=str(5:end);
end
=regexp(str,'\w*(\.)\w* {.*}');
if ~isempty(startIndex)
    expr='{.+}';
    =regexp(str,expr);
    str=;
end
if ~strcmp(str(end-2:end),'...')
    str=;
end

zhangxx49 发表于 2018-6-25 11:47

楼主 想询问一下 你对照转换是否有些文件可以参考目前我也遇到此转换问题。

zongshideshui 发表于 2018-7-18 09:04

zhangxx49 发表于 2018-6-25 11:47
楼主 想询问一下 你对照转换是否有些文件可以参考目前我也遇到此转换问题。

没有。Maxwell VBS宏的语法可以看里的帮助文件,其他无。
代码转换是2种语言语法的变换,如果对二者的语法足够了解,就能知道如何转换。
"..."→'...'
Array(...)→{...}
&→[...]
......

我们的天空123 发表于 2019-5-5 16:20

楼主,你写的将Maxwell VBS代码转化成MATLAB代码 的程序?具体怎么用?

max_max 发表于 2019-9-28 16:50

感谢楼主分享,请问能否提供新版转换代码,谢谢。上面代码执行后,转换的代码挺多错误。

止于至善001 发表于 2019-10-12 11:20

感谢分享原创经验
页: [1]
查看完整版本: 将Maxwell VBS代码转化成MATLAB代码