Main Content

Create and Display System Mask Programmatically

You can apply a system mask to a model or a subsystem block diagram. By masking a model, you encapsulate the model to have its own customizable mask parameter dialog box. When you mask a model, the model arguments become the mask parameters. Referencing a masked model results in a better user interface for a model by controlling the model parameters through the mask.

This example shows how to create and display system mask programmatically.

Create System Mask

Use the function Simulink.Mask.Create to create a mask on a subsystem.

new_system('sysmask');
save_system;
maskObj = Simulink.Mask.create('sysmask')
maskObj = 
  Mask with properties:

                         Type: 'sysmask'
                  Description: ''
                         Help: ''
               Initialization: ''
               SelfModifiable: 'off'
                 BlockDVGIcon: ''
                      Display: ''
       SaveImageFileWithModel: 'off'
                    IconFrame: 'on'
                   IconOpaque: 'opaque'
         RunInitForIconRedraw: 'analyze'
                   IconRotate: 'none'
                   PortRotate: 'default'
                    IconUnits: 'autoscale'
    SaveCallbackFileWithModel: 'off'
                 CallbackFile: ''
         ParameterConstraints: [0x0 Simulink.Mask.Constraints]
              PortConstraints: [0x0 Simulink.Mask.PortConstraint]
                   Parameters: [0x0 Simulink.MaskParameter]
              PortIdentifiers: [0x0 Simulink.Mask.PortIdentifier]
    CrossParameterConstraints: [0x0 Simulink.Mask.CrossParameterConstraints]
         CrossPortConstraints: [0x0 Simulink.Mask.CrossPortConstraint]
                     BaseMask: [0x0 Simulink.Mask]

Display System Mask

Get the mask for the model sysmask and store it in maskObj.

maskObj = Simulink.Mask.get('sysmask')
maskObj = 
  Mask with properties:

                         Type: 'sysmask'
                  Description: ''
                         Help: ''
               Initialization: ''
               SelfModifiable: 'off'
                 BlockDVGIcon: ''
                      Display: ''
       SaveImageFileWithModel: 'off'
                    IconFrame: 'on'
                   IconOpaque: 'opaque'
         RunInitForIconRedraw: 'analyze'
                   IconRotate: 'none'
                   PortRotate: 'default'
                    IconUnits: 'autoscale'
    SaveCallbackFileWithModel: 'off'
                 CallbackFile: ''
         ParameterConstraints: [0x0 Simulink.Mask.Constraints]
              PortConstraints: [0x0 Simulink.Mask.PortConstraint]
                   Parameters: [0x0 Simulink.MaskParameter]
              PortIdentifiers: [0x0 Simulink.Mask.PortIdentifier]
    CrossParameterConstraints: [0x0 Simulink.Mask.CrossParameterConstraints]
         CrossPortConstraints: [0x0 Simulink.Mask.CrossPortConstraint]
                     BaseMask: [0x0 Simulink.Mask]

Note:

To get the model mask as a mask object in the mask callback, you can use Simulink.Mask.get without passing a system name or system handle.

Related Topics