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

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

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

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

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

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

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

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

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

new_system('mask_example');
add_block('built-in/subsystem','mask_example/subsystem');
save_system;
open_system('mask_example');
maskObj = Simulink.Mask.create(gcb);

В этом примере маскирующий объект присвоен переменной maskObj использование Simulink.Mask.get метод:

maskObj = Simulink.Mask.get(gcb);
maskObj
maskObj = 
  Mask with properties:

                         Type: ''
                  Description: ''
                         Help: ''
               Initialization: ''
               SelfModifiable: 'off'
                    ImageFile: ''
                      Display: ''
                    IconFrame: 'on'
                   IconOpaque: 'opaque'
         RunInitForIconRedraw: 'analyze'
                   IconRotate: 'none'
                   PortRotate: 'default'
                    IconUnits: 'autoscale'
                   Parameters: [0x0 Simulink.MaskParameter]
         ParameterConstraints: [0x0 Simulink.Mask.Constraints]
    CrossParameterConstraints: [0x0 Simulink.Mask.CrossParameterConstraints]
                     BaseMask: [0x0 Simulink.Mask]

Для примеров других операций маски как создание и редактирование параметров маски и копирование и удаление масок смотрите 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, смотрите Параметры Маски.

Ограничения Используя set_param и API маскирующего объекта на соединенных блоках

Simulink налагает определенные ограничения при изменении параметров маски с помощью set_param и API маскирующего объекта на соединенных блоках. На "не сам модифицируемый" соединенный блок, можно изменить свойства параметра маски, такие как Value, Visible, и Enable. На самомодифицируемом соединенном блоке можно изменить немного других свойств в дополнение к Value, Visible, и Enable.

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

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

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

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

maskObj.removeDialogControl('ParameterGroupVar');
open_system('mask_example/subsystem');

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
tab3 = 
  Tab with properties:

              Name: 'tab3'
            Prompt: 'Third (invisible)'
           Enabled: 'on'
           Visible: 'off'
      AlignPrompts: 'off'
    DialogControls: [0x0 Simulink.dialog.Control]

Можно изменить местоположение и другие свойства параметров на диалоговом окне при помощи Simulink.dialog.Control команды.

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

add_block('built-in/gain','mask_example/gain2');
maskobj = Simulink.Mask.create(gcb);
set_param(gcb,'MaskStyleString','popup',...
'MaskVariables','maskparameter2=&2;',...
'MaskPromptString','Mask Parameter 2:');
a = Simulink.Mask.get('mask_example/gain2');
d = a.Parameters(1).DialogControl;
d
d = 
  Popup with properties:

                 Name: 'Parameter1'
       PromptLocation: 'left'
                  Row: 'new'
    HorizontalStretch: 'on'
              Tooltip: ''

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

d.PromptLocation = 'left';

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

d
d = 
  Popup with properties:

                 Name: 'Parameter1'
       PromptLocation: 'left'
                  Row: 'new'
    HorizontalStretch: 'on'
              Tooltip: ''

save_system;

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

Похожие темы