主要内容

以编程方式控制掩码

万博1manbetxSimulink®定义了一组参数,用于帮助设置和编辑掩码。要从MATLAB®命令行设置和编辑掩码,您可以使用万博1manbetx仿真软件。面具而且万博1manbetx仿真软件。面具Parameter类方法。你也可以使用get_param而且set_param函数设置和编辑掩码。但是,由于这些函数使用的分隔符不支持Unicode®(非英文)字符,因此建议您使用万博1manbetx万博1manbetx仿真软件。面具而且万博1manbetx仿真软件。面具Parameter类方法来控制掩码。

使用万博1manbetx仿真软件。面具而且万博1manbetx仿真软件。面具Parameter

使用方法万博1manbetx仿真软件。面具而且万博1manbetx仿真软件。面具Parameter类来执行以下掩码操作:

  • 创建、复制和删除掩码

  • 创建、编辑和删除掩码参数

  • 确定拥有掩码的块

  • 获取为掩码定义的工作空间变量

  • 在本例中万博1manbetxSimulink.Mask.create方法用于创建块掩码:

new_system (“mask_example”);add_block (“内置/子系统”,“mask_example /子系统”);save_system;open_system (“mask_example”);maskObj = 万博1manbetxSimulink.Mask.create(gcb);

在这个例子中,mask对象被赋值给variablemaskObj使用万博1manbetxSimulink.Mask.get方法:

maskObj = 万博1manbetxSimulink.Mask.get(gcb);maskObj
maskObj =带有属性的掩码:类型:"描述:"帮助:"初始化:" selfmodiitable: 'off' ImageFile: "显示:" IconFrame: 'on' IconOpaque: 'opaque' RunInitForIconRedraw: 'analyze' IconRotate: 'none' PortRotate: 'default' IconUnits: 'autoscale'参数:[0x0 Simulink.]万博1manbetxMaskParameter] PortIdentifiers: [0x0 万博1manbetxSimulink.Mask.]PortIdentifier] ParameterConstraints: [0x0 万博1manbetxSimulink.Mask.]CrossParameterConstraints: [0x0 Simulink.Mask万博1manbetx.][0x0 Simulink.Mask.]万博1manbetxPortConstraint] BaseMask: [0x0 万博1manbetxSimulink.]面具)

有关其他掩码操作的示例,如创建和编辑掩码参数以及复制和删除掩码,请参见万博1manbetx仿真软件。面具而且万博1manbetx仿真软件。面具Parameter

使用get_param而且set_param

set_param而且get_param函数具有用于设置和控制掩码的参数。你可以使用这些函数来基于MATLAB命令行传递的值来设置模型或库中任何块的掩码:

set_param (gcb),“MaskStyleString”,编辑,编辑的,...“MaskVariables”,' maskparameter1 = @1; maskparameter2 = 2;,...“MaskPromptString”,'掩码参数1:|掩码参数2:',...“MaskValues”,{' 1 ',' 2 '});get_param (gcb),“MaskStyleString”);set_param (gcb),“MaskStyles”,{“编辑”,“编辑”},“MaskVariables”,...' maskparameter1 = @1; maskparameter2 = 2;,“MaskPrompts”,...'掩码参数1:','掩码参数2:'},...“MaskValueString”,‘1 | 2);get_param (gcb),“MaskStyles”);

在哪里

  • |为掩码参数分离单个字符向量值。

  • @指示对参数字段进行计算。

  • 指示不计算参数字段,而是将其赋值为字符向量。

请注意

  • 当你使用get_param为了得到价值的掩码参数,Simulink将使用掩码对话万博1manbetx框返回最后应用的值。控件时,已在掩码对话框中输入但未应用的值将不反映get_param命令。

  • 若要以编程方式指定掩码参数的值,建议使用set_param命令面具参数而不是使用set_paramMaskValues

要以编程方式控制R2014a之前版本的掩码属性,请参见面具参数

限制使用set_param和屏蔽链接块上的对象api

万博1manbetx在修改掩码参数时,Simulink施加了某些约束set_param以及屏蔽链接块上的对象api。在不可自修改的链接块上,您可以更改掩码参数的属性,例如价值,可见,启用.在可自我修改的链接块上,除了价值,可见,启用

以编程方式创建掩码参数和对话框

这个例子展示了如何创建这个简单的掩码对话框、向对话框添加控件以及更改控件的属性。

步骤1:为您在模型中选择的块创建掩码。

步骤2:要自定义对话框并使用选项卡代替默认组,请删除参数组框。

maskObj.removeDialogControl (“ParameterGroupVar”);open_system (“mask_example /子系统”);

万博1manbetx控件的时候,Simulink仍然保留子对话框控件(本例中的两个复选框)ParametersGroupVar群围住他们。这些控件是无法使用对话框控件方法删除的参数。

可以使用以下方法删除参数removeAllParameters,属于万博1manbetx仿真软件。面具类。

步骤3:创建一个标签容器并获取它的句柄。

tabgroup = maskObj.addDialogControl(“tabcontainer”,“tabgroup”);

步骤4:在选项卡容器中创建选项卡。

tab1 = tabgroup.addDialogControl(“标签”,“tab1”);tab1。提示=“第一”;maskObj.addParameter (“类型”,“复选框”,“提示”,选项1的,...“名字”,“option1”,“容器”,“tab1”);maskObj.addParameter (“类型”,“复选框”,“提示”,选项2的,...“名字”,“option2”,“容器”,“tab1”);tab2 = tabgroup.addDialogControl(“标签”,“tab2”);tab2。提示=“第二”;tab3 = tabgroup.addDialogControl(“标签”,“tab3”);tab3。提示=“第三(看不见的)”

使第三个选项卡不可见。

tab3。可见=“关闭”;tab3
tab3 =带有属性的Tab:名称:tab3提示:'Third(不可见)' Enabled: 'on' Visible: 'off' alignprompt: 'off' DialogControls: [0x0 Simulink.dialog.Control]万博1manbetx

控件可以更改对话框上参数的位置和其他属性万博1manbetxSimulink.dialog.Control命令。

例如,要更改对话框布局选项,请考虑添加一个带有名为Parameter2的弹出参数的Gain块。的实例可以设置参数的对话框布局选项万博1manbetxSimulink.dialog.parameter.Popup类。下面的代码展示了如何在对话框布局中设置提示符的位置:

add_block (“内置/增益”,“mask_example / gain2”);maskobj = 万博1manbetxSimulink.Mask.create(gcb);set_param (gcb),“MaskStyleString”,“弹出”,...“MaskVariables”,“maskparameter2 = 2;,...“MaskPromptString”,'掩码参数2:');a = 万博1manbetxSimulink.Mask.get(“mask_example / gain2”);d = a.Parameters(1).DialogControl;d
d =弹出属性:Name: 'Parameter1' PromptLocation: 'left' Row: 'new' HorizontalStretch: 'on' Tooltip: "

现在,设置PromptLocation属性,使用命令:

d.PromptLocation =“左”

这将设置PromptLocation作为“左”。可用的值为“左”而且“高级”.的输出确认了更改PromptLocation物业价值

d
d =弹出属性:Name: 'Parameter1' PromptLocation: 'left' Row: 'new' HorizontalStretch: 'on' Tooltip: "
save_system;

有关对话框控件及其属性的更多信息,请参见万博1manbetxSimulink.dialog.Control

相关的话题