In many cases, Simulink® users have multiple blocks that they wish to connect to a block, particularly mux, demux, and bus creator blocks. The current practice is to drag one of these blocks from the Simulink library browser into the model. The mux block, for example, by default has 2 input ports. If you have 4 blocks that you wish to connect, you must open the mask of the mux block and set the number of inputs to 4. This will then create 4 input ports on the mux block. The user can then select the 4 blocks he/she wishes to connect to the mux block, hold CTRL, and select the mux block to automatically connect all of the blocks.
This function eliminates the manual step of opening the mask and setting the number of desired inports/outports and does that automatically based on the number of blocks the user selected to try to connect.
Open the included Simulink model AutoSizeOnConnect.mdl and follow the instructions therein to see an example of how to use this function.
This functional is especially useful when used in conjunction with AutoSize, which is included in this submission but can also be downloaded separately (see Acknowledgements below).
Mike Anthony (2020). AutoSizeOnConnect (https://www.mathworks.com/matlabcentral/fileexchange/31576-autosizeonconnect), MATLAB Central File Exchange. Retrieved .
Very Useful !
Issue found when using on blocks selected within a subsystem (R2017b). If running "AutoSizeOnConnect.m" from within subsystem, line 38 "ublks = find_system(gcs,'SearchDepth',1,'Selected','on');" will return path of subsystem along with path of selected blocks which causes the script to fail on sizing and connecting. To resolve issue, I added the following on line 39: ublks(ismember(ublks,gcs)) = ; % Remove subsystem from cell array if exists.
Something to add: Bus Creator.
When I select a certain Bus Object in the bus creator dialog I d whish it would name the signals according to the Bus Object... now I have to enter them manually..
Congrats! it's awesome.
I have not been able to replicate the issue that you describe. Are you definitely using the latest update of the files?
If you have a sample model that you could send I'd be more than happy to figure out what's going on. Thanks!
Hi, Mike Anthony.
I got a bug, which i think.
when i dislink a block to the buscreator,which i used the tool to connected, and relink it to the block normally, something unrespected happend, the buscreator resized.
hope it useful to you,and fixed the hole.
Update that I think fixes the bug that huang reported. This fix also reduces the number of function calls and should improve performance as well.
Fixes error if no blocks are selected.
Update to work with Scope blocks!
Updates to handle blocks with multiple inports/outports.
Updated AutoSizeOnConnect.m to handle Multiple Input blocks with 'NumInputs' property (like the VectorConcatenate block)
added acknowledgement reference.
Updated references, updated screenshot, and fixed minor typos in the files.