如何通过脚本访问Simulink编辑器中的选项卡?万博1manbetx

21次浏览(过去30天)
通常可以通过鼠标操作“在新选项卡中打开”来打开子系统。
如果这些选项卡在保存模型之前没有关闭,它会以相同的方式重新打开(所有选项卡都打开)。
我想创建一个脚本(例如在预保存回调中使用),它关闭除第一个以外的所有选项卡。
我还没有找到访问这些选项卡的必要命令。
我使用ML 2017B与匹配的simulink版本。万博1manbetx

答案(2)

Abhisek普拉丹
Abhisek普拉丹 2020年11月13日
我不确定这是否可以通过任何MATLAB函数来完成,但可以使用一些外部自动化工具来完成,这些工具可以控制MATLAB并执行各种GUI操作。

Alexandre de Langlade
Alexandre de Langlade 2021年11月4日
编辑:Alexandre de Langlade 2021年11月4日
我刚刚做了一个脚本,这正是!
享受吧!
函数preSave (system_name)
% preSave PreSaveFcn回调
Blocks_List = find_system(system_name);
既然我们关闭一切,至少需要打开顶层的。
%指定系统,如果它还没有打开
open_system (Blocks_List (1),“标签”);
%指数从2开始到不接近顶部
block = Blocks_List(2:end)'
BLK = block{:};
奖励:设置缩放因子以适应窗口
如果比较字符串(get_param(黑色,“BlockType”),“子系统”
set_param(黑色,“ZoomFactor”“FitSystem”
结束
如果包含(黑色,“/”
如果is_stateflow(黑色)检查系统是否是状态流的函数:如果需要,请查找它
% sfclose考虑没有顶层的图表名称
% name在路径中,所以我们删除它
sf_blk = extractAfter(blk,[system_name .' / ']);
sfclose (sf_blk);
其他的
close_system(黑色);
结束
结束
结束
最后,设置顶层的缩放因子
set_param (Blocks_List {1},“ZoomFactor”“FitSystem”
清晰的Blocks_List块块
结束
1评论
亚当•克拉克
亚当•克拉克 2022年5月9日
这太棒了——谢谢!多年来我一直想这样做,但最后还是抽出时间研究了这些命令。

登录评论。

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!