是否有任何解决方案可以在simulink图中修复块,禁用块的移动/调整大小? 有没有解决方案在simulink(空矩形)中绘制一种形状? 我的目标是修复模型中的区域,以便不允许用户在该区域外设计模型。 我尝试使用回调函数但没有成功。
感谢您的帮助。
答案 0 :(得分:1)
据我所知,只有妥协。
如在另一个答案中所提到的,您需要创建一个子系统。在块参数中,您可以设置ReadOnly
,因此所有内容都会根据需要修复并显示为灰色,或NoReadOrWrite
访问权限,因此它会被完全阻止。此解决方案仅适用于“天真”用户,因为他们仍然可以更改属性以再次访问。也许你找到了阻止用户进入属性菜单的方法。
安全方式要复杂得多:protected Models
关于矩形的问题:我试图找到一个解决方案很长一段时间我会说没有办法“画”一些东西,虽然背景实际上被称为“画布”;)
您的其他评论:子系统有什么问题?您可以阻止除了您希望用户使用的块之外的所有内容。它在一个新的标签/窗口中打开,并不重要的是一切都有多大。你想要的可能是不可能的。
答案 1 :(得分:1)
您可以使用回调函数在某种程度上实现这一点。例如,让LoadFcn
为:
A=get_param(gcb, 'Position');
和MoveFcn
为
try
set_param(gcb, 'Position', A);
catch
end
这将禁止移动和调整大小,但不会删除或删除。显然,这会污染工作空间,因此您需要考虑一种管理方式。如果您想要多个块,可以通过
将位置添加到块userData
的{{1}}属性中
currBlock
然后将其添加到块的set_param(currBlock, 'UserData', get_param(currBlock, 'Position'));
回调
MoveFcn
您甚至可以通过编程方式执行此操作
try
set_param(gcb, 'Position', get_param(gcb, 'UserData'));
catch
end
答案 2 :(得分:0)