Dynamic mask dialogues - change parameters of more than one subsystem
2 次查看(过去 30 天)
显示 更早的评论
Hello everybody,
I'm currently using callbacks in parameter masks to switch block choice for configurable Subsystems. So I have a system tree like
parent
- Isolierung (configurable subsystem)
- Bypass (Option 1)
- Schichtteil (Option 2)
- Isolierung1 (configurable subsystem)
- Bypass (Option 1)
- Schichtteil (Option 2)
etc.
When I use a parameter 'iso', it Looks (and works) like this for one subsystem:
switch (get_param(gcb,'iso'))
case 'mit Isolierung'
set_param([gcb '/Isolierung'], 'BlockChoice', 'Schichtteil')
case 'ohne Isolierung'
set_param([gcb '/Isolierung'], 'BlockChoice', 'Bypass')
end
'iso' is Dropdown...
When I try to change more than one system, I get errors:
switch (get_param(gcb,'iso'))
case 'mit Isolierung'
set_param([gcb '/Isolierung'], 'BlockChoice', 'Schichtteil')
set_param([gcb '/Isolierung1'], 'BlockChoice', 'Schichtteil')
case 'ohne Isolierung'
set_param([gcb '/Isolierung'], 'BlockChoice', 'Bypass')
set_param([gcb '/Isolierung1'], 'BlockChoice', 'Bypass')
end
Error:Error invoking object method --> Error in Rohr_mit_Wand/Rohr NTU5: Initialization commands cannot be evaluated. -->Invalid Simulink object name: Rohr_mit_Wand/Rohr NTU5/Isolierung/Schichtteil/Isolierung1
Update: I investigated further:
>> gcb
ans =
comp_smscp/Rohre_Ventile/Rohr NTU5
>> get_param([gcb '/Isolierung3'], 'BlockChoice')
ans =
Bypass
>> gcb
ans =
comp_smscp/Rohre_Ventile/Rohr NTU5
>> set_param([gcb '/Isolierung3'], 'BlockChoice', 'Schichtteil')
>> gcb
ans =
comp_smscp/Rohre_Ventile/Rohr NTU5/Isolierung3/Schichtteil
So with every set_param, gcb changes its path. How can I step back to the previous path or set multiple subsystem parameters at once?
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Subsystems 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!