Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

プログラムによるマスクの制御

Simulink® は、マスクの設定および編集を容易にする一連のパラメーターを定義しています。MATLAB® コマンド ラインからマスクを設定および編集するために、Simulink.Mask クラスおよび Simulink.MaskParameter クラスのメソッドを使用できます。get_param および set_param 関数を使用してマスクを設定および編集することもできます。ただし、これらの関数で使用される区切り記号では Unicode® (英語以外) の文字がサポートされないため、マスクの制御には Simulink.Mask クラスおよび Simulink.MaskParameter クラスのメソッドを使用することをお勧めします。

Simulink.MaskSimulink.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. この例では、Simulink.Mask.get を使用してマスク オブジェクトが変数 maskObj に割り当てられています。

    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_paramset_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 コマンドを使用したときに反映されません。

  • マスク パラメーターの値をプログラムで指定する場合は、[MaskValues]set_param を使用する代わりに [マスク パラメーター]set_param コマンドを使用することをお勧めします。

R2014a より前のリリースでのプログラムによるマスク プロパティの制御については、マスク パラメーターを参照してください。

マスク パラメーターおよびダイアログのプログラムによる作成

この例では、この単純なマスク ダイアログを作成し、ダイアログにコントロールを追加して、コントロールのプロパティを変更する方法を示します。

  1. モデルで選択したブロックにマスクを作成します。

    maskobj = Simulink.Mask.create(gcb);

  2. ダイアログをカスタマイズする場合と、既定のグループではなくタブを使用する場合は、[パラメーター] グループ ボックスを削除します。

    maskobj.removeDialogControl('ParameterGroupVar');

    Simulink では、子のダイアログ コントロール (この例では 2 つのチェック ボックス) が、これらを囲んでいる ParametersGroupVar グループを削除した場合でも保持されます。これらのコントロールはパラメーターであり、ダイアログ コントロールのメソッドを使用して削除することはできません。

    パラメーターは、Simulink.Mask クラスに属する removeAllParameters などのメソッドを使用して削除することができます。

  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)';

    3 番目のタブを非表示にします。

    tab3.Visible = 'off'
    
    tab3 = 
    
      Tab with properties:
    
                  Name: 'tab3'
                Prompt: 'Third (invisible)'
               Enabled: 'on'
               Visible: 'on'
        DialogControls: []

ダイアログのパラメーターの位置やその他のプロパティは、Simulink.dialog.Control コマンドを使用して変更できます。

たとえば、ダイアログ レイアウトのオプションを変更するために、Parameter2 という名前のポップアップ パラメーターが追加された Gain ブロックについて考えます。パラメーターのダイアログ レイアウトのオプションを設定するには、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を参照してください。

関連するトピック