Not Enough Input Arguments when using cm.addCustomMenuFcn

I'm trying to add some menu customizations. I'm starting with this Mathworks Example. However, it's not working. When running the code I get the following error.
_Not enough input arguments.
Error in simulinkMenuCustomisation (line 3) cm.addCustomMenuFcn('Simulink:ToolsMenu', @getMyMenuItems);__
function sl_customization(cm)
% Register custom menu function.
cm.addCustomMenuFcn('Simulink:ToolsMenu', @getMyMenuItems);
end
function schemaFcns = getMyMenuItems(callbackInfo)
schemaFcns = {@createBO};
end
function schema = createBO(callbackInfo)
schema = sl_action_schema;
schema.label = 'Align Inputs to Ports';
schema.statustip = 'Align Inputs to Ports';
schema.accelerator = 'Crtl+Alt+I';
schema.callback = @createBOcb;
end
function createBOcb(~)
blockH = find_system(gcbh);
disp(get(blockH,'Name'))
end

 Akzeptierte Antwort

Chris Dyer
Chris Dyer am 20 Nov. 2017

0 Stimmen

Looks like this is due to attempting to run this script standalone.
The script requires the customization manager to be passed in as an argument to the sl_customization function (this is the missing argument).
This is done automatically when simulink starts (it will execute any sl_customization files it finds on the MATLAB path).
Keep in mind that if you are using simulink projects, simulink is started as soon as you open a project and before any project paths have been added to the MATLAB path. So saving your scripts within a project folder will likely not work and you will need to place it in a directory that is already on the MATLAB path.
I am not sure if there is a way to get the customization manager and pass it to this script manually after simulink has started.

1 Kommentar

Thanks for the tip. A couple other things I learned. The filename must be sl_customization.
Also, sl_refresh_customizations refreshes your simulink menu based on the latest save of your sl_customization.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Simulink Environment Customization finden Sie in Hilfe-Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by