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

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

Например, чтобы изменить диалоговые параметры макета, считайте блок Gain Раскрывающимся параметром по имени 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 значение свойства to left:

d = 

  Popup with properties:

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

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

Похожие темы