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
.