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