Управляйте масками программно

Simulink® задает набор параметров, которые помогают в установке и редактировании масок. Чтобы установить и отредактировать маску из командной строки MATLAB®, можно использовать Simulink.Mask и Simulink.MaskParameter методы класса. Можно также использовать get_param и set_param функции, чтобы установить и отредактировать маски. Однако, поскольку эти функции используют разделители, которые не поддерживают Unicode® (неанглийский язык) символы, рекомендуется, чтобы вы использовали методы Simulink.Mask и Simulink.MaskParameter методы класса управлять масками.

Используйте Simulink.Mask и Simulink.MaskParameter

Используйте методы Simulink.Mask и Simulink.MaskParameter классы, чтобы выполнить следующие операции маски:

  • Создайте, скопируйте и удалите маски

  • Создайте, отредактируйте и удалите параметры маски

  • Определите блок, который владеет маской

  • Задайте переменные рабочей области для маски

  1. В этом примере Simulink.Mask.create метод используется, чтобы создать маску блока:

     maskObj = Simulink.Mask.create(gcb);
     maskObj =  
          Simulink.Mask handle
          Package: Simulink
          Properties:
                        Type: ''
                 Description: ''
                        Help: ''
              Initialization: ''
              SelfModifiable: 'off'
                     Display: ''
                   IconFrame: 'on'
                  IconOpaque: 'on'
        RunInitForIconRedraw: 'off'
                  IconRotate: 'none'
                  PortRotate: 'default'
                   IconUnits: 'autoscale'
                  Parameters: []
      Methods, Events, Superclasses
  2. В этом примере маскирующий объект присвоен переменной maskObj использование Simulink.Mask.get метод:

    maskObj = Simulink.Mask.get(gcb)
    maskObj =  
        Simulink.Mask handle
        Package: Simulink
        Properties:
                        Type: ''
                 Description: ''
                        Help: ''
              Initialization: ''
              SelfModifiable: 'off'
                     Display: ''
                   IconFrame: 'on'
                  IconOpaque: 'on'
        RunInitForIconRedraw: 'off'
                  IconRotate: 'none'
                  PortRotate: 'default'
                   IconUnits: 'autoscale'
                  Parameters: [1x1 Simulink.MaskParameter]
         Methods, Events, Superclasses

Для примеров других операций маски как создание и редактирование параметров маски и копирование и удаление масок смотрите Simulink.Mask и Simulink.MaskParameter .

Используйте get_param и set_param

set_param и get_param функции имеют параметры для установки и управления маской. Можно использовать эти функции, чтобы установить маску любого блока в модели, или библиотека на основе значения передала из командной строки MATLAB:

set_param(gcb,'MaskStyleString','edit,edit',...
'MaskVariables','maskparameter1=@1;maskparameter2=&2;',...
'MaskPromptString','Mask Parameter 1:|Mask Parameter 2:',...
'MaskValues',{'1','2'});
get_param(gcb,'MaskStyleString');
set_param(gcb,'MaskStyles',{'edit','edit'},'MaskVariables',...
'maskparameter1=@1;maskparameter2=&2;','MaskPrompts',...
{'Mask Parameter 1:','Mask Parameter 2:'},...
'MaskValueString','1|2'); 
get_param(gcb,'MaskStyles');

где

  • | разделяет значения вектора отдельного символа для параметров маски.

  • @ указывает, что поле параметра оценено.

  • & указывает, что поле параметра не оценено, но присвоено как вектор символов.

Примечание

  • Когда вы используете get_param получить Value из параметра маски Simulink возвращает значение, которое было в последний раз применено с помощью диалогового окна маски. Значения, что вы ввели в диалоговое окно маски, но не применялись, не отражаются, когда вы используете get_param команда.

  • Чтобы задать значение параметра маски программно, рекомендуется использовать set_param команда на параметре маски вместо того, чтобы использовать set_param на MaskValues.

Чтобы управлять свойствами маски программно для релиза перед R2014a, смотрите Параметры Маски.

Программно создайте параметры маски и диалоговые окна

В этом примере показано, как создать это простое диалоговое окно маски, добавьте средства управления в диалоговое окно и измените свойства средств управления.

  1. Создайте маску для блока, который вы выбрали в модели.

    maskobj = Simulink.Mask.create(gcb);

  2. Чтобы настроить диалоговое окно и использовать вкладки вместо группы по умолчанию, удалите групповой блок Parameters.

    maskobj.removeDialogControl('ParameterGroupVar');

    Simulink сохраняет дочерние диалоговые средства управления – эти два флажка в этом примере – даже когда вы удаляете ParametersGroupVar группа, окружающая их. Эти средства управления являются параметрами, которые не могут быть удалены с помощью диалоговых методов управления.

    Можно удалить методы использования параметров, такие как removeAllParameters, который принадлежит Simulink.Mask класс.

  3. Создайте контейнер вкладки и получите его указатель.

    tabgroup = maskobj.addDialogControl('tabcontainer','tabgroup');

  4. Создайте вкладки в этом контейнере вкладки.

    tab1 = tabgroup.addDialogControl('tab','tab1');
    tab1.Prompt = 'First';
    maskobj.addParameter('Type','checkbox','Prompt','Option 1',...
      'Name','option1','Container','tab1');
    maskobj.addParameter('Type','checkbox','Prompt','Option 2',...
      'Name','option2','Container','tab1');
    
    tab2 = tabgroup.addDialogControl('tab', 'tab2');
    tab2.Prompt = 'Second';
    tab3 = tabgroup.addDialogControl('tab','tab3');
    tab3.Prompt = 'Third (invisible)';

    Сделайте третью вкладку невидимой.

    tab3.Visible = 'off'
    
    tab3 = 
    
      Tab with properties:
    
                  Name: 'tab3'
                Prompt: 'Third (invisible)'
               Enabled: 'on'
               Visible: 'on'
        DialogControls: []

Можно изменить местоположение и другие свойства параметров на диалоговом окне при помощи Simulink.dialog.Control команды. Для получения дополнительной информации о диалоговых средствах управления и их свойствах, смотрите Simulink.dialog.Control.

Похожие темы