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

Simulink® задает набор параметров, которые помогают в настройке и редактировании масок. Установка и изменение маски из MATLAB® командная строка, можно использовать Simulink.Mask и Simulink.MaskParameter методы классов. Можно также использовать get_param и set_param функций для установки и редактирования масок. Однако, поскольку эти функции используют разделители, которые не поддерживают Юникод® (Не английский) символы рекомендуется использовать методы 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

The 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 команды.

Для примера, чтобы изменить диалоговое окно размещения опций, рассмотрите блок Gain с параметром Popup с именем Parameter2 добавления. Чтобы задать диалоговое окно размещения опции параметра, можно использовать образец Simulink.dialog.parameter.Popup класс. Следующий код показывает, как задать расположение приглашения в диалоговом размещении:

a = Simulink.Mask.get('testmodel/Gain');
d = a.Parameters(2).DialogControl;

Это приводит все свойства всплывающего параметра 'Parameter2':

d = 

  Popup with properties:

                 Name: 'Parameter2'
       PromptLocation: 'top'
                  Row: 'new'
    HorizontalStretch: 'on'
              Tooltip: 'Test'

Теперь, чтобы задать PromptLocation свойство, используйте команду:

d.PromptLocation = 'left'

Это устанавливает PromptLocation как 'left'. Доступные значения 'left' и 'top'. Этот выход подтверждает изменение PromptLocation значение свойства к left:

d = 

  Popup with properties:

                 Name: 'Parameter2'
       PromptLocation: 'left'
                  Row: 'new'
    HorizontalStretch: 'on'
              Tooltip: 'Test'

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

Похожие темы