Can I use comment through in a dynamic Simulink mask?

13 次查看(过去 30 天)
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')
error('s must be 0 or 1')
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.

回答(5 个)

John B
John B 2014-9-19
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 2014-11-26
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 2015-12-9
I have the same problem!

Fabio Reway
Fabio Reway 2016-11-23
Hi. Is there no workaround for this issue yet? Thanks

x qs
x qs 2021-4-22
use the 'Variant Subsystem' block for instead

Community Treasure Hunt

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

Start Hunting!

Translated by