Dynamic mask dialogues - change parameters of more than one subsystem
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Andreas
am 28 Okt. 2013
Beantwortet: Andreas
am 29 Okt. 2013
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?
Akzeptierte Antwort
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Subsystems finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!