首页 文章

如何在Simulink子系统掩码中实现一个按钮?

提问于
浏览
1

因为我需要为子系统指定局部变量,所以我创建了一个掩码 . 这样做我失去了对子系统的轻松访问 . 右键单击并导航到“在掩码下查看”应该太复杂了 .

所以我想到了一个解决方法并构建了以下内容:

mask

"Get deeper!"复选框后面的对话框回调代码是:

myParameter = %Parameter set by checking Get deeper!
path = gcb(gcs);

if strcmp(get_param(gcb,'myParameter'),'on')    
open_system(path,'tab');
end

每当我选中该框时,子系统都会打开,并且每次双击子系统时都会打开,以防万一之前检查过该框 . 因此代码完成了它应该做的事情,但这实际上并不是人们如何实现/可视化这样的东西的常见方式 .

我想要的是我的面具中的一个按钮"Look under mask" - 所以只需点击该按钮即可打开子系统 . 基本上按钮应该调用函数: open_system(gcb(gcs),'tab') . 看起来很简单,但Simulink并没有为我提供任何选项来实现它 . 有人可以帮忙吗?

当前解决方案的主要问题还在于,每次执行模型时,所有子系统都会打开,检查框 . 那不是主意 .

1 回答

  • 3

    Matlab 2012b准确地添加了你想要的东西:蒙版块在左边的按钮上有一个按钮,是“在掩护下看”的快捷方式 .

    不幸的是,我不认为可以在面具中添加按钮 .

    您可能希望将功能更改为在用户单击它后自动设置"Get deeper!"复选框 . 这样可以避免在加载模型时自动打开子系统 . 您可以在 open_system(path,'tab'); 之后添加 set_param(path,'myParameter','off')

    最后,作为另一种解决方法,您可能希望将 OpenFcn 回调设置为调用 open_system(gcb,'tab') . 这将使系统工作,好像它根本没有被屏蔽 . 如果您愿意,可以放置两个 open_system 调用,一个用于在掩码下查看,另一个用于打开掩码对话框 .

相关问题