Can I use comment through in a dynamic Simulink mask?

I'd like to create a Simulink mask where I can comment through or uncomment a sub block of the mask based on one of the mask parameters.
E.g., let s = 0 or 1 be one of the mask parameters. In the Initialization tab of the Mask editor, I have:
mask_block = gcb
switch s
case 0
set_param([mask_block '/test_block'], 'Commented', 'through')
case 1
set_param([mask_block '/test_block'], 'Commented', 'off')
otherwise
error('s must be 0 or 1')
end
This gives an error as soon as I click Apply in the mask editor:
Error in 'test_lib/test_mask':Initialization command cannot be evaluated Caused by: Block 'test_lib/test_mask/test_block/ cannot be commented during execution of a callback.
The interesting thing is that I have no issue if I want to delete the block instead. Am I forced to delete and recreate a block (which could be pretty complicated) in order to get the right dynamic mask behavior? That would be a shame when this very convenient comment through feature is available.
Dara

1 件のコメント

Daniel Gomez-Acero
Daniel Gomez-Acero 2023 年 7 月 24 日
I think I solve the problem at least in Matlab 2023a I haven't test in prevous versions.
try allowing the modification of the mask by using this line in the initialization code of the mask
set_param(gcb, 'MaskSelfModifiable', 'on');
if this is not enough try adding this line for each block you want to modify:
set_param(block_name,'MaskSelfModifiable','on')
you can inspire yourself with this page :
https://fr.mathworks.com/help/simulink/ug/create-dynamic-masked-subsystems.html

サインインしてコメントする。

回答 (5 件)

John B
John B 2014 年 9 月 19 日

1 投票

I am having the same issue. Strange that there is no problem deleting blocks or adding new blocks, yet commenting one out is not allowed.
Mark
Mark 2014 年 11 月 26 日

1 投票

I'm also looking to do something similar - have a button which runs a script to comment out debug logic & scopes in a model. Would like to hear if there's a workaround to the 'cannot be commented out/through during execution of a callback' problem.
Guilherme
Guilherme 2015 年 12 月 9 日

0 投票

I have the same problem!
Fabio Reway
Fabio Reway 2016 年 11 月 23 日

0 投票

Hi. Is there no workaround for this issue yet? Thanks
x qs
x qs 2021 年 4 月 22 日

0 投票

use the 'Variant Subsystem' block for instead

1 件のコメント

x qs
x qs 2021 年 4 月 22 日
one of subsystem connect the input/out directly, another not.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeSubsystems についてさらに検索

質問済み:

2014 年 6 月 10 日

コメント済み:

2023 年 7 月 24 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by